经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » 游戏设计 » 查看文章
URP中的ShaderLibrary
来源:cnblogs  作者:RisingMoon  时间:2021/4/6 9:29:11  对本文有异议

URP中的ShaderLibrary

  • 使用URP时我们通常不去引用核心库的文件,而是引用URP package中的ShaderLibrary文件夹下的hlsl文件,这里整理并且归纳一下各个文件包含的内容,方便之后翻看和定位。

Core.hlsl

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

DeclareDepthTexture.hlsl

  • 定义了采样深度贴图的函数
  • 包含两个函数:
  1. float SampleSceneDepth(float2 uv)
  2. 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

  • 自动生成的文件,不要手动修改

原文链接:http://www.cnblogs.com/RisingMoon/p/14610433.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号