用three.js构建自己的后处理渲染器第三篇---架构设计

本文介绍了如何设计一个基于three.js的后处理渲染器架构,包括封装createRenderTarget方法以动态切换渲染目标,考虑显存优化策略,设计物体级和全屏级Pass,以及实现高性能的多glow效果。通过这些步骤,构建了一个简单版的后处理渲染器。
摘要由CSDN通过智能技术生成

上一篇主要讨论性能问题,这一篇我们开始设计后处理渲染器架构

effectComposer ---(默认生成 sourceTarget(原场景), readBuffer(后续每一个pass的最终结果),writeBuffer(负责与readBuffer进行交换))
			---renderPass (负责渲染一遍原场景,最终渲染到sourceTarget)
			---pass1 (针对物体的后处理)
			---pass2
			...
			---screenPass1(针对屏幕的后处理)
			---screenPass2
			...

1.系统架构大概是这样,由于我们考虑使用MSAA和FXAA两种方式,首先需要封装一个createRenderTarget的方法,用于动态切换WebGLRenderTarget和WebGLMultisampleRenderTarge。然后封装setDepth方法来为它们创建深度贴图和深度缓冲对象。
2.为了照顾到显存,如果使用MSAA,我们最多只给原图使用WebGLMultisampleRenderTarge以及每一张scheme图(针对物体的后处理效果中渲染物体的那张图称为scheme图)使用WebGLMultisampleRenderTarget, 其余renderTarget尽量使用WebGLRenderTarget。同时我们要注意尽量少使用额外的renderTarget,以便减少内存多消耗。
3.renderTarget处理完后我们开始着手设计物体级的Pass
物体级的Pass的第一步是要生成一张scheme图,如下:

 			var strategy = SchemeStrategyPool.getStrategy( this.n
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值