当前位置:网站首页>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
边栏推荐
- 【每日一题】593. 有效的正方形
- ABC260 E - At Least One(双指针)
- Based on 10 years of experience in stability assurance, what are the three key questions to be answered in failure recovery?|TakinTalks big coffee sharing
- HTB-Mirai
- Multi-threaded cases - blocking queue
- Efficiency tools to let programmers get off work earlier
- leetcode:1201. 丑数 III【二分 + 数学 + 容斥原理】
- 论文笔记All about Eve: Execute-Verify Replication for Multi-Core Servers
- 【无标题】
- 【每日一题】1331. 数组序号转换
猜你喜欢
随机推荐
VIP的实现原理
程序员的浪漫七夕
「计算复杂性」理论奠基人Juris Hartmanis逝世,曾获93年图灵奖
Istio Pilot代码深度解析
The obstacles to put Istio into production and how we solve them
【2022蓝帽杯】file_session && 浅入opcode
sql中常用到的正则表达
sql is not null 优化(oracle语句索引优化)
shell 中的 分发系统 expect脚本 (传递参数、自动同步文件、指定host和要传输的文件、(构建文件分发系统)(命令批量执行))
leetcode:1201. 丑数 III【二分 + 数学 + 容斥原理】
如何降低Istio服务网格中Envoy的内存开销
牛客刷SQL--4
让程序员早点下班的效率工具
拥抱NFV,Istio 1.1 将支持多网络平面
【每日一题】1161. 最大层内元素和
gpio analog serial communication
性能测试入门指南
postgresql之page分配管理(一)
什么是一致性哈希?可以应用在哪些场景?
Efficiency tools to let programmers get off work earlier