Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411588 Posts in 69386 Topics- by 58443 Members - Latest Member: Mansreign

May 06, 2024, 08:58:45 PM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsDeveloperTechnical (Moderator: ThemsAllTook)Voxel ray casting. Any news?
Pages: [1] 2
Print
Author Topic: Voxel ray casting. Any news?  (Read 2609 times)
diegzumillo
Level 10
*****


This avatar is so old I still have a some hair


View Profile WWW
« on: February 20, 2016, 05:51:27 PM »

Hi all

I have a passing interest on the subject, enough to do a quick search very now and then to see if anything new came out of that. Year after year I see the same results on my searches. Was wondering if anyone here knows anything.

Logged

oahda
Level 10
*****



View Profile
« Reply #1 on: February 21, 2016, 05:13:23 AM »

I'm not sure what your issue is, but I assume it's one of casting rays perfectly along the voxels... Couldn't this be done quite easily by snapping?

Or is it something else you're asking for? I've never worked with voxels, so I'd be interested in knowing what problems you might be facing. c:
Logged

Polly
Level 6
*



View Profile
« Reply #2 on: February 21, 2016, 06:37:47 AM »

I suspect he's referring to the stir / hype voxel-based engines ( mainly Euclideon ) caused on various gaming sites back in 2011.

The primary benefit of these engines is that they rely on a structured geometry format ( usually SVO ), which allows them to process geometry at only the level of detail required to render a frame. Polygons on the other hand are unstructured, so there's no inherit way to get only the data you need. Instead, polygon-based engines generally rely on LODs, which requires additional data to be created / generated. The problem is, GPUs aren't build* for voxels ( a lot of heavy lifting needs to be done on the CPU instead ) and polygons are superior in pretty much every other respect .. which is probably why diegzumillo hasn't been finding much news Wink

*Although the current-gen consoles are slightly better equipped for these kind of engines as they use unified RAM.
Logged
diegzumillo
Level 10
*****


This avatar is so old I still have a some hair


View Profile WWW
« Reply #3 on: February 21, 2016, 12:53:06 PM »

I have no issues, I'm not working with it. Just asking if there are new developments in that area. But I have a feeling it hit a dead end or something.
Logged

Kayzaks
Level 0
***


Blimp Pirate


View Profile WWW
« Reply #4 on: February 22, 2016, 03:13:01 AM »

I feel like I can give a rough update on this subject, as my Game does Voxel ray-casting / ray-tracing  Well, hello there!


While it's true, modern Hardware isn't meant for Voxel ray-casting, it works perfectly well with it.


There are two different methods used currently that both have their ups and downs.



Ray Marching

Basically, you inch slightly forward each iteration and check if you've hit something. It makes sense to use Octrees for this to speed up the search.

Gavan Woolery has an excellent Game currently in the works that uses this technique. While he transitioned "away" from the traditional Voxel look (to an even cooler one in my opinion), his engine is the only one that I currently know that uses this technique for an actual Game.






Ray Casting a Sparse Voxel Octree

There have been many differentpapers on this technique, and it seems very promising. So far, I know at least one other Game that uses it, Voxelnauts by

I've been using it in my own Game, Spellwrath. The technique is extremely Memory efficient and fast! You can store and render Billions of Voxels in real-time with ease. Quite impossible with Rasterization techniques.

So far, I know at least one other Game that uses this technique, Voxelnauts.

There is also Atomontage Engine by Branislav Syles. However, he has his own Version of SVO's, of which I don't know the Details.





So, why are there only these few Games? Well, the Problem is simple: Adding and Moving Voxels (Removing Voxels is easy). In theory, if you add or move a Voxel in the Sparse Voxel Octree, you Need to completely rebuild it. For Ray-Marching methods, this isn't always the case, but even there you have some structure that speeds up the ray-marching that needs to be rebuild at some Point.

When Polly was talking about a CPU bottleneck, this is what he meant.


How does Gavan solve this?
He's a magician.

How does Voxelnauts and Atomontage solve this?
From what I can tell, they mainly use Transformation Matrices to move entire blocks of Voxels. Pretty much like Skeletal Animations. This way, they don't need to rebuild the Octree.
As for adding Voxels I can only speculate. I believe they either have SVO that has "empty"/transparent Voxels, so that adding would be just filling in the blanks, or they have some method to rebuild the SVO localy.

How do I solve this?
I can freely add 4 Voxels near any existing Voxels due to how I do SVOs. If I Need more space, for Buildings and such, I have "empty" Spaces put in by hand "offline" inside my SVO that get filled.
Everything else that moves, I use 2D Sprites Wink




Logged

Polly
Level 6
*



View Profile
« Reply #5 on: February 22, 2016, 03:45:15 AM »

When Polly was talking about a CPU bottleneck, this is what he meant.

No, i was referring to the rendering pipeline.

+ I can't be 100% sure without debugging the game / demo ( and their website is down ), but Voxelnauts looks like a polygon-based game to me ( just like Minecraft ).
Logged
oahda
Level 10
*****



View Profile
« Reply #6 on: February 22, 2016, 03:53:29 AM »

I thought voxels were technically implemented as polygons (i.e. a bunch of cubes).
Logged

Kayzaks
Level 0
***


Blimp Pirate


View Profile WWW
« Reply #7 on: February 22, 2016, 04:01:09 AM »

When Polly was talking about a CPU bottleneck, this is what he meant.

No, i was referring to the rendering pipeline.

Ohh okay. Hmmm, there is no real CPU bottleneck for SVO ray-casting in the Rendering pipeline. All of it is be done on the GPU, one of the reasons we use it.

Quote
+ I can't be 100% sure without debugging the game / demo ( and their website is down ), but Voxelnauts looks like a polygon-based game to me ( just like Minecraft ).

Voxelnauts was created by Jon Olick, one of the early SVO adopters.



Logged

Polly
Level 6
*



View Profile
« Reply #8 on: February 22, 2016, 04:01:22 AM »

I thought voxels were technically implemented as polygons (i.e. a bunch of cubes).

Nope, in those cases you're not ray-marching or ray-casting Wink

Voxelnauts was created by Jon Olick, one of the early SVO adopters.

They could be using SVO for their geometry, but to me it looks like they are using a polygon-based rendering pipeline.
Logged
Kayzaks
Level 0
***


Blimp Pirate


View Profile WWW
« Reply #9 on: February 22, 2016, 04:03:25 AM »

I thought voxels were technically implemented as polygons (i.e. a bunch of cubes).

This has only been the case since Minecraft.

Before that (and well some games now after that), Voxels were Ray Casted (Games like Delta Force, Comanche, etc..)
Logged

Kayzaks
Level 0
***


Blimp Pirate


View Profile WWW
« Reply #10 on: February 22, 2016, 04:19:43 AM »

I thought voxels were technically implemented as polygons (i.e. a bunch of cubes).

Nope, in those cases you're not ray-marching or ray-casting Wink

Voxelnauts was created by Jon Olick, one of the early SVO adopters.

They could be using SVO for their geometry, but to me it looks like they are using a polygon-based rendering pipeline.

You can check out the Voxelnauts AMA on reddit. Jon Olick talks about the Ray-Casting in the Game and why they don't use Polygons.
https://www.reddit.com/r/oculus/comments/39cgp1/im_jon_olick_ceo_of_retro_ronin_making_voxelnauts/
Logged

oahda
Level 10
*****



View Profile
« Reply #11 on: February 22, 2016, 04:25:26 AM »

Learn something new every day...

I thought voxels were quite recent tho. Didn't start hearing about them until a few years ago.
Logged

Polly
Level 6
*



View Profile
« Reply #12 on: February 22, 2016, 04:40:22 AM »

I thought voxels were quite recent tho.

As Kayzaks mentioned ..



1993 Wink
Logged
oahda
Level 10
*****



View Profile
« Reply #13 on: February 22, 2016, 04:43:22 AM »

Well, well. Seems I was disinformed by a tweeter, then!
Logged

diegzumillo
Level 10
*****


This avatar is so old I still have a some hair


View Profile WWW
« Reply #14 on: February 24, 2016, 04:04:39 PM »

Thanks for the updates Kayzaks!  Coffee

This is what I expected to find now, people working with the limitations to make something cool. It's like new technologies. They are always limited and clunky in their beginnings, so we need pioneers to, not try to solve the limitations, but make cool stuff with it. That attracts attention and thus more development.
« Last Edit: February 24, 2016, 04:10:05 PM by diegzumillo » Logged

Zaphos
Level 5
*****



View Profile WWW
« Reply #15 on: February 24, 2016, 04:35:08 PM »

I thought voxels were quite recent tho.

As Kayzaks mentioned ..



1993 Wink
fwiw I think this is raycasting against a heightmap.  I wouldn't put it in quite the same category as the full 3D grids of voxels that people think of for minecraft, voxelnauts, etc ... (though sure, people refer to chunky raycasted heightmaps as voxels too ...)

(edit: found a neat article explaining how they do it; it is indeed raycasting against a height map: http://simulationcorner.net/index.php?page=comanche)
« Last Edit: February 24, 2016, 04:40:15 PM by Zaphos » Logged

How to Be a Tree | Voro | Realistic Kissing Simulator | twitter | Programmer at Epic Games
Cheesegrater
Level 1
*



View Profile
« Reply #16 on: February 25, 2016, 09:56:45 AM »

There were full voxel systems in the 80s and 90s, though. That's why it was such a big deal when the Marching Cubes paper came out: it was a fast way to convert voxel models to polygons.
Logged
Polly
Level 6
*



View Profile
« Reply #17 on: February 25, 2016, 10:38:16 AM »

I wouldn't put it in quite the same category as the full 3D grids of voxels that people think of for minecraft, voxelnauts, etc ... (though sure, people refer to chunky raycasted heightmaps as voxels too ...)

Minecraft doesn't have anything to do with voxels though ( it's polygon-based like most games ). Comache however does use a voxel-based rendering engine .. doesn't matter what underlying spatial structure(s) it relies on.
Logged
Zaphos
Level 5
*****



View Profile WWW
« Reply #18 on: February 26, 2016, 01:46:24 AM »

There were full voxel systems in the 80s and 90s, though. That's why it was such a big deal when the Marching Cubes paper came out: it was a fast way to convert voxel models to polygons.
For sure, especially in medical applications Smiley

I wouldn't put it in quite the same category as the full 3D grids of voxels that people think of for minecraft, voxelnauts, etc ... (though sure, people refer to chunky raycasted heightmaps as voxels too ...)

Minecraft doesn't have anything to do with voxels though ( it's polygon-based like most games ). Comache however does use a voxel-based rendering engine .. doesn't matter what underlying spatial structure(s) it relies on.
The term voxel, as typically defined in a computer graphics textbook, is exactly about the underlying spatial structure -- it's about breaking up 3D space into volumetric elements (hence the name).  But sure, minecraft is a stretch, and I don't really care if you call Comanche voxel-based or whatever; I was just noting that under the hood Comanche is doing quite a bit less than the more recent games that people tend to think of as using voxels.
Logged

How to Be a Tree | Voro | Realistic Kissing Simulator | twitter | Programmer at Epic Games
Polly
Level 6
*



View Profile
« Reply #19 on: February 26, 2016, 04:02:54 AM »

The term voxel, as typically defined in a computer graphics textbook, is exactly about the underlying spatial structure -- it's about breaking up 3D space into volumetric elements (hence the name).

You're right. What i meant was that it doesn't matter which spatial structure it uses ( grid / SVO / heightmap etc. ) Smiley
Logged
Pages: [1] 2
Print
Jump to:  

Theme orange-lt created by panic