动态地形的纹理坐标 - OpenGL

时间:2011-07-06 08:37:15

标签: opengl texture-mapping shader perlin-noise

有人可以描述一种常用的技术,用于计算动态变化每一帧的地形的纹理坐标吗?我在顶点着色器中实现了perlin噪声函数,并且逐帧动画地形。地形非常像山一样(锯齿状,非常嘈杂)。我想我可以在整个地形上线性地拍几个大纹理,并在片段着色器中根据高度拍摄多个纹理,但这会导致纹理看起来在高海拔增益/失去的地方伸展,对吧?我无法弄清楚如何计算顶点着色器中的纹理坐标,以便纹理在整个地形上看起来很漂亮,并且可以多纹理以获得细节。我正在寻找关于OpenGL中存在哪种技术的指针。我可以将glTexGen用于这样的事情吗?

1 个答案:

答案 0 :(得分:1)

没有“共同技术”用于这样做,因为它没有什么共同之处。您有需要,这些需求特定于您的用途。很难知道你想要什么,因为除了“在这个变化的地形上放置纹理”之外,你自己似乎没有任何特定的目标。

glTexGen不会帮助你,因为它只适用于每顶点级别。如果你担心在变化很大的地方伸展,那将无济于事。

你应该尝试各种各样的事情,看看是什么给出了可接受的结果。使用着色器根据三角形的斜率混合纹理(您必须找到在片段着色器中计算它的方法,或使用几何着色器来获取它)以及任何特定像素的高度。这样,对于较高坡度的区域,您可以开始引入岩石纹理或其他东西。