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
)+
透明材质插槽数量