2013-08-04 95 views

回答

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

+0

我可以給你一杯啤酒? :) 謝謝你的解釋! – SuddenHero

+0

我們所有的都是得票。 :/ – WestLangley

+0

我希望,但是我的聲望顯然還不夠高......玩GTA2的那些時間......毫無用處。 告訴我一件事,你認爲是否可以向着色器材質添加漫反射顏色?我知道它使用env地圖的顏色,但也許有一種混合方法來實現呢?或者菲涅耳材料... – SuddenHero