zoukankan      html  css  js  c++  java
  • 着色器编译目标等级

    无论编写 表面着色器还是其他常规着色器程序时,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”来对待。

  • 相关阅读:
    UVa 1151 Buy or Build【最小生成树】
    UVa 216 Getting in Line【枚举排列】
    UVa 729 The Hamming Distance Problem【枚举排列】
    HDU 5214 Movie【贪心】
    HDU 5223 GCD
    POJ 1144 Network【割顶】
    UVa 11025 The broken pedometer【枚举子集】
    HDU 2515 Yanghee 的算术【找规律】
    Java基本语法
    Java环境变量,jdk和jre的区别,面向对象语言编程
  • 原文地址:https://www.cnblogs.com/leiGameDesigner/p/8459289.html
Copyright © 2011-2022 走看看