3

私はthree.jsを使用してフラグメントシェーダーを呼び出しています-そのシェーダーは私のマテリアルの色を指定し、rgbに分割します-そしてそれらの色にランダムな値を掛けることができるかどうかを確認したいと思います。これは私がこれまでに使用しているコードです:

gl_FragColor = vec4( color.r*.5, color.g, color.b, smoothstep( 8000.0, -8000.0, gl_FragCoord.z / gl_FragCoord.w ) ); //MH - creates colors by multiplying color values

これは、JavaScriptの場合に実行したいことですが、明らかにこれはGLSLシェーダースクリプト内では機能しません。

gl_FragColor = vec4( color.r*Math.random(), color.g, color.b, smoothstep( 8000.0, -8000.0, gl_FragCoord.z / gl_FragCoord.w ) ); //MH - creates colors by multiplying color values
4

1 に答える 1

5

シェーダーの疑似ランダム値については、AshimaのWebGLノイズライブラリを強くお勧めします。ax / y / z値を取り込んで、シンプレックスノイズを吐き出します。これは、フレーム間で安定していることを意味します。変化するランダムな値が必要な場合は、時間変調された値をノイズ関数に渡します。

于 2012-05-29T17:23:57.253 に答える