在显示屏上更新一个对象,只更新一个对象

时间:2012-11-16 11:08:46

标签: shader webgl three.js fragment-shader

我使用librairy three.js在WebGL中工作。在我的情况下,我的场景中有两个对象,我想在显示器上独立更新我的对象。 我使用着色器来修改对象的颜色,我想修改片段着色器的统一参数的值,并仅在我的一个对象上应用着色器。我想在我的网格上应用“drawElements”并使用新参数绘制它。 当我做“renderer.render(场景,相机);”我更新了所有对象,这不是我想要的。 我怎样才能做到这一点 ?你能帮帮我吗?

1 个答案:

答案 0 :(得分:0)

如果您使用的是版本r.53之前的版本,则需要克隆第二台着色器的制服:

shaderB = shaderA.clone();
shaderB.uniforms = THREE.UniformsUtils.clone( shaderA.uniforms );

更好的选择是更新到当前版本r.53。在这种情况下,制服克隆是为你完成的,以下就足够了:

shaderB = shaderA.clone();