Unity では DirectX 11 や OpenGL Core などのグラフィックス API を使用し、コンピュートシェーダー、テッセレーション シェーダー、シェーダーモデル 5.0 など、その優れた機能を利用することが可能です。
このオプションは、デフォルトで有効になっています (つまり Windows では、ゲームとエディターで DX11 が使用され、使用できない場合は DX9 を使用します)。 ゲーム ビルドとエディターで DirectX 11 を使用可能にするには、プレーヤー設定 で DX11 オプション を設定します。
注意 DX11 を使用するには、少なくとも Windows Vista かそれ以降で、少なくとも DX10 レベル (できれば DX11 レベル) の GPU が必要です。実際に DX11 モードで作動している場合は、Unity エディターウィンドウのタイトルの後ろに “<DX11>” と示されます。
このオプションは、Mac と Linux ではデフォルトで有効になっています (つまりこれらのプラットフォームでは、ゲームとエディターで OpenGL Core が使用されています)。
Windows で OpenGL Core を使用可能にしデフォルトに設定するには、Player Settings で Auto Graphics API for Windows のチェックを外し、OpenGL Core をリストに加えます。デフォルトにしたい場合には、OpenGL Core をリストの一番上にドラッグします。
注意 OpenGL Core の利用するための最低仕様は以下のとおりです。*
コンピュートシェーダーにより GPU を超並列プロセッサーとして使用できます。モードの詳細については コンピュートシェーダー を参照してください
サーフェイスシェーダーは簡単なテッセレーションと Displacement をサポートします。詳細については Surface Shader テッセレーション を参照してください。
手動で シェーダープログラム を書く場合、DirectX 11 シェーダーモデル 5.0 機能、すなわちジオメトリ、Hull、ドメインシェーダーを含めて、を完全に使用できます。
現在 Surface Shader コンパイルパイプラインの一部は DirectX 特有の HLSL 文法を解釈できないため、HLSL 機能である StructuredBuffers や RWTextures 、その他の非 DirectX 9 文法を使用する場合、DirectX 11 のみのプリプロセッサーマクロでラッピングする必要があります。詳細については プラットフォーム別のレンダリングの違い を参照してください。
以下のスクリーンショットは、DirectX 11 や OpenGL Core で可能な効果の例を表しています。
’’この画像でのブラーエフェクト( Bokeh として知られる)は非常に明るいピクセル上でのテクスチャのスプラッティングにもとづいています。これにより HDR レンダリングとも組み合わせると特にリアリティのあるカメラレンズのブラーを生成できます。