• Advertisement

Archived

This topic is now archived and is closed to further replies.

Voxels....

This topic is 6242 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

Does anyone know anything about making a voxel engine? I don't want anyone to give me an engine; just some tips on how and where to go get started; I know C/C++, and am hoping to use just internal rendering and use DDraw for displaying the render....is this the best method? Even if you don't know anything about voxel rendering, I could use some links if you've seen any; I've searched all over the internet, and all I've found were a few: Voxel tutorial from Flipcode TerraVox page Outcast Technology Description Voxel Essay These were all very helpful, but I'd like more....does anyone have anything that could help? Is there anyone else that's trying to create a voxel engine? Thanks =o) (o=   Cliff_Hawkens   =o) Edited by - cliffhawkens on January 14, 2001 4:34:11 PM

Share this post


Link to post
Share on other sites
Advertisement
Ok, are you interested in creating real voxel renderer or heighfield renderer? Seems that all those links you gave are references to heightfield instead of voxel stuff. There is huge difference between those two even heightfield renderers are often referred as voxel renderers.



"Only two things are infinite, the universe and human stupidity, and I''m not sure about the former." - Albert Einstein

Share this post


Link to post
Share on other sites
voxels allow overhangs (and every geometry)
highfields do not

Deltaforce, Outcast use highfields

In the 3dengine list they are in one category

Share this post


Link to post
Share on other sites
Thanks! I guess I''d never even heard of "voxels" of that type before...pretty cool! They sound powerful, but wouldn''t that be pretty slow? As opposed to just having to know the height of a "voxel" strip, and assume the bottom to be at 0, you''d have to know the top and the bottom... how would the terrain data be stored, anyways? I''m think that if someone were to want overhangs with a heightfield engine, they could just use polygons...

Where can I get more information on this? In the meantime, I''ll keep searching....thanks!

(o=   Cliff_Hawkens   =o)

Share this post


Link to post
Share on other sites
quote:
From Another Flipcode article

...you do not need al the usual nasty 3D operations like 6DOF rotation matrix calculation (voxel landscapes can only be rotated around the y-axis), clipping and so on.



Does anyone know why most of the voxel/heightfield demos and articles say that you can't look up/down? Delta force and Outcast did... oh well, I'll keep looking...

(o=   Cliff_Hawkens   =o)

Edited by - cliffhawkens on January 15, 2001 5:44:17 PM

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
Well you can''t look up and down in outcast, sort of..
There is way to change the point of view but that is only
a rendering trick.
imagine you have a program that let you see a landscape
with a line of sight that must stay parallel to horizontal
(typical in these renderers, because that the way they are
accelerated, works also in doom, Duke nuk''em, and other clones)
what you can do is to change the height of the line of sight
(translating the camera up and down but still looking at the
horizon). But if you change the location of
the camera, the character is no more at the center of the screen,
so you simply translate the projected view so that the character stay where you want it to be. So moving up the camera and translating up the projected image, kind of looks as if the camera were looking down.

Is it almost clear?
Legreg

Share this post


Link to post
Share on other sites
Yes, it''s definately faster to render heightfield than voxels. Anyway, heightfield and voxels is just a way to represent an object, it doesn''t limit the way they would be rendered. You can have free camera for both, but that would be slower to render.
Adding polygonal objects to heightfield / voxel scenes is like adding color to b&w picture, be prepared (:

There is several ways to store heightfield scene. Most naive way is to store heights just as 2D array of bytes. You can also for instance use quadtree (similar to octrees in 3D) to speed up rendering or directional distance transforms like David W. Paglieroni descripes in one of his papers.

Cheers, Altair


"Only two things are infinite, the universe and human stupidity, and I''m not sure about the former." - Albert Einstein

Share this post


Link to post
Share on other sites
quote:
Original post by cliffhawkens
Does anyone know why most of the voxel/heightfield demos and articles say that you can''t look up/down? Delta force and Outcast did... oh well, I''ll keep looking...



Its not that you cant look up and down. Its that you cant lean over sideways. This has to do with one of the optimisations used in voxel heightmap renderers. They render a column of pixels at a time from top to bottom. If a ray cast out from a pixel hits the terrain then they know that every other pixel down the column must be terrain too. This doesnt work if the columns arent perpendicular to the ground e.g. when leaning.

ro

Share this post


Link to post
Share on other sites
quote:
Original post by Anonymous Poster
...But if you change the location of
the camera, the character is no more at the center of the screen,
so you simply translate the projected view so that the character stay where you want it to be. So moving up the camera and translating up the projected image, kind of looks as if the camera were looking down.

Is it almost clear?
Legreg



Yes, I can see how this would work for Outcast, but what about Delta Force? I know you can look up/down in Delta Force...

quote:
Original post by rowbot
Its not that you cant look up and down. Its that you cant lean over sideways...



Well, saying "voxel landscapes can only be rotated around the y-axis" doesn't mean that...but then again, I can't take every article for the Gospel truth, now can I? Of course you're right (Delta Force), but I'm just wondering how it's done....

(o= Cliff_Hawkens =o)


Edited by - cliffhawkens on January 17, 2001 1:58:43 AM

Share this post


Link to post
Share on other sites
quote:
Original post by cliffhawkens
Well, saying "voxel landscapes can only be rotated around the y-axis" doesn't mean that...but then again, I can't take every article for the Gospel truth, now can I? Of course you're right (Delta Force), but I'm just wondering how it's done....



Ok. I just scanned through the flipcode tutorial and you may be right. I assumed that rotating about the X axis would be ok for that algorithm but maybe not. I'm not really bothered to work out why not.

Outcast and delta force may not use the raycasting technique though. The constraint to 4 degrees of freedom is only a side-effect of the raycasting technique.

If you want to make an engine just pick a technique an go for it. Raycasting is nice for people who prefer simple co-ordinate geometry to matrix math (Like me). I think you've got alot to go on with just that flipcode article.

Otherwise just try your nearest search engine for other techniques.

ro


Edited by - rowbot on January 17, 2001 7:08:42 AM

Share this post


Link to post
Share on other sites
Thanks =o)

I''m not bothered with matrix math too much (I know how to do it by hand, but it is fairly difficult to do it with programing), so I think I''ll look around for some different techniques; thanks for your replies...(I''ll still be watching this topic, so don''t think that I''m just giving up on this thread; it''s still voxel/heightfield rendering =o)

Thank you so much for your replies so far; believe it or not, you have helped =o)

(o=   Cliff_Hawkens   =o)

Share this post


Link to post
Share on other sites
With a standard "voxel" heightmap engine columns have to map to straight lines on the heightmap AFAICS. And thats only true if you look straight ahead, you can do some tricks by shifting the columns/up down or doing tilt as a post processing step. But basically with that kind of method you only have 4 DOF.

In the general case (6DOF) however the mapping of straight lines on the screen to straight lines of the heightmap still hold. Unfortunately they extend from the epipole''s outward on the screen and the heightmap, so no more nice colums in the general case... those are just a limit case.

Check:
http://mania.snu.ac.kr/~chlee/JVCA.ps
(on his homepage it said they were considering extending the technique to RLE encoded voxel sets, the difference between voxel&heightmap rendering isnt that great after all, but nothing came of it AFAICS)
And
http://www.graphics.lcs.mit.edu/~gs/papers/dispmap/
(this explains the relation to IBR and epipolar lines a little better, but in the context of more general displacement mapping instead of just a heightmap)

Share this post


Link to post
Share on other sites

  • Advertisement