2013-08-04 16 views

답변

3

ShaderMaterial.lights = true을 설정하면 렌더러가 균일 한 셰이더 표시 등 매개 변수를 채 웁니다.

그러나 먼저 쉐이더에 필요한 조명 유니폼이 있는지 확인해야합니다.

THREE.FresnelShader 작성된대로 표시 등을 사용하지 않습니다. 대신 환경 맵을 사용합니다. 결과적으로 lights: true 설정은 아무 효과가 없습니다. 당신이 그것을하고 싶은, 그리고 쉐이더를 수정하고자하는 경우

는, 당신은 내가 할 수있는

var shader = THREE.FresnelShader; 

var uniforms = THREE.UniformsUtils.merge([ 

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

]); 

three.js를 r.59

+0

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

를 교체해야 너 맥주 보내니? :) 설명 주셔서 감사합니다! – SuddenHero

+0

우리가 가진 것은 모두 투표입니다. :/ – WestLangley

+0

나는 바란다. 그러나 나의 명성은 명백하게 충분히 높지 않다. .. GTA2를 연주하고있는 그 모든 시간. .. 쓸데없는. 말해 주시겠습니까? 쉐이더 자료에 확산 색상을 추가하는 것도 가능하다고 생각하십니까? 색상에 env 맵을 사용한다는 것을 알고 있지만,이를 구현하기위한 혼합 방법이있을 수 있습니다. 또는 프레 넬 소재 ... – SuddenHero