我正在使用ROAM(连续细节级别)完成3D行星.
我现在的目标是使用纹理进行高质量的渲染.
我试图找到一种方法,我可以使用平铺系统(小的良好纹理组合),但在某种程度上,我可以利用我的CLOD网格.
使用这种平铺系统的当前算法(来自我发现的)产生了巨大的纹理,然后直接应用它.这不是我想要的......这个星球非常大,我想要的不仅仅是增加纹理尺寸.
这种东西有没有已知的算法/ opengl功能?
我对着色器知之甚少,但是有可能创建一个单独描绘对象的东西......我的意思是,不是给出texcoords,而是为网格的每个像素(不是顶点)设置正确的颜色?
PS:我的世界是用perlin噪音建造的...所以我可以在任何世界点获得高度(高度图具有无限分辨率)
您已经对地形使用了 3D Perlin 噪波,为什么不也生成纹理呢?一般来说,Terragen、Vistapro 等程序使用海拔高度从调色板中随机选择一系列颜色,根据坡度修改该颜色,并可能根据坡度和海拔添加较小纹理的细节。就您而言,距离也可能会改变细节。就这一点而言,2d 柏林噪声对于细节纹理来说效果很好。
你修改过高度图吗?像海洋这样的东西很难用纯 3d Perlin 噪声来实现,但将所有东西展平到一定高度以下并应用良好的算法海洋纹理(适当调整 2d Perlin 噪声,透明度低于一定水平)看起来不错。