2

three.js のサンプルフレネル シェーダーに小さな問題があります。

「lights : true」 - これが「true」の場合、次のエラーが発生します。

Uncaught TypeError: Cannot set property 'value' of undefined 

私は無知です。提案をありがとう。

4

1 に答える 1

3

を設定するShaderMaterial.lights = trueと、レンダラーがシェーダー ライトの均一なパラメーターを入力します。

ただし、最初にシェーダーに必要なライト ユニフォームがあることを確認する必要があります。

THREE.FresnelShader書かれているようにライトを使用しません。代わりに環境マップに依存します。したがって、設定しlights: trueても効果はありません。

ただし、それを行いたい場合、およびシェーダーを変更する意思がある場合は、交換する必要があります

var shader = THREE.FresnelShader;
var uniforms = THREE.UniformsUtils.clone( shader.uniforms );

var shader = THREE.FresnelShader;

var uniforms = THREE.UniformsUtils.merge( [

    THREE.UniformsLib[ "lights" ],
    shader.uniforms

] );

three.js r.59

于 2013-08-04T17:44:02.733 に答える