2017-06-07 16 views
0

私は3つのjs(r85)で簡単なシーンを作成しました。これには、カメラ、ライト、および平面ジオメトリメッシュが含まれています。私はShaderMaterialで平面のバンプマップテクスチャをレンダリングするレンダラーターゲットを作成しました。フラグメントシェーダにバンプマッピングは連続関数(SOバンプマッピングは、「滑らか」であるべきである)を使用する:3つのjsバンプマッピング

img

varying vec2 vUV; 

void main() { 
    float x = sin(sqrt(vUV.x * vUV.x + vUV.y * vUV.y)); 
    gl_FragColor.rgb = vec3(x, x, x); 
} 

をコードは、次の画像(奇妙ライン)描画しますMeshPhongMaterialでバンプマッピングを使用すると、奇妙な線が表示されます。

jsfiddleを参照してください。

奇妙な線は何ですか、これらを避ける方法を教えてもらえますか?バンプマップ(レンダーターゲットではない)に単純なイメージを使用すると、線は表示されません。

ありがとうございます!

答えて

2

これは、長さが0-sqrt(2) or 0-1.41のため、sin波の周期のごく一部分を利用しているためです。0-2*PI or 0-6.283 - テクスチャの色深度が強調されています - 1ビットのステップが得られます50ピクセルごとに、つまり、0x000000から0x1a1a1aにフェードするときに、放射状のグラデーションが一連のリングのように見える理由があります。 enter image description here

Check out a branch i made from it.私は(最寄りは常にピクセル化になります)linearmagfilterを変更するようなカップルの事をしましたが、それは上下に数回行くだけではなく、行くように、主に私はバンプマップの期間を変更テクスチャの過程で小さなビットをアップ。

バンプマップは常に自分自身で全体的に見え、11になっています。これは2次元空間で3次元表面を偽造しようとしている厳しい作業をしています。有限の分解能を持ち、精密検査では肉眼で見える。

+1

magFilterを線形に設定すると、元のコードでも見栄えがよくなります。ご協力いただきありがとうございます! –

関連する問題