码迷,mamicode.com
首页 > 其他好文 > 详细

着色器编译目标等级

时间:2018-02-22 19:41:16      阅读:1900      评论:0      收藏:0      [点我收藏+]

标签:基本   hlsl   程序   3.2   着色器   x11   div   读写   get   

无论编写 表面着色器还是其他常规着色器程序时,HLSL资源可以别编译为不同的“着色器模型”。更高的着色器编译器目标允许使用更多现代GPU功能,但是可能造成在老的GPU或者平台上不能正常工作。

编译器目标通过指令 #pragma target 来指定,比如:

#pragma target 3.5

默认的编译器目标

默认情况下,unity将着色器编译为支持最低目标级别(2.5);在DirectX着色器2.0和3.0之间。其他一些编译指令使着色器自动被编译成更高的目标:

  • 使用几何着色器来设置编译器目标到4.0(#pragma geometry)
  • 使用镶嵌着色器来设置编译器目标到4.6((#pragma hull or #pragma domain)

支持的#pragma目标名字

下面是支持的着色器模型支持列表,附带了一个简略的能力描述:

#pragma target 2.0

  • 在unity所有支持的平台上都能够工作。DX9着色器 model2.0.
  • 有限的算法&贴图指令数量;8个插入器;没有顶点贴图取样;没有片段着色器衍生物;没有清晰细节贴图采样

#pragma target 2.5 (default)

  • 几乎和3.0一模一样,除却插入器还是只有8个,并且没有清晰细节贴图采样。
  • 在Windows Phone上编译成DX11特性级别9.3

#pragma target 3.0

  • DX9着色器 model3.0:派生指令,贴图细节采样,10插入器,更多的计算&贴图指令。
  • 不支持DX11特性在级别9.x 的GPU上。
  • 可能在一些OpenGL ES2.0设备上不会被完全支持,取决于驱动扩展和被使用的特性。

#pragma target 3.5 (or es3.0)

  • OpenGL ES3.0级别能力(DX10 SM4.0在D3D平台,只是没有几何着色器)。
  • 不支持 DX11 9.x(WinPhone),OpenGL ES 2.0。
  • 支持 DX11+, OpenGL 3.2+ ,OpenGL ES3+, Metal ,Vulkan, PS4/XB控制台。
  • 原生的整数操作,贴图数组等等。

#pragma target 4.0

  • DX11 shader model 4.0.
  • 不支持DX11 9.x (WinPhone), OpenGL ES 2.0/3.0/3.1, Metal。
  • 支持 DX11+, OpenGL 3.2+, OpenGL ES 3.1+AEP, Vulkan, PS4/XB1 控制台。
  • 拥有几何着色器,并且3.0有的它都有。

#pragma target 4.5 (or es3.1)

  • OpenGL ES 3.1级别能力 (DX11 SM5.0 on D3D platforms, 没有镶嵌着色器).
  • 不支持DX11 before SM5.0, OpenGL before 4.3 (i.e. Mac), OpenGL ES 2.0/3.0.
  • 支持DX11+ SM5.0, OpenGL 4.3+, OpenGL ES 3.1, Metal, Vulkan, PS4/XB1控制台。
  • 拥有计算着色器,随机读写贴图,原子学等,没有几何或者镶嵌着色器。

#pragma target 4.6 (or gl4.1)

  • OpenGL 4.1 级别能力(DX11 SM5.0 on D3D platforms,没有计算着色器).
  • 这基本上是Macs支持的最高的OpenGL级别了。
  • 不支持DX11 before SM5.0, OpenGL before 4.1, OpenGL ES 2.0/3.0/3.1, Metal.
  • 支持 DX11+ SM5.0, OpenGL 4.1+, OpenGL ES 3.1+AEP, PS4/XB1 等控制台。

#pragma target 5.0

  • DX11 shader model 5.0.
  • 不支持 DX11 before SM5.0, OpenGL before 4.3 (i.e. Mac), OpenGL ES 2.0/3.0/3.1, Metal.
  • 支持 DX11+ SM5.0, OpenGL 4.3+, OpenGL ES 3.1+AEP, Vulkan, PS4/XB1控制台。

注意所有的类似OpenGL的平台(包含移动平台)都被当做“shader model 3.0”来对待。WP8/WinRT平台(DX11特性 level 9.x)都被当做“shader model 2.5”来对待。

着色器编译目标等级

标签:基本   hlsl   程序   3.2   着色器   x11   div   读写   get   

原文地址:https://www.cnblogs.com/leiGameDesigner/p/8459289.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!