/URPLearn

A project used for learning Unity Universal Render Pipeline

Primary LanguageC#

URPLearn

此项目用于Unity通用渲染管线学习。

环境:

  • Unity版本 2019.4.18f
  • URP版本 7.5.2。

资源文件说明:

  • 管线配置位于Assets/Settings
  • 用例代码位于Assets/URPLearn,按照文件夹区分。有的用例会自带scene场景,其余的统一使用Assets/Scenes/SampleScene场景来预览
  • 各种后处理的开关请看Assets/Settings/ForwardRenderer面板内,PostProcessingFeature中的Effects列表。点击选中每个Effect,控制其Active状态来进行开关。

URP源码解读

URP后处理造轮子

  1. 扩展RendererFeatures

  2. 自定义PostProcessing

    2.1 简单的ColorTint

    2.2 Blur - 模糊效果

    2.3 Bloom - 泛光特效

    2.4 SSAO - 屏幕空间环境光遮蔽

    2.5 DepthOfField - 景深

  3. ScreenSpacePlanarReflectionFeature(屏幕空间平面反射)

GUP Instance功能

  1. GPU Instance绘制草植 - Grass Simulation

水体模拟

  1. 浅水模拟 - Shallow Water Simulation

扩展阅读

  1. HDR相关原理

    • ToneMapping
    • 浮点纹理
  2. 什么是Gamma矫正、线性色彩空间和sRGB

    以上文章大致总结以下就是:

    • 早期显示器输出亮度与电压不是线性关系,而是l = u^2.2幂次关系。因此线性的色彩空间,经由显示器输出后,会变暗。
    • sRGB编码就是通过反向的曲线,先将线性色彩变亮,即sRGB = linearRGB^0.45。再经由显示器,就能完美还原了。
  3. 什么是Color-LUT

  4. ConstantBuffer

  5. Uniform Scale