我遇到了在没有纹理坐标的情况下在OpenGL中的非平凡网格(以及任何网格)的表面上应用噪声的问题。我基本上想要在表面上应用噪声纹理,但由于我没有纹理坐标,所以我不能只应用噪声纹理。在顶点着色器中生成纹理坐标可以在一定程度上工作,但无论是立方体,球体还是对象平面坐标,总会有一些纹理模糊。
smearing with cube map http://img811.imageshack.us/img811/3923/0ouu.png
在表面更改中使用立方体贴图坐标进行涂抹
smearing with object planar http://img195.imageshack.us/img195/987/c3cz.png
使用沿z平面的物体平面(xy)坐标进行涂抹
我已经在片段着色器中进行了随机噪声生成,但是因为这会改变每一帧,这不是我需要的(并且计算上也不便宜)。
我只需要在网格表面上静态均匀分布噪音。
有人对如何做到这一点有任何想法吗?
答案 0 :(得分:1)
您可以为片段着色器中的每个像素获取三维模型空间坐标,并根据这些值使用一些3d噪声。