У меня есть небольшая проблема с примером three.js шейдер Френеля.
'lights : true' - если это 'true', я получаю следующую ошибку:
Uncaught TypeError: Cannot set property 'value' of undefined
Я не знаю. Спасибо за любые предложения.
У меня есть небольшая проблема с примером three.js шейдер Френеля.
'lights : true' - если это 'true', я получаю следующую ошибку:
Uncaught TypeError: Cannot set property 'value' of undefined
Я не знаю. Спасибо за любые предложения.
Когда вы установите 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
] );
три.js р.59