ue4 实时渲染 笔记

1、ue4 用的是延迟渲染,延迟渲染 不能msaa,只能taa。

2、culling

distance culling  超过一定距离剔除,是一种低成本剔除

f'rustum culling 视锥剔除,在视锥外剔除,也是一种低成本剔除

precomputed visibility  把一个物体分割成很多个小的区域box,通过一定的数据结构和算法。当摄像机在某个位置,就能知道有些块儿是完全被某些块儿或者物体遮挡的,可以不用画。

occlusion culling 

3 、prepass/early z pass,ue4预先处理,当画一个a物体的时候,如果b物体挡住a的一部分,那么a被挡住的部分像素不用画。就是有b看不到a的部分,画a的时候不用画。个人感觉此部分应该是在生成图元的时候生效。而不是光栅化的时候用zbuffer。

4、drawcall概念,两个极端例子比较好理解,同样画一万个正方形的平面片,一种片是8000个三角形 一个材质,一种片是32个三角形  10种材质。运行结果都是挺耗性能的。但是十种材质的更费性能。

总结一下就是 增加drawcall的因素   物体的个数,单个物体的材质数,单个物体三角形个数(影响比较小)

很有用的命令  stat uint  stat fps  rhi 等等

------------------------------------------------------------------------------------------------------------

5、场景中避免单个过大过于复杂的staticmesh,(远处的山,背景除外),比如复杂的建筑物房间,因为虽然单个的大物体(材质单一的情况下)渲染速度更快,但是弊端很多,比如物理碰撞检测会有问题,lightmap最大值难以满足,光线的优化也会有问题。

所以比较好的方法就是拆分成很多不大不小的小块,形状规则的小块。

6、一些简单的动画 可以灵活运用材质的里的 world pos offset 来实现。切记物体虽然动了 ,但是它的原点也就是世界位置时不变的,系统是不知道它动了

7、光栅化 和 gbuffer  ,尽量不要用密集排列细长的三角形,会有过度绘制的问题,影响性能

8、pixshader

9、光照和阴影

10、 反射

11、半透明和雾

12、后期处理

原创文章 17 获赞 1 访问量 2042

猜你喜欢

转载自blog.csdn.net/opk8848/article/details/104217892