有人可以描述一种用于计算每帧动态变化的地形的纹理坐标的常用技术吗?我在顶点着色器中实现了一个 perlin 噪声函数,并且地形是逐帧动画的。地形非常像山(锯齿状,非常嘈杂)。我在想我可以在整个地形上线性地拍几个大纹理,并根据高度在片段着色器中使用多纹理,但这会导致纹理在高度增加/损失较大的地方看起来被拉伸,对吗?我无法弄清楚如何计算顶点着色器中的纹理坐标,以便纹理在整个地形上看起来都很漂亮,并且可以为细节进行多重纹理处理。我正在寻找关于 OpenGL 中存在什么样的技术的指针。
问问题
1176 次
1 回答
1
没有用于执行此操作的“通用技术”,因为它没有什么共同之处。您有特定于您的用途的需求。很难知道你想要什么,因为除了“在这个不断变化的地形上放置纹理”之外,你自己似乎没有任何特定的目标。
glTexGen
不会对您有所帮助,因为它仅适用于每个顶点级别。如果您担心跨越巨大变化的领域,那将无济于事。
你应该尝试各种各样的事情,看看是什么给出了可接受的结果。使用着色器根据三角形的斜率(您必须找到一种在片段着色器中计算它的方法,或者使用几何着色器来获得它)以及任何特定像素的高度来混合纹理。这样,对于坡度较高的区域,您可以开始引入岩石纹理或其他东西。
于 2011-07-06T10:35:12.520 回答