当前位置:网站首页>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
边栏推荐
- 170页6万字智慧能源管理平台建设方案书
- AtCoder Beginner Contest 261 D - Flipping and Bonus
- NebulaGraph v3.2.0 性能报告
- 直播系统聊天技术(八):vivo直播系统中IM消息模块的架构实践
- shell 中的 分发系统 expect脚本 (传递参数、自动同步文件、指定host和要传输的文件、(构建文件分发系统)(命令批量执行))
- Multi-threaded cases - blocking queue
- 50W+小程序开发者背后的数据库降本增效实践
- 重磅!国内首个开放式在线绘图平台Figdraw突破10万用户!发布《奖学金激励计划》:最高5000元!...
- 又拿三个大奖?!多力就是要让你吃的更营养更健康
- 什么是元编程
猜你喜欢
随机推荐
Multi-threaded cases - blocking queue
datetime64[ns]转化为datetime
超全!全国近90所大学考研报录比汇总!
牛客刷SQL--4
HTB-Shocker
Pytorch —— 分布式模型训练
预防和制止家庭暴力 人身安全保护令司法解释今起施行
kubernetes之DaemonSet以及滚动更新
ABC260 E - At Least One(双指针)
搭建LNMT架构
tensorflow2.0手写数字识别(tensorflow手写体识别)
什么是一致性哈希?可以应用在哪些场景?
数据挖掘-04
【每日一题】952. 按公因数计算最大组件大小
JMP Pro 16.0 software installation package download and installation tutorial
什么是混合元编程
人像分割技术解析与应用
Qt实战案例(55)——利用QDir删除选定文件目录下的空文件夹
为什么最大值加一等于最小值
8. How does the SAP ABAP OData service support the Create operation