Version: Unity 6.0 (6000.0)
言語 : 日本語
HLSL pragma ディレクティブリファレンス
HLSL pragma require コマンドリファレンス

HLSL pragma ターゲットコマンドリファレンス

以下は、Unity が使用するシェーダーモデルのリストと、それぞれが対応する #pragma require の値の組み合わせです。

注意Unity のシェーダーモデルは、DirectX のシェーダーモデルや OpenGL のバージョン要件と似ていますが、完全に対応しているわけではありません。説明をよく読んで、違いを確実に理解してください。

説明 サポート 相当する #pragma require
2.0 DirectX シェーダーモデル 2.0 に相当。

計算とテクスチャの指示に制限あり。Interpolator 8 個、頂点テクスチャサンプリングなし、フラグメントシェーダーのデリバティブなし、明示的 LOD テクスチャサンプリングなし。
Unity がサポートするすべてのプラットフォームで動作します。 該当なし
2.5 3.0 とほぼ同じですが、Interpolator が 8 個しかなく、明示的な LOD テクスチャサンプリングもありません。 DirectX 11 機能レベル 9 以降
OpenGL 3.2 以降
Vulkan
Metal
derivatives
3.0 DirectX シェーダーモデル 3.0 に相当。

.
DirectX 11 機能レベル 10 以降
OpenGL 3.2 以降
OpenGL ES 3.0 以降
Vulkan
Metal
2.5 のすべてに加えて、
interpolators10 samplelod fragcoord
3.5 OpenGL ES 3.0 に相当。

DirectX 11.0 機能レベル 10 以降
OpenGL 3.2 以降
OpenGL ES 3 以降
Vulkan
Metal
3.0 のすべてに加えて、
interpolators15 mrt4 integers 2darray instancing
4.0 DirectX シェーダーモデル 4.0 に相当。ただし、8 つの MRT のサポート要件なし。 DirectX 11.0 機能レベル 10 以降
Desktop OpenGL 3.x
OpenGL ES 3.1
OpenGL ES 3.1 + Android 拡張機能パック (AEP)
OpenGL 3.2 以降
Vulkan
Metal (ジオメトリステージが定義されていない場合)
3.5 のすべてに加えて、
geometry
gl4.1 OpenGL 4.1 に相当。 Desktop OpenGL 4.1
シェーダーモデル 4.0 + テッセレーションにより、macOS 10.9 の機能と一致。
4.0 のすべてに加えて、
cubearray tesshw tessellation msaatex
4.5 OpenGL ES 3.1 に相当。 DirectX 11 機能レベル 11 以降
OpenGL 4.3 以降
OpenGL ES 3.1
Vulkan
Metal
3.5 のすべてに加えて、
compute randomwrite msaatex
4.6 OpenGL 4.1 に相当。

Mac でサポートされている OpenGL の最高レベルです。
DirectX 11 機能レベル 11 以降
OpenGL 4.1 以降
OpenGL ES 3.1 + AEP
Vulkan
Metal (ジオメトリステージが定義されておらず、ハルまたはドメインステージが定義されていない場合)
4.0 のすべてに加えて、
cubearray tesshw tessellation msaatex
5.0 DirectX シェーダーモデル 5.0 に相当。ただし、32 の Interpolator またはキューブマップ配列のサポート要件なし。 DirectX 11 機能レベル 11 以降
Desktop OpenGL 4.2 以降
OpenGL 4.3 以降
OpenGL ES 3.1 + AEP
Vulkan
Metal (ジオメトリステージが定義されておらず、ハルまたはドメインステージが定義されていない場合)
4.0 のすべてに加えて、
compute randomwrite msaatex tesshw tessellation

コンソールプラットフォームでのシェーダーモデルのサポートについては、プラットフォーム別のドキュメントを参照してください。

注:

  • DirectX の定義では、シェーダーモデル 4.0 には mrt8 が、シェーダーモデル 5.0 には interpolators32cubearray が含まれています。Unity には、互換性を高めるために、これらの機能は含まれていません。これらの機能を必須にするには、明示的に #pragma require ディレクティブを使用してください。
  • geometry を必要とするターゲットを使用しているが、シェーダーがジオメトリステージを定義していない場合、Unity はコンパイル時に geometry を要件リストから削除します。
  • tessellation を必要とするターゲットを使用しているが、シェーダーがハルまたはドメインステージを定義していない場合、Unity はコンパイル時に tessellation を要件リストから削除します。
HLSL pragma ディレクティブリファレンス
HLSL pragma require コマンドリファレンス
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961