🔒 Locked
Voxels....
Advertisement
Original Post
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)
Edited by - cliffhawkens on January 14, 2001 4:34:11 PM
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
"Only two things are infinite, the universe and human stupidity, and I''m not sure about the former." - Albert Einstein
Sorry; like I said, I don''t know much about this; all I''ve seen were these pages and engines like Delta Force''s and Outcasts....
What''s the difference between a heightfield engine and a voxel engine?
What''s the difference between a heightfield engine and a voxel engine?
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!
Where can I get more information on this? In the meantime, I''ll keep searching....thanks!
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...
Edited by - cliffhawkens on January 15, 2001 5:44:17 PM
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
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
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
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....
Edited by - cliffhawkens on January 17, 2001 1:58:43 AM
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
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)
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)
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)
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)
Topic Locked
This topic has been locked by a moderator. New replies are not allowed.
Sign in to reply to this topic.
Advertisement