【发布时间】:2009-05-29 21:28:11
【问题描述】:
我正在使用 ROAM(连续细节)完成一个 3D 星球。
我现在的目标是使用纹理进行高质量的渲染。
我正在尝试找到一种可以使用平铺系统的方法(组合好的小纹理),但在某种程度上我可以利用我的 CLOD 网格。
使用这种平铺系统的当前算法(根据我的发现)会产生巨大的纹理,然后直接应用它。那不是我想要的……星球很大,我想要的不仅仅是增加纹理大小。
这种东西有什么已知的算法/opengl 特性吗?
我对着色器了解不多,但是是否有可能创建一个单独绘制对象的着色器...我的意思是,不给出 texcoords,而是为网格的每个像素(不是顶点)设置正确的颜色?
PS:我的世界是使用柏林噪声构建的......所以我可以得到任何世界点的高度(无限分辨率的高度图)
【问题讨论】:
-
真棒的问题,可惜我有一段时间没票了
-
像素着色器做你想做的事:对于每个像素,计算它应该是什么颜色。着色器语言有一些严格的限制,但诸如“点积”和“在 1d/2d/3d 地图中查找”之类的操作是原语。
-
您的问题到底是什么? - 你没有 (u,v) 纹理坐标并且你想动态生成一些? - 您希望您的纹理在放大时添加细节
-
@purpledog...我基本上想要一种更好的方式来纹理化我的星球。我在一个平铺系统上有几个纹理,具有适当的 (u,v)。每个图块的百分比与该点的高度和为纹理定义的范围之间的距离成正比...但是我的星球有很多重复...它是一个大图块...需要更好的东西。
标签: opengl