• Advertisement
Sign in to follow this  

Crysis' voxel-based terrain engine

This topic is 3959 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hey, Those of you that have seen the GDC07 demo of the CryEngine 2 Sandbox Level Editor may have noticed that they said that the terrain system they are using is voxel-based (like the old Outcast game), thereby allowing them to create detailed terrain features like overhangs and caves via a terrain 'brush' in the editor. It looks amazing! I was wondering if anyone had any recent links to papers describing how such terrain could be implemented? Specifically how to efficiently tesselate a 3d voxel grid for modern GPUs? Thanks :-)

Share this post


Link to post
Share on other sites
Advertisement
To achieve the visualization of large voxel volumes, there are many ways.

The following methods are designed to visualize large polygon meshes. However, in case that all voxels are converted to polygons by marching cubes or a similar algorithm before, its about equal.

[1] Adaptive TetraPuzzles - Efficient Visualization of Gigantic Polygonal Models

[2] GoLD: Interactive Display of Huge Colored and Textured Models

[3] HLODs for Faster Display of Large Environments

[4] Far Voxels - A Multiresolution Framework for Interactive Rendering of Huge Complex 3D Models on Commodity Graphics Platforms

Alternatively, the two following methods are usable directly on voxels:

[5] Interactive View-Dependent Rendering of Large IsoSurfaces

[6] Visualization of Large Isosurfaces Based on Nested Clipboxes

I'm not sure which method they used - but I guess it will be either [2] or [3], as they are the most practical for the game-industry. All meshes can be pre-computed and rendered as static meshes without much CPU cost.

Here other related links to other voxel-based terrain engines:
Iehova (by Peter Venis)
Hvox (by me)
Voxlap (by Ken Silverman)

Oh,btw - here a video from the GDC07 where it is shown.
http://www.gametrailers.com/umwatcher.php?id=47885

Greez, Sven

Sven Forstmann
http://www.p0werup.de

[Edited by - spacerat on April 2, 2009 12:07:33 AM]

Share this post


Link to post
Share on other sites
Quote:
Original post by spacerat
To achieve the visualization of large voxel volumes, there are many ways.

The following methods are designed to visualize large polygon meshes. However, in case that all voxels are converted to polygons by marching cubes or a similar algorithm before, its about equal.


Careful! Isnt Marching Cubes patented? ;)

I remember the Delta Force series also used a voxel engine, maybe you can find a post-mortem of some sort.

Share this post


Link to post
Share on other sites
As far as I remeber, the patent expired this year or already the last one.
However, its just an example - there are many alternative ways for the conversion like this one, which are not patented.

Share this post


Link to post
Share on other sites
The crysis engine uses something similar to marching cubes to build bit's of geometry to put in holes made the big heightmap, it is actually something you could have done by hand in the first engine, so in theory it's nothing uncommon or even that advanced, but their implementation of it is pretty sweet.

Share this post


Link to post
Share on other sites
Does anybody think this will be the next new rendering method for terrain? Seems pretty slow to me, plus I'm sure in all their demo videos of Crysis they're running it on the Intel Dual Core X6700 or the Quad Core 6800 with an Nvidia 8800, which we all don't have.

Share this post


Link to post
Share on other sites
I don't see why not. It allows for completely destructible terrains with overhangs, caves and cliffs, appears to lend itself to existing terrain LOD algorithms such as clipmaps and I can only imagine how good it would look combined with id's MegaTexture. [smile]

FYI, GraphicsDev.net is holding a discussion on Crysis Technology Breakdown tomorrow (more info here)
[smile]

Sven, I remembering seeing your volumetric terrain screenshots ages ago on Flipcode IOTD, seriously impressive stuff

All the Best,
ViLiO

Share this post


Link to post
Share on other sites
I just watched the following video from GDC
http://www.crysis-online.com/video_downloader.php?dir=/video/SD/(Crysis-Online) GDC 2007 Sandbox Demo 2.wmv

And it doesn't seem like they use a voxel approach for their entire terrain. It seems they only render small pieces of the terrain using a voxel method and the rest is still a regular heightmap. If anybody has watched the video, am I wrong?

Share this post


Link to post
Share on other sites
yeah, I think you're right - looks like they've augmented the CryEngine terrain renderer with a voxel component for drawing small chunks of terrain to handle natural terrain features. Makes sense, and gives the best of both worlds.

Share this post


Link to post
Share on other sites
How is having voxel based sections better than having arbitrary mesh based pieces?

Share this post


Link to post
Share on other sites
I would think its better b/c its completely dynamic and storing voxel information takes up much less disk space than a mesh. Plus, its seems it would be much easier to sculpt in the editor, since you're only modifying single values in a 3d volume stating whether that particular point is solid or not.

Share this post


Link to post
Share on other sites
Quote:
Original post by soconne
.. storing voxel information takes up much less disk space than a mesh.


Thats true - for example by compressing the volume using run-length encoding, the data size can be kept very moderate.

Share this post


Link to post
Share on other sites
Quote:
Original post by Rompa
I wonder how they texture it then?


Related to this, has anybody seen the Making-Of of NVidia's cascades demo on the GDC ? Maybe they unveiled something about texture mapping for iso-surfaces. Or is there even a video somewhere available ?

Share this post


Link to post
Share on other sites
Actual free-formed terrain is not really complicated, I think. It's just the many detail problems in keeping the mesh consistent among all possible detail situations that can cause a lot of work. Texturing is a different topic, though. I haven't found a way to texture large meshes automatically. The NVidia demo looks like they have solved this issue... anyone has an idea how they achieved this?

Share this post


Link to post
Share on other sites
Texturing seems it could be pretty easy. All you would need is the vertex position and the normal. Then in the shader, you could calculate texture coordinates based on just those pieces of data. Correctly lining up the texture to match where it is on the terrain is done through the vertex position. Then deciding which texture to use could be done with the normal. I've seen it done this way in some of the sites demos that were listed above.

Share this post


Link to post
Share on other sites
Quote:
Original post by spacerat
Quote:
Original post by Rompa
I wonder how they texture it then?


Related to this, has anybody seen the Making-Of of NVidia's cascades demo on the GDC ? Maybe they unveiled something about texture mapping for iso-surfaces. Or is there even a video somewhere available ?


nVidia's presentations from GDC '07

HellRaiZer

Share this post


Link to post
Share on other sites
I've heard that Crysis uses one of these new features of DX10: There are these "geometric shaders" which generate new vertices each frame.
Look also http://www.atomicmpc.com.au/article.asp?CIID=73893

Maybe crysis renders a simplificated terrain mesh with displacement maps by using some geometric shaders. The other LOD stories with Octrees could be used additionally.

I've found also a cool technical note:
http://www.behardware.com/news/lire/21-02-2006/

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
They have regular heightmap terrain, at at places they can enable voxel based *editing* to produce arbitrary meshes.
I highly doubt the voxels exists anywhere but in the editor phase at all.
The most usefull part of this feature is the freedom for level designers, who can replace modellers and create arbitrary meshes - that's the main point of the feature I think. And it is huge.

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
Quote:
Original post by ViLiO

FYI, GraphicsDev.net is holding a discussion on Crysis Technology Breakdown tomorrow (more info here)
[smile]


Any logs?

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
Quote:
Original post by Steadtler
Careful! Isnt Marching Cubes patented? ;)
No. Patent timed out ~2005.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement