UE4笔记——渲染篇

r.ShadowQuality    【num】    阴影质量
t.maxfps        【num】    最大帧数
stat rhi            查看内存使用
stat scenerendering        查看渲染用时

渲染过程
intro                介绍?
before rendering            渲染前    
geometry rendering            渲染成几何体
rasterizing and gbuffer        光栅化  G缓存
textures                纹理
pixel shaders and materials        像素着色器
reflections                反射?
static light/shadows
dynamic lighting/shadow        
fog/transparency            雾/透明
post processing            后处理
                1
                2
        3    4    5    6是并行的

实时渲染(RTR)


延迟渲染
1.使用Gbuffer来计算一帧
2.可以获得更稳定,更高质量的渲染
3.不擅长透明表面的渲染
4.适合大型应用
5.会在刚开始下降一些性能,之后会比较平稳

前向渲染
1.着色和集合体以及材质在同一个环节计算,无论接下来出现什么功能都会在同时渲染
2.光照和着色不会延迟,会在渲染出几何体的同时完成
3.不擅长混合各种不同功能
4.擅长透明表面的渲染
5.可以使用msaa获得更好的抗锯齿效果
6.适合简单应用
7.每添加一些东西都会使性能下降


绘制过程        
CPU        frame0    frame1    frame2
CPU(Draw)        frame0    frame1
GPU                frame0

        0ms    33ms    66ms
0ms
1.Animations            计算动画
2.position of models and objects
3.physics
4.AI
5.spawn and destroy, hide and unhide
..

33ms
返回结果 result
计算实际需要渲染的东西
1.distnace culling            距离剔除        几乎任何对象->lod->current max draw distance(灰色的)可以用cul distance volunm来整体设置
2.frustum culling            视锥体剔除    视角外的隐藏    按对象隐藏而不是按面隐藏        
3.precomputed visibility        预计算可见性    wordsetting->precompute visibility    添加一个预计算可视性体积    点击显示->可视化->预计算可视性单元格        可以看到很多格子,每个格子有个列表记录了这个格子可以看见哪些东西,摄像机到格子中会读取这些信息    格子大小可在wordsetting中设置,高度可以在lightmass的ini文件中设置
                我只找到BaseLightmass.ini文件    应该是【PrecomputedVisibility】->PlayAreaHeight=220
4.occlusion culling            遮挡剔除        这个剔除很耗费性能所以放在最后执行        超过3w~6w可能会有很大的影响
            
freezerendering    冻结渲染        可以停止更新渲染,其他线程正常循行,可以用来观察这一帧的剔除效果
stat initviews    提供遮挡信息

场景中超过1w~1.5w可能就会产生影响    
主要是cpu的影响但是会影响到gpu        
大型开放世界可能遮挡可能不怎么起作用        
将零散模型拼在一起可能影响性能,因为如果视角中只看到一点点模型就会渲染整个模型(合并多边形),而分散开就只会渲染一点,可以用freezerendering命令来查看,具体看情况


几何体渲染
1.early z pass                    项目设置->渲染->early z-pass


逐对象渲染而不是一个像素一个像素渲染
一个模型会调用一次绘制调用,一个模型上每多一个材质就会多一次绘制调用(drawcall)
基本不会改,也不会产生多大影响
drawcll 2000-3000低        5000高        10000可能会有问题   取决于硬件和具体事件
面不是主要影响drawcall的因素,主要是很多个材质影响
每个对象的drawcall时间最低4.96微秒(应该)
如果要减少drawcall最好大量使用大模型而不大量使用小模型,但是会增加内存,碰撞检测会更复杂(需要自己平衡)
光照贴图内存有一个最大值
最好的是先用小模型拼好,之后选取其中一部分适合合并的模型合并
所有优化只有在有需要的时候才有必要
相同的模型在不同位置没有必要合并
lod:细节层级
大型世界需要可能需要lod,剔除


 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值