Archived

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

Voxel terrain, ray casting and adaptive refinement

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

Voxel landscape with simple ray casting scheme are easy to implement (even adopt to hardware acceleration). My landscape (http://immerse.km.ru/english/project/voxel-engine.htm) look fully identical to NovaLogic Commance 4, but without improved ray casting scheme work slow. The main idea of adaptive refinement sounds simply – part of landscape with strong changes we cover with more rays, and less rays for flat part. But how this implement? Any ideas? Or links to related technical pares? Thanks…

Share this post


Link to post
Share on other sites
sorry I dont know the answer to your question but I was wondering how can voxel landscapes be adapted to hardware acceleration? ,thanks in advance

Share this post


Link to post
Share on other sites
quote:
Original post by knepp
sorry I dont know the answer to your question but I was wondering how can voxel landscapes be adapted to hardware acceleration? ,thanks in advance

http://flipcode.com/voxtut/voxtut-hw.shtml. The tutorial starts at this page: http://flipcode.com/voxtut/.

Hopefully Alex will pop over here to say a few words about voxels.

Share this post


Link to post
Share on other sites
Andrey, I'm not sure how exactly it's done, I'm talking this off the top of my head, so there might be a much more elegant solution.

Subdivide your heightmap into a quad tree. For every node of the tree calculate a value that would specify how much fluctuation there is in the landscape. I'm not sure exactly how to do that, one way would be to calculate the fourier transform and use the frequency information. The more higher frequencies there are, the more rays you need for that quad. Then, send one ray and when it hits the quad check the value. Then you can make a decision how many rays to send.

Again, I thought about this for a couple of minutes, I'm sure there are a lot of much more elegant solutions out there.

Btw, I assume you're russian, right? (.ru extension, plus Andrei). If so, priatno videt russkih na gamedev.net, tut dovol'no redko vstrechautsia znakomie imena

EDIT: I just saw that you're from Ukraine. Which city? I came to NYC from Odessa (ah, jemchujena u moria )

P.S. Everyone, don't mind the russian, I just said that it's nice to see russians on gamedev and that Odessa (the city where I was born) is the best place on Earth

[edited by - kill on June 5, 2002 6:47:37 PM]

Share this post


Link to post
Share on other sites