How to get LOD out of voxel terrain?

Started by
5 comments, last by averisk 18 years, 12 months ago
Hi I've got a somewhat working terrain engine that is based on voxels--Well, actually it's based on a meta-ball like algo, but anyway the result is a single 3d mesh that is all of a single LOD. (screen for anyone that's interested) So I got the geometry being generated now, problems are: -Texturing - The only idea I can think of here is to use a 3d texture array, but this seems pretty wasteful and also I have no idea how to generate such a thing -LOD - This is where I'm really stuck. So far all I've got is basic edge collapsing, and perhaps that's not really that bad of an option. Ideas? Thanks for your time
Advertisement
I take it from the lack of responses that this is a pretty rare/uninteresting topic.

I will try one last bump and then give up :)
imo it's a pretty intersting topic, i fear i just have not enough knowledge about it. could you point me to some articles on that method?

on the texture problem, just a quick idea: in "normal" terrain engines there's often the aproach to blend textures of different zones ( like sand, grass rock snow whatever ) based on height. you could use this for all surfaces who's normal is pointin upwards and that are the top most voxel at the given x, y position. for surfaces who's normals point downwards ( note: i just use the coordinates system and viewangle of your screenshot above for reference :) ) you could come up with a similar approach, just that you use other textures to blend.

if you have a look at the hole in that hill in your screenshot it should be obvious what i'm talking about. the bottom surfaces of this "cave" point upwards so you might think "ah i take the normal terrain textures". but as there's voxels above that too you know that it must belong to a cavelike structure, thus you chose another texture set. for the faces of the cave who's normals point downwards you also chose the textures from your cave textures set. maybe weighten in the normals direction to.

my 2 cents, oh and maybe point me to some articles on the terrain method itself sounds interesting.

marzec
http://www.cc.gatech.edu/~lindstro/papers/visualization2002/paper.pdf

Something like this.

/Aki R.
And for texturing use pixel shaders and forget problem of uvmapping.
per vertex 3d noice value + cubemap lookout table for angle of surfice + height of pixel in 3d enviroment, are good help while adding appearance to surffice.

/Aki R.
Wow, thanks Aki. Looks like a very interesting paper. I'm only half-way through right now but I suspect I'll have to read it over a few extra times to fully understand it ;)

Quote:Original post by marzec
imo it's a pretty intersting topic, i fear i just have not enough knowledge about it. could you point me to some articles on that method?


I don't have any for you, since it's something I came up with myself. Like I said it uses a meta-ball like algo to represent the terrain. Feel free to email me if you want some specifics about the algorithm.
Quote:Original post by marzec
on the texture problem, just a quick idea: in "normal" terrain engines there's often the aproach to blend textures of different zones ( like sand, grass rock snow whatever ) based on height. you could use this for all surfaces who's normal is pointin upwards and that are the top most voxel at the given x, y position. for surfaces who's normals point downwards ( note: i just use the coordinates system and viewangle of your screenshot above for reference :) ) you could come up with a similar approach, just that you use other textures to blend.

if you have a look at the hole in that hill in your screenshot it should be obvious what i'm talking about. the bottom surfaces of this "cave" point upwards so you might think "ah i take the normal terrain textures". but as there's voxels above that too you know that it must belong to a cavelike structure, thus you chose another texture set. for the faces of the cave who's normals point downwards you also chose the textures from your cave textures set. maybe weighten in the normals direction to.


I was thinking of something like this as well. So I would end up with some weights for each texture set associated with each vertex. It just seems like it would be tricky to UV map correctly. At the moment, I can't think of an easy way to do it

I think I will look into pixel shaders first (thanks again Aki), which I know very little about but I figure it's about time I learn

Thanks for your suggestion though :D

This topic is closed to new replies.

Advertisement