Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Canvas Three.js:Fresnel着色器-灯光:真实问题_Canvas_Three.js_Webgl_Fragment Shader_Fresnel - Fatal编程技术网

Canvas Three.js:Fresnel着色器-灯光:真实问题

Canvas Three.js:Fresnel着色器-灯光:真实问题,canvas,three.js,webgl,fragment-shader,fresnel,Canvas,Three.js,Webgl,Fragment Shader,Fresnel,我对three.js示例有一个小问题 “lights:true”-如果这是“true”,则我会得到以下错误: Uncaught TypeError: Cannot set property 'value' of undefined 我不懂。谢谢您的建议。当您设置ShaderMaterial.lights=true时,渲染器将为您填充着色器灯光统一参数 但首先必须确保着色器具有必要的灯光 3.FresnelShader不使用书写的灯光;它依赖于环境地图。因此,设置lights:true将无效

我对three.js示例有一个小问题

“lights:true”-如果这是“true”,则我会得到以下错误:

Uncaught TypeError: Cannot set property 'value' of undefined 

我不懂。谢谢您的建议。

当您设置
ShaderMaterial.lights=true
时,渲染器将为您填充着色器灯光统一参数

但首先必须确保着色器具有必要的灯光

3.FresnelShader
不使用书写的灯光;它依赖于环境地图。因此,设置
lights:true
将无效

但是如果您想这样做,并且愿意修改着色器,则必须替换

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


three.js r.59

我能送你一杯啤酒吗?:)谢谢你的解释!我希望,但我的声誉显然不够高…所有这些时间玩GTA2…没用。告诉我一件事,你认为也可以向着色器材质添加漫反射颜色吗?我知道它使用环境贴图的颜色,但也许有一个混合方法来实现这一点?或者菲涅耳材料…如果你有进一步的问题,你需要做一个新的职位。这是为了其他人的利益。。。是的,什么都可以做。研究三个.js示例。这是一条陡峭的学习曲线。我建议你先用硬线画一个颜色。稍后,将颜色传递进来。我把它贴在这里了。我不明白有关将颜色传递到着色器的部分:/我不是着色器专业人员……谢谢您的帮助
var shader = THREE.FresnelShader;

var uniforms = THREE.UniformsUtils.merge( [

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

] );