我想将场景淡入灰阶,但这也适用于其他需要淡入淡出的后期处理效果。three.js淡入/淡出后处理着色器
因此,对于这个例子中,我使用THREE.ColorifyShader,但启动时,整个现场瞬间收到预期的颜色
我怎样才能“不透明度申请/阿尔法”后处理?
代码示例:
var effectColorify,
copyPass;
effectColorify = new THREE.ShaderPass(THREE.ColorifyShader);
effectColorify.uniforms['color'].value.setRGB(0.8, 0.8, 0.8); // Grayscale
copyPass = new THREE.ShaderPass(THREE.CopyShader);
copyPass.renderToScreen = true;
this.composerGrayscale = new THREE.EffectComposer(this.engine.renderer);
this.composerGrayscale.addPass(this.renderPass);
this.composerGrayscale.addPass(effectColorify);
this.composerGrayscale.addPass(copyPass);
我发现了这样一个例子,也但那不是我正在寻找的东西。比方说,我有一个很好的和colorfur场景,现在我想淡入这个场景灰度,或红色或白色或任何。单独使用颜色统一,我只能从灰度(红色,蓝色等)到黑色和背面,而不是从单色到多色。 我想我必须为着色器添加不透明度均匀值,并将计算值仅与不透明度给出的因子一起应用,然后交叉淡入淡出像您的示例中的不透明度。 – Artimus
那么你可能必须使用[HSL](http://en.wikipedia.org/wiki/HSL_and_HSV)值来代替RGB –
HSL只是写RGB的另一种方式,结果是一样的。我实际上尝试了我的想法(添加不透明度)并且效果很好。如果你需要的话,你可以从我的答案中获取修改后的着色器代码。 – Artimus