0

テクスチャ座標のない OpenGL で自明でないメッシュ (任意のメッシュ) の表面にノイズを適用する際に問題があります。基本的にノイズ テクスチャを表面に適用したいのですが、テクスチャ座標がないため、単にノイズ テクスチャを適用することはできません。頂点シェーダーでのテクスチャ座標の生成はある程度機能しますが、それが立方体、球体、またはオブジェクトの平面座標であるかどうかにかかわらず、常に何らかのテクスチャ スミアが発生します。

キューブ マップで塗抹 http://img811.imageshack.us/img811/3923/0ouu.png

サーフェスの変更全体にわたるキューブ マップ座標によるスミアリング

オブジェクト平面で塗りつぶす http://img195.imageshack.us/img195/987/c3cz.png

z 平面に沿ったオブジェクトの平面 (xy) 座標による塗り付け

フラグメントシェーダーでランダムノイズ生成を行いましたが、これはフレームごとに変更されるため、必要なものではありません (計算的にも安価ではありません)。

メッシュ サーフェス全体にノイズを静的に均一に分散する必要があるだけです。

これをどのように行うことができるかについて、誰かが何か考えを持っていますか?

4

1 に答える 1

1

フラグメント シェーダーで各ピクセルの 3D モデル空間座標を取得し、それらの値に基づいて 3D ノイズを使用できます。

于 2013-06-28T07:34:28.490 に答える