首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >three.js:如何在FXAAShader之后添加CopyShader (r58)

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

Stack Overflow用户
提问于 2013-04-23 19:13:42
回答 1查看 2.5K关注 0票数 2

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

代码语言:javascript
复制
~

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确认。我该怎么办?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-24 00:09:42

THREE.EffectComposer.renderTargetwidthheight必须与WebGLRenderer的匹配。

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

代码语言:javascript
复制
var parameters = { minFilter: THREE.LinearFilter, magFilter: THREE.LinearFilter,
                   format: THREE.RGBFormat, stencilBuffer: false };
var renderTarget = new THREE.WebGLRenderTarget( width, height, parameters );

composer = new THREE.EffectComposer( renderer, renderTarget );

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

three.js r.58

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16167897

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档