URP中的ShaderLibrary

URP中的ShaderLibrary

  • 使用URP时咱们一般不去引用核心库的文件,而是引用URP package中的ShaderLibrary文件夹下的hlsl文件,这里整理而且概括一下各个文件包含的内容,方便以后翻看和定位。

Core.hlsl

  • 定义了一些经常使用数据结构和一些经常使用的获取函数
  • 例如将模型空间的坐标转换为各个空间坐标的函数:
VertexPositionInputs GetVertexPositionInputs(float3 positionOS)

DeclareDepthTexture.hlsl

  • 定义了采样深度贴图的函数
  • 包含两个函数:
float SampleSceneDepth(float2 uv)
float LoadSceneDepth(uint2 uv)
  • 这两个函数都用于获取深度信息,其区别为:
    • Texture Sample 是纹理采样,会应用纹理寻址和纹理过滤
    • Texture Load是加载某一特定位置的texel
    • 前者使用的是[0,1]范围的浮点数形式的参数
    • 后者使用的是[0,textureSizeX/Y]范围的整数形式的参数
  • 一般gles3.0以上的设备都建议使用LOAD_TEXTURE的方式获取深度值

DeclareOpaqueTexture.hlsl

  • 降采样贴图的采样
  • 里面的两个函数参考深度贴图的采样

Input.hlsl

  • 引入了一些经常使用的变量及函数
  • 例如:灯光信息、坐标系转换函数、GPUInstancing库

Lighting.hlsl

  • 光照计算相关函数
  • 包含:
    • URP实现的PBR光照模型、BlinnPhong模型
    • Global Illumination 相关函数
    • BDRF结构
    • Light结构
    • more

Shadows.hlsl

  • 投影相关函数和结构
  • 计算各类光的投影强度

SurfaceInput.hlsl

  • 定义表面信息的结构和一些帮助函数
  • 例如:
    • 透明度处理
    • 采样反照率透明度
    • 采样法线贴图
    • 采样自发光

UnityInput.hlsl

  • 包含了从Unity传入的数据

MetaInput.hlsl

  • MetaPass相关处理函数

Particles.hlsl

  • 粒子系统相关函数
  • 例如:粒子颜色混合、切线空间的法线贴图采样等

ShaderGraphFunctions.hlsl

  • ShaderGraph相关函数

ShaderTypes.cs.hlsl

  • 自动生成的文件,不要手动修改
相关文章
相关标签/搜索