Nebula3的渲染流程

Nebula3的Frame子系统定义了每帧渲染过程,包括配置文件"frame/win32/dx9default.xml"。它首先进行深度渲染,然后将固体和透明几何体渲染到颜色缓冲区,最后通过后效处理解决到背缓冲区。FrameShader包含RenderTarget声明,如ColorBuffer,以及FramePass和FramePostEffect。FramePass由FrameBatch组成,如深度、固体和透明批次,而FramePostEffect处理后处理效果。图形世界通过Graphics View将Stage通过CameraEntity渲染到RenderTarget上。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在说流程之前, 有必要先看一下N3的Frame子系统:

每帧的渲染过程都写进了配置文件, 默认使用的是"frame/win32/dx9default.xml", 阴影还有另外一套.

在FrameShader的配置文件里, 声明了一些RenderTarget, 还有FramePass和FramePostEffect.

FramePass包装了所有要渲染到RenderTarget的所有3D渲染相关的东西, 由FrameBatch组成.

FrameBatch代表一个批次的ModelNodeInstance, 比如深度批次, 非透明批次和透明批次等等(相当于OGRE中的RenderGroup), 而ModelNodeInstance就做为最小的渲染单位了.

FramePostEffect就是后处理, 各种效果如HDR, Bloom, Depth of Field, Motion Blur等等都是在这里完成. Shadow Mapping有降采样也可以放到这里, 因为那也是图像空间的操作.

具体的流程就由流程图来说明吧:

InternalGraphicsServer代表就是图形世界, 在图形库外部对应前面提过的Stage/View.

一个Graphics View的作用就是把一个Stage通过CameraEntity渲染到RenderTarget上. 一个Stage可以有多个View, 而一个View也可以依赖另一个.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值