Unity Shader - Shading Language used in Unity 在Unity中使用的着色语言

目录:Unity Shader - 知识点目录(先占位,后续持续更新)
原文:Shading Language used in Unity
版本:2019.1

Shading Language used in Unity

在Unity中使用的着色语言

在Unity中,shader programs 是用一种叫HLSL变体语言来编写的(也叫 Cg ,但大多数实际应用中,它们都是一样的)。

Shader Compilers

着色器编译器

在Unity为shader program程序编译,内部会使用不同的shader编译器。

  • Windows & Microsoft 平台(DX11,DX12和Xbox One)都使用Microsoft的HLSL编译器(当前是 d3dcompiler_47编译器)。
  • OpenGL Core,OpenGL ES3,OpenGL ES 2.0 和 Metal 使用Microsoft的HLSL来编写,再使用 HLSLcc 将字节码转换到 GLSL 或是Metal。
  • OpenGL ES 2.0 可以将源码层通过 hlsl2glslforkglsl optimizer 来将HLSL转换GLSL。这通过添加 #pragma prefer_hlsl2glsl gles 来启用
  • 其他主机游戏平台分别使用它们的编译器(例如:PS4的PSSL)
  • Surface Shaders 使用 Cg 2.2 和 MojoShader 进行代码生成分析。

如果你真的需要确定正在使用哪个编译器(为了使用仅支持的HLSL语法的编译器,或者为了解决编译器bug),可以使用prodefined shader moacros 预定义的着色器宏。例如,当使用HLSL编译器来编译,则定义宏 UNITY_COMPILER_HLSL(D3D或GLCore/GLES3/GLES平台都可以);使用hlsl2glsl转换编译,则定义宏 UNITY_COMPILER_HLSL2GLSL

See Also

另请参阅

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值