2013-08-04 98 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