我使用librairy three.js在WebGL中工作。在我的情况下,我的场景中有两个对象,我想在显示器上独立更新我的对象。 我使用着色器来修改对象的颜色,我想修改片段着色器的统一参数的值,并仅在我的一个对象上应用着色器。我想在我的网格上应用“drawElements”并使用新参数绘制它。 当我做“renderer.render(场景,相机);”我更新了所有对象,这不是我想要的。 我怎样才能做到这一点 ?你能帮帮我吗?
答案 0 :(得分:0)
如果您使用的是版本r.53之前的版本,则需要克隆第二台着色器的制服:
shaderB = shaderA.clone();
shaderB.uniforms = THREE.UniformsUtils.clone( shaderA.uniforms );
更好的选择是更新到当前版本r.53。在这种情况下,制服克隆是为你完成的,以下就足够了:
shaderB = shaderA.clone();