![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Unity可编程渲染管线学习笔记
牛神自
好好学习,天天向上...
展开
-
学习笔记:Unity CustomSRP-17-FXAA
原文-----整个系列最终源码目前这个系列作者还没出更新的教程,FXAA是最后一篇文章。FXAA目录总结:1.计算并存储像素亮度,或者返回绿色。2.查找并混合高对比度的像素。3.检测并平衡长边。4.合并FXAA和Render Scale(渲染缩放)。这一节主要详细介绍了抗锯齿算法FXAA的实现思路和具体代码。...原创 2022-04-27 14:24:42 · 1650 阅读 · 0 评论 -
学习笔记:Unity CustomSRP-16-Render Scale
原文-----翻译-----源码这一节主要讲渲染缩放,为了改善性能,保证稳定的帧率。总结:1.RP设置里添加render scale滑动条控制2.每个相机支持不同的渲染缩放3.后处理后重新缩放到最终目标。注:主要是调整渲染buffer的大小,以及对不同相机,后处理效果出现的问题给出解决方案。HDR插值后导致的重新采样后HDR颜色锯齿和后处理中部分效果(如阴影中间调高光)颜色条带。解决方法:在调整渲染缩放后做颜色矫正和色调映射,然后在这个Pass重新缩放调整LDR颜色...原创 2022-04-26 11:48:04 · 1981 阅读 · 0 评论 -
学习笔记:Unity CustomSRP-15-Particles
原文-----翻译-----源码尽量看原文,原文作者会有更新修复错误等等。这一节讲粒子的渲染,有很多小的技术点值得学习。目录:参考翻译1.Unlit粒子:粒子系统、不受光粒子着色器、顶点色、Flipbooks、Flipbook混合。2.接近相机淡出:片段数据、片段深度、正交深度、基于距离的淡化。3.软粒子:分离深度Buffer、拷贝深度、不带Post FX的拷贝深度、重建视口空间深度、可选的深度纹理、丢失纹理、接近背景时淡化粒子、不支持拷贝纹理、Gizmos和深度。4.扰动效果:颜色拷贝纹理、原创 2022-04-25 18:03:12 · 644 阅读 · 0 评论 -
学习笔记:Unity CustomSRP-14-Multiple Cameras
原文-----翻译-----源码总结:1.组合相机:分屏、分层相机、分层Alpha、自定义混合、渲染纹理、UI、逐相机设置PostFX2.渲染层:剔除掩码、调整RenderingLayerMask、发送掩码到GPU、重新将Int解释为浮点型、相机渲染层掩码、逐相机的灯光掩码。主要利用渲染层这个功能。灯光可以自定义渲染层,相机也可以自定义渲染层,场景物体也可以自定义渲染层,比较灵活。注:CPU把int值传到GPU作float时,出现乱码,需要CPU端重新解释int为float,再发送,具体参考代码原创 2022-04-24 11:17:24 · 254 阅读 · 0 评论 -
学习笔记:Unity CustomSRP-13-ColorGrading
原文-----翻译-----源码这一节还是图像处理:颜色分级介绍常见的几种图像处理效果总结:1.常见效果:后曝光、白平衡、对比度、颜色过滤、色调分离、通道混合、阴影中间调高光、色相偏移、饱和度。注:其中的色调分离和阴影中间调高光差不多,差别是色调分离是处理的是阴影和高光,而且不能控制范围,阴影中间调高光是三个区域,且能控制范围。2.LUT:每个像素都进行上面的计算消耗比较大,所以采用LUT(lookup table),先渲染到贴图,在采样即可。部分源码:using UnityEngine;原创 2022-04-22 10:56:49 · 691 阅读 · 0 评论 -
学习笔记:Unity CustomSRP-12-HDR
原文-----翻译-----源码这一节主要讲HDR—High Dynamic Range总结:1、渲染到HDR纹理2、减少Bloom闪烁3、增加Bloom散射4、支持多种色调映射模式:HDR映射到LDR,保留细节注:LDR(Low Dynamic Range)和HDR是相对的概念,默认使用LDR,用HDR能得到更多的细节,细节的保留通过色调映射,因为最终显示的是LDR范围,所以最终会报HDR颜色的范围映射到LDR的范围,并尽可能保留多的细节。未来硬件提升了就可以直接用HDR输出,就不需要转换原创 2022-04-21 14:13:27 · 747 阅读 · 0 评论 -
学习笔记:Unity CustomSRP-11-Post Processing---Bloom
原文-----翻译-----源码到此后面的几节都和后处理相关,这一节讲Bloom。顺便放一个LearnOpengGL Bloom链接:Bloom,这里讲的更清楚。整体思路:1.提取图像亮部2.模糊3.和原图合并原创 2022-04-20 08:31:41 · 673 阅读 · 0 评论 -
学习笔记:Unity CustomSRP-10-Point and Spot Shadows
原文-----翻译-----源码这一节主要在上一节的基础上添加实时阴影。同样这一节内容比较多,也有点复杂,如果看过前面的方向光阴影,应该好理解。总结:1.为点光源和聚光灯混合烘焙和实时阴影2.添加第二个阴影图集3.使用透视投影渲染和采样阴影(聚光灯)4.使用自定义立方体贴图(点光源)实时阴影整体思路:1.申请阴影空间,缓存当前帧的阴影贴图。2.渲染阴影到阴影贴图。3.采样阴影贴图,混合颜色。注:第二步中,对不同类型的光,有不同的细节点。1.对于方向光,采用正交投影渲染,根据级联数对原创 2022-04-19 10:23:09 · 510 阅读 · 0 评论 -
学习笔记:Unity CustomSRP-9-Point and Spot Lights
原文-----翻译-----源码这一节主要添加对点光源和聚光灯的支持,支持烘焙的阴影,下一节添加实时阴影。总结:1.主要是设置灯光数据:颜色、方向、位置、角度(需要用到公式)2.烘焙光照和阴影:烘焙后偏亮,重写内置烘焙方法。3.添加逐物体光照,限制每个物体接受光照的数量,可配置。...原创 2022-04-14 16:32:29 · 865 阅读 · 0 评论 -
学习笔记:Unity CustomSRP-8-Complex Maps
原文-----翻译-----源码总结:这一节主要增加一些贴图,实现丰富的细节。1.反照率、自发光、遮罩、细节、法线等贴图2.控制部分贴图可选。原创 2022-04-13 16:51:04 · 475 阅读 · 0 评论 -
学习笔记:Unity CustomSRP-7-LOD and Reflections
原文-----翻译------源码总结:1.LOD的使用和过度2.反射:采样环境、菲涅尔反射、反射探针、解码探针。具体看上面链接!原创 2022-04-12 17:11:18 · 515 阅读 · 0 评论 -
学习笔记:Unity CustomSRP-6-Shadow Mask
上一节讲烘焙光,这一节讲烘焙阴影。原文翻译源码总结:1.烘焙阴影,采样阴影,遮挡探针/遮挡LPPV(为动态物体提供阴影)2.混合阴影:用于混合实时阴影和烘焙阴影(Distance ShadowMask)3.多灯光阴影,设置正确的阴影通道。4.灯光模式:Realtime:实时光Mixed:烘焙部分光,并提供实时光。Baked:完全烘焙所有光。5.灯光设置里的LightMode:只对MixedLigth光源来说Baked Indirect:只烘焙间接光(天空盒,各种光源,自发光物体),原创 2022-04-12 11:28:26 · 1158 阅读 · 0 评论 -
学习笔记:Unity CustomSRP-5-Baked Light
之前章节都是讲直接光,这一节主要讲烘焙光和烘焙光采样。链接:翻译原文源码总结:1.烘焙静态光、采样烘焙光2.光探针和采样光探针,LPPV和采样LPPV3.元通道(meta pass):用于烘焙光4.自发光和烘焙自发光5.烘焙透明物体5.MeshBall使用LightProbe或LPPV采样烘焙光...原创 2022-04-11 16:21:46 · 392 阅读 · 0 评论 -
学习笔记:Unity CustomSRP-4-Directional Shadow
这一节讲阴影,看的我都有阴影了!言归正传:这节内容比较多,问题也比较多,下面列出调好的全部代码,注释以后慢慢加。具体理论看原文吧:中文翻译,英语原文Runtime:CustomRenderPipelineAsset:using UnityEngine;using UnityEngine.Rendering;[CreateAssetMenu(menuName = "Rendering/Custom Render Pipeline")]public class CustomRenderPip原创 2021-07-30 17:29:38 · 394 阅读 · 0 评论 -
学习笔记:Unity CustomSRP-3-DirectionalLight
在上一节的基础上添加方向光支持,支持Opaque,Clip,Fade,Transparent,自定义ShaderGUI,把需要的数据分类:Surface,BRDF,Light,Lighting…设置属性和关键字以下是到这一节的全部代码:在此Runtime:CustomRenderPipelineAsset:using UnityEngine;using UnityEngine.Rendering;[CreateAssetMenu(menuName = "Rendering/Custom Re原创 2021-07-27 10:09:50 · 253 阅读 · 1 评论 -
学习笔记:Unity CustomSRP-2-DrawCall
这一节主要学习了DrawCall:DrawCall优化:1.SRPBatcher:开启SRPBatcher,同shader,(使用MaterialPropertyBlock设置单独物体属性,该物体不会合批),优化DrawCall2.GPUInstancing:开启GPUInstancing,同材质,同Mesh,优化DrawCall3.DynamicBatch:开启DynamicBatch,同材质,还需满足其他条件:顶点数小于900等等(使用MaterialPropertyBlock设置单独物体属性,原创 2021-07-25 14:56:10 · 143 阅读 · 0 评论 -
学习笔记:Unity CustomSRP-1
自定义可编程渲染管线:这里代码记录:代码:渲染管线资源:using UnityEngine;using UnityEngine.Rendering;[CreateAssetMenu(menuName ="Rendering/Custom Render Pipeline")]public class CustomRenderPipelineAsset : RenderPipelineAsset{ protected override RenderPipeline Creat原创 2021-07-24 18:46:29 · 237 阅读 · 0 评论