在没有纹理坐标的OpenGL中,在非平凡网格(以及任何网格)的表面上应用噪波时,我遇到了一个问题。我基本上想在表面上应用一个噪波纹理,但由于我没有纹理坐标,我不能只应用一个噪声纹理。在顶点着色器中生成纹理坐标在一定程度上是有效的,但无论是立方体、球体还是对象平面坐标,总会有一些纹理涂抹。
使用立方体贴图涂抹http://img811.imageshack.us/img811/3923/0ouu.png
用立方体地图坐标在表面上涂抹改变
使用对象平面进行涂抹http://img195.imageshack.us/img195/987/c3cz.png
沿着z平面用物体平面(xy)坐标进行涂抹
我已经在片段着色器中生成了随机噪声,但由于每帧都会发生变化,这不是我所需要的(而且计算成本也不低)。
我只需要在网格表面上静态均匀分布噪声。
有人知道怎么做吗?
您可以获取片段着色器中每个像素的三维模型空间坐标,并根据这些值使用一些三维噪声。