Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

CLOD Planet wide texturing in OpenGL

Tags:

opengl

I'm finishing up on a 3D planet with ROAM (continuous level of detail).

My goal now is to have good quality render using textures.

I'm trying to find a way I can use a tiling system (small good textures combined), but in a way I can take advantage of my CLOD mesh.

Current algorithms (from what I've found) using this tiling systems produce a huge texture and then direcly apply it. That is not what I want... the planet is very big, and I want more power than simply increasing the texture size.

Is there any known algorithm/opengl feature for this kind of stuff?

I don't know much about shaders, but Is it possible to create one that paints a objects alone... I mean, not giving the texcoords, but putting the right color for every pixel (not vertex) of the mesh?

PS: My world is built using perlin noise... so I can get the height in any world point (height map with infinite resolution)

like image 713
fabiopedrosa Avatar asked May 29 '09 21:05

fabiopedrosa


1 Answers

You have used 3D Perlin noise for the terrain, why not generate the texture as well? Generally, programs like Terragen, Vistapro and the like use altitude to randomly select a range of color from the palette, modify that color based on slope, and perhaps add detail from smaller textures based on both slope and altitude. In your case, distance could also modify detail. For that matter, 2d perlin noise would work well for detail texture.

Have you modified the heightmap at all? Something like an ocean would be hard to achieve with pure 3d Perlin noise, but flattening everything below a certain altitude and applying a nice algorithmic ocean texture (properly tuned 2d Perlin noise with transparency below a certain level) would look good.

like image 196
R Ubben Avatar answered Nov 01 '22 01:11

R Ubben