Not logged in, Join Here! or Log In Below:  
 
News Articles Search    
 

 Home / 3D Theory & Graphics / Big heightmaps for voxel landscapes Account Manager
 
Archive Notice: This thread is old and no longer active. It is here for reference purposes. This thread was created on an older version of the flipcode forums, before the site closed in 2005. Please keep that in mind as you view this thread, as many of the topics and opinions may be outdated.
 
Alex J. Champandard

May 21, 1999, 05:02 AM

Hello,

I've been redesigning my voxel landscape engine with big (1024x1024) height maps in mind.
I've got a couple of ideas in mind, but i'd like some help on making it efficient: for cache
especially, and easy access. That's where 256x256 maps are more handy, a simple segment
aligned buffer does the trick nicely :)

Does anyone else have any ideas on the topic?

Cheers,
Alex

 
Parashar Krishnamachari

May 21, 1999, 04:54 PM

Alex J. Champandard wrote:
>>I've been redesigning my voxel landscape engine with big (1024x1024) height maps in mind.
>>I've got a couple of ideas in mind, but i'd like some help on making it efficient: for cache
>>especially, and easy access. That's where 256x256 maps are more handy, a simple segment
>>aligned buffer does the trick nicely :)
>>
>>Does anyone else have any ideas on the topic?

It would probably depend on your engine, but the simplest thing you can try is to just break up your map into so many sectors, and only do work with the sector that the user is in. Of course, that creates problems when the user approaches sector borders, so you may also have to do some processing in the way of neighboring sectors, but that may not be a concern until the user passes one of the midlines or even further depending on what the scale factor is.
I've also heard of engines that tile the voxels. Only calculate for every 8th point in the map, and interpolate relative to the normals. It's not the same as raytracing where you do every 8th pixel on the screen. Anyway, if you do something like that, you can extract those few elements you DO calc for into a separate buffer. You'll just have to multiply their xy coords by 8. or whatever you use.

- C.P.I. / ASMiNC

 
Alex J. Champandard

May 24, 1999, 06:56 AM


>>
>> It would probably depend on your engine, but the simplest thing you can try is to just break up your map into so many sectors, and only do work with the sector that the user is in. Of course, that creates problems when the user approaches sector borders, so you may also have to do some processing in the way of neighboring sectors, but that may not be a concern until the user passes one of the midlines or even further depending on what the scale factor is.
>> I've also heard of engines that tile the voxels. Only calculate for every 8th point in the map, and interpolate relative to the normals. It's not the same as raytracing where you do every 8th pixel on the screen. Anyway, if you do something like that, you can extract those few elements you DO calc for into a separate buffer. You'll just have to multiply their xy coords by 8. or whatever you use.
>>

I think i'll use blocks of 16x16, they will be relatively efficiant to access, and quicker than having no blocks at all.
I'll try it out and keep you informed...

Cheers,
Alex

 
Steph

May 27, 1999, 03:20 AM

Perhaps you should try to use the same format as some graphic cards to store
texture in video ram... they "interleave" data so that they can access efficiently
to near texels. I don't know exactly the format but I think it's some kind of
peano or hilbert curves.

Steph

Alex J. Champandard wrote:

>>
>>I think i'll use blocks of 16x16, they will be relatively efficiant to access, and quicker than having no blocks at all.
>>I'll try it out and keep you informed...
>>
>>Cheers,
>>Alex

 
This thread contains 4 messages.
 
 
Hosting by Solid Eight Studios, maker of PhotoTangler Collage Maker.