我正在使用ROAM(连续细节级别)完成3D行星。
我现在的目标是使用纹理进行高质量渲染。
我正试图找到一种方法,我可以使用平铺系统(小的好纹理组合),但在某种程度上我可以利用我的CLOD网格。
使用这种平铺系统的当前算法(来自我发现的)会产生巨大的纹理然后直接应用它。这不是我想要的......这个星球非常大,我想要的不仅仅是增加纹理尺寸。
这种东西有没有已知的算法/ opengl功能?
我对着色器知之甚少,但有可能创建一个单独绘制对象的对象......我的意思是,不是给出texcoords,而是为网格的每个像素(不是顶点)添加正确的颜色?
PS:我的世界是用perlin噪音构建的...所以我可以在任何世界点(无限分辨率的高度图)获得高度
答案 0 :(得分:2)
您已经为地形使用了3D Perlin噪音,为什么不生成纹理呢?通常,诸如Terragen,Vistapro等程序使用高度来从调色板中随机选择一系列颜色,基于斜率修改该颜色,并且可能基于斜率和高度来添加来自较小纹理的细节。在您的情况下,距离也可以修改细节。就此而言,2d perlin噪声对于细节纹理效果很好。
你有没有修改过高度图?纯粹的3D Perlin噪音很难达到像海洋这样的东西,但是在一定海拔以下的地方平坦化并应用一个漂亮的算法海洋纹理(适当调整2d Perlin噪音,透明度低于一定水平)看起来不错。
答案 1 :(得分:0)
本文:
http://johanneskopf.de/publications/blue_noise/
为2D图像做类似的事情。看看视频。