UE的Mesh关于LOD的切换是用的屏占比ScreenSize,一般是美术设置几个屏占比的参数,本地看着差不多就行了。 下面研究下这个屏占比在引擎里是怎么运作的,方便理解和优化功能。 Q:这个ScreenSize是怎么生效的?A:ScreenSize先转换为距离,后续以距离的形式剔除和选择LOD。 Q:ScreenSize是如何转换成距离的?A:通过下面这个方法,把LOD的各个级别的ScreenSize转换为Distance,保存在LOD信息里。 也就是说,如果屏幕是方的的情况下: ScreenSize如果是0.5,绘制距离范围就是物体包围球半径的两倍。 ScreenSize如果是1,绘制距离...

修改基于UE4.27,实际代码因为UE5重构了,还没写UE5版本。 记录一下DFShadow随Cluster裁剪更新的修改过程。(上次UE直播好像说5.3重构了GPUScene相关) 遇到的问题:植被Instance的DistanceFieldShadow不会随着自身裁剪而更新。UE5应该还存在这个问题,美术同学会提出来这个问题的。 造成的原因是UE的DistanceFieldBuffer是基于SceneInfo级别的,一种植被对应一...

Unity项目的优化思路和实践经验在此总结一下。

1.性能检测

要优化首先需要分析现有的性能瓶颈,获取性能数据,根据情况决定优化什么,如何优化。
性能分析的工具和方法:

-检测工具:Profiler、SnapdragonProfiler、IntelGPA、XCode

检测工具帮助我们实时分析游戏运行时候的资源,CPU、内存、GPU等使用情况,来定位当前项目的瓶颈和优化点。

//todo shader复杂度计算

-抓帧工具:FrameDebug、SnapdragonProfiler、RenderDoc、IntelGPA、XCode

这类工具的作用主要是分析GPU渲染的过程,分析DrawCall是否正常、绘制是否多余、RT是否冗余等问题。

值得一提的是,有些抓帧工具是可以统计每个DC的GPU耗时的,有时候对于性能分析有较大的参考意义,但个人实践过程中感觉RenderDoc的不准确,SnapdragonProfiler的还可以。

SnapdragonProfiler耗时的计算方法为:
DrawCall耗时 = DrawCall耗费的GPUBlocks数量 * GPU频率

//todo 贴一些实例图片

本文对URP使用的这段时间的一些理解和总结。从知乎转移:URP管线架构学习总结

1.URP渲染管线的架构图

理解一个系统设计比较重要的就是类图了。

2.各个类的一些作用和使用

(1)UniversalRenderPipelineAsset

本质是一个ScriptableObject类型,用于序列化URP的一些设置,General、Quality、Lights、Shadows等。

搬运知乎之前写的文章链接:(知乎把GIF转换成了MP4,不知道怎么显示在这里,就先这样吧) https://zhuanlan.zhihu.com/p/143261544

其实渲染里没有真正的透明物体,透明效果是通过颜色的Blend模仿到的。 正常的透明渲染需要一个一个前后混合,所以半透明是通过前向渲染。 透明的渲染混合指令Blend 原因子 目标因子 Blend 原RGB因子 目标RGB因子 原A因子 目标A因子 通过不同的混合组合,就可以达到各种效果。 如常见的: Blend ScrAlpha OneMinusSrcAlpha //Transparent Blend One One //Aditive Blend ScrAlpha One...

引擎梳理。感谢GPT。 一、渲染管线架构(Engine Rendering Architecture)⭐⭐⭐(非常重要) 这些是现代引擎渲染系统的骨架。 Frame Graph / Render GraphRenderGraph Pass dependency Resource lifetime Transient RT Barrier 自动插入 GPU Driven RenderingGPU Scene Indirect Draw Instance Culling Cluster / Meshlet Culling Command Buffer...

卡通渲染的各个要素。这个已经被研究的太多了,贴几个别人的链接吧。 脸部SDF阴影: https://zhuanlan.zhihu.com/p/701499903 博主2173关于卡通渲染的总结: https://zhuanlan.zhihu.com/p/109101851

渲染梳理目录。 一个游戏的整个渲染都有哪些部分? Lighting直接光照ForwardRender前向渲染Forward+ClusterForward+DeferredRender延迟渲染TileBaseDeferredClusterDeferredVisibilityBufferDeferredShadingModel光照模型PBRKajiya各种CustomShadingModelShadow直接光阴影CascadeShadowMap级联阴影PerObjectShadow高精度阴影DistanceFieldShadow距离场阴影ContactShadow接触阴影VSM虚拟阴影Volume...