three.js:如何在FXAAShader之后添加CopyShader(r58)

时间:2013-04-23 11:13:42

标签: three.js

在后期处理中,我在FXAAShader之后添加了CopyShader,即使FXAA被禁用也能正确呈现(例如:webgl_postprocessing2.html)。

~

renderer.setSize( 320, 240 );  // not full screen

~

fxaa = new THREE.ShaderPass( THREE.FXAAShader );
fxaa.uniforms[ 'resolution' ].value = new THREE.Vector2( 1 / 320, 1 / 240 );
composer.addPass( fxaa );

var effect = new THREE.ShaderPass( THREE.CopyShader );
effect.renderToScreen = true;
composer.addPass( effect );

此代码效果不佳,渲染图像小于预期。

我正在使用r58并通过Firefox20确认。我该怎么办?

1 个答案:

答案 0 :(得分:3)

width的{​​{1}}和height必须与THREE.EffectComposer.renderTarget的{​​{1}}匹配。

为此,您需要创建自己的WebGLRenderer并将其传递给renderTarget构造函数。

EffectComposer

小提琴:http://jsfiddle.net/uxeez/4/

three.js r.58