在OpenGL中对网格应用噪波,不使用纹理坐标



在没有纹理坐标的OpenGL中,在非平凡网格(以及任何网格)的表面上应用噪波时,我遇到了一个问题。我基本上想在表面上应用一个噪波纹理,但由于我没有纹理坐标,我不能只应用一个噪声纹理。在顶点着色器中生成纹理坐标在一定程度上是有效的,但无论是立方体、球体还是对象平面坐标,总会有一些纹理涂抹。

使用立方体贴图涂抹http://img811.imageshack.us/img811/3923/0ouu.png

用立方体地图坐标在表面上涂抹改变

使用对象平面进行涂抹http://img195.imageshack.us/img195/987/c3cz.png

沿着z平面用物体平面(xy)坐标进行涂抹

我已经在片段着色器中生成了随机噪声,但由于每帧都会发生变化,这不是我所需要的(而且计算成本也不低)。

我只需要在网格表面上静态均匀分布噪声。

有人知道怎么做吗?

您可以获取片段着色器中每个像素的三维模型空间坐标,并根据这些值使用一些三维噪声。

最新更新