UE4 mesh DrawCall计算

 
 
DrawCall计算:
PrePass阶段(深度缓冲区计算阶段):
 
移动性为Static的 静态网格体
整个mesh执行一次drawcall,并尽可能将所有相同mesh整合在一个drawcall内(instance)
移动性为stationary或 可移动的 静态网格体
每个非透明的材质插槽一次drawcall, 并尽可能将所有相同mesh整合在一个drawcall内(instance)
skeletalmesh
每个非透明材质插槽执行一次drawcall,且不会合并相同网格体的drawcall
ShadowDepths阶段(产生阴影)每个光源对影响的mesh
静态光源:
    无drawcall。
 
固定光源:
移动性为Static的 静态网格体
无drawcall。如果是使用级联阴影,则整个mesh执行一次drawcall,并尽可能将所有相同mesh整合在一个drawcall内(instance)
移动性为stationary或 可移动的静态网格体
整个mesh执行一次drawcall,且不会合并相同网格体的drawcall
skeletalmesh
每个非透明材质插槽执行一次drawcall,且不会合并相同网格体的drawcall
移动光源:
静态网格体
整个mesh执行一次drawcall,并尽可能将所有相同mesh整合在一个drawcall内(instance)
skeletalmesh
每个非透明材质插槽执行一次drawcall,且不会合并相同网格体的drawcall
BasePass阶段 (材质生成基础颜色阶段)
静态网格体
整个非透明材质插槽执行一次drawcall,并尽可能将所有相同mesh整合在一个drawcall内(instance)
skeletalmesh
每个非透明材质插槽执行一次drawcall,且不会合并相同网格体的drawcall
 
RenderVelocities阶段
静态网格体
无drawcall
skeletalmesh
每个非透明材质插槽执行一次drawcall,且不会合并相同网格体的drawcall
渲染透明阶段:
静态网格体
整个透明材质插槽执行一次drawcall,并尽可能将所有相同mesh整合在一个drawcall内(instance)
skeletalmesh
每个透明材质插槽执行一次drawcall,且不会合并相同网格体的drawcall
 
 
静态网格体最少的Drawcall:
PrePass(有非透明材质 插槽 ?1:0)+  ShadowDepths阶段(0)+ BasePass阶段(非透明材质插槽数量)+ 渲染透明阶段( 透明材质插槽数量 )+ RenderVelocities阶段(0) = 材质插槽数量+ ( 有非透明材质 插槽 ?1:0)
 
骨架网格体的drawcall:
PrePass(非透明材质 插槽 数量)+  ShadowDepths阶段(非透明材质 插槽 数量*受影响阴影光源数量)+ BasePass阶段(非透明材质插槽数量)+ 渲染透明阶段( 透明材质插槽数量 )+ RenderVelocities阶段( 非透明材质插槽数量
= 非透明材质插槽数量*( 受影响阴影光源数量 + 3 )+  透明材质插槽数量
  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值