您当前的位置: 首页 >  unity

Jave.Lin

暂无认证

  • 3浏览

    0关注

    704博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

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

Jave.Lin 发布时间:2019-06-30 23:08:26 ,浏览量:3

目录: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 可以将源码层通过 hlsl2glslfork 和 glsl 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

另请参阅

  • Shader Programs。
  • Shader Preprocessor Macros。
  • Platform Specific Rendering Differences。
关注
打赏
1664331872
查看更多评论
立即登录/注册

微信扫码登录

0.3849s