当前位置:网站首页>Performance Optimization - Rendering Optimization Notes
Performance Optimization - Rendering Optimization Notes
2022-08-01 14:02:00 【Chang'an flowers bloom*】
Two basic parameters that affect rendering efficiency: DrawCall and Triangle
The subject range (5%~95%) of Batch on medium and low-end machines is controlled within [0,250]
The number of faces: lod to reduceRendering faces
Camera.Render function stack analysis:
The high consumption of RenderForward.RenderLoopJob is usually due to the high number of Batches.
Culling time is reasonable in the range of 10%~20%.If it is high, you can check several aspects
If the number of GameObject small objects is too large, you can use dynamic loading, block display, CullingGroup Culling Distance and other methods to optimize the time consuming of Culling
If multi-threaded rendering is used in the project and it is enabledOcclusionCulling usually leads to excessive pressure on sub-threads, resulting in high overall Culling. Although OcclusionCulling reduces rendering consumption, its own consumption is also worth noting. The R&D team needs to test the consumption and then determine whether to enable this function.
Render.Mesh CorrespondingIt is the time-consuming rendering that cannot be batched, and its number of calls corresponds to the corresponding number of Batches
ParticleSystem.ScheduleGeometryJobs: It means that the main thread needs to wait for the sub-thread to calculate the position of the Particle before Culling.It is recommended to reduce the complexity of particles
ParticleSystem.Draw: the number of DrawCalls of particles If the function is too high, you can consider reducing the number of particle systems [Real Machine Test->Memory Management->Specific Resource Information->Particle System]
You can reduce the interleaving of particle rendering through the atlas and adjusting the Order in Layer
Shader.CreateGPUProgram: The consumption of the shader when it is rendered for the first time is related to the complexity of the shader. For this, the Shader can be preloaded through the ShaderVariantCollection, and after loadingTrigger Shader.CreateGPUProgram through ShaderVariantCollection.WarmUp, and cache this csv to avoid repeated calls
"An idea for Shader variant collection, packaging and compilation optimization" https://answer.uwa4d.com/question/5da86670e84db43d6efbda72
Turn on multi-threaded rendering: Since uwa online report CPU time usage only counts the time taken by the main thread, if multi-threaded rendering is turned on, it is recommended to submit two versions for internal testing to facilitate analysis and rendering.
GPU Instancing: for grassTrees, buildings and other things that appear repeatedly in the scene have been significantly optimized.
SPR Batcher: Note: Shader needs to be compatible with SRP Particles are not supported Shader variants will interrupt DC batching
边栏推荐
猜你喜欢
【码蹄集新手村600题】判断一个数字是否为完全平方数
让程序员早点下班的效率工具
程序员的浪漫七夕
MCU开发是什么?国内MCU产业现状如何
10年稳定性保障经验总结,故障复盘要回答哪三大关键问题?|TakinTalks大咖分享
热心肠:关于肠道菌群和益生菌的10个观点
How does the SAP ABAP OData service support the Create operation trial version
十九届浙大城院程序设计竞赛 F.Sum of Numerators(数学/找规律)
PyTorch 进阶之路:在 GPU 上训练深度神经网络
PAT1165 Block Reversing(25)
随机推荐
[LiteratureReview]Optimal and Robust Category-level Perception: Object Pose and Shape Estimation f
预防和制止家庭暴力 人身安全保护令司法解释今起施行
tensorflow2.0手写数字识别(tensorflow手写体识别)
NebulaGraph v3.2.0 Performance Report
如何降低Istio服务网格中Envoy的内存开销
对标丰田!蔚来又一新品牌披露:产品价格低于20万
什么是闭包?
leetcode: 1201. Ugly Number III [Dichotomy + Mathematics + Inclusion and Exclusion Principle]
树和二叉树的转换
[深入研究4G/5G/6G专题-47]: 5G Link Adaption链路自适应-3-下行链路自适应DLLA-PDSCH信道
态路小课堂丨浅谈优质光模块需要具备的条件!
207.数组序号转换
shell 中的 分发系统 expect脚本 (传递参数、自动同步文件、指定host和要传输的文件、(构建文件分发系统)(命令批量执行))
A Beginner's Guide to Performance Testing
10年稳定性保障经验总结,故障复盘要回答哪三大关键问题?|TakinTalks大咖分享
多线程案例——阻塞式队列
牛客刷SQL--6
Qt实战案例(55)——利用QDir删除选定文件目录下的空文件夹
ABC260 E - At Least One(双指针)
Why does the maximum plus one equal the minimum