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”来对待。

  • 相关阅读:
    《TZOJ1546》
    css3的基本样式
    PHP连接mysql数据库,并将取出的数据以json的格式输出
    使用ajax获取JSON数据的jQuery代码的格式
    使用构造函数来判断一个对象是数组还是日期
    js(jquery)代码在页面上实时地显示时间
    点分治总结
    线性基,高斯消元总结
    网络流总结
    后缀数组总结
  • 原文地址:https://www.cnblogs.com/leiGameDesigner/p/8459289.html
Copyright © 2011-2022 走看看