
シェーダーとマテリアル - 概要
Tutorial
intermediate
+0XP
5 mins
Unity Technologies

このチュートリアルでは、3D オブジェクトのレンダリングにおけるシェーダーとマテリアルの役割と、このプロジェクトの学習目標を説明します。
1. 概要
マテリアルとシェーダーは、対象となるハードウェアで 3D オブジェクトをどのように処理、レンダリングするかを決定するうえで極めて重要な役割を担うことになるため、それぞれの機能と最適化方法を把握しておくことが重要です。マテリアルやシェーダーを適切に設定しないと、モバイル端末の限られたリソースに、さらに負荷をかける深刻なボトルネックが生じる場合があります。
このプロジェクトの内容は以下のとおりです。
- Unity のユニバーサルレンダーパイプラインとの相性がよい、最適化されたモバイル用シェーダーについて学びます。
- さまざまな透明度の実装方法の違いと、それぞれの効果と利害について比較検討します。
- リソースが限られているスマートフォン上で実行する際に、シェーダーを軽量かつ高速に保つためのベストプラクティスについて考察します。
2. シェーダーとマテリアルとは
シェーダーとは、画面上にオブジェクトを描画する方法と、そのオブジェクトの描画に必要なすべての計算を GPU に指示する小さなプログラムのことです。シェーダーの記述に使用される一般的なスクリプト言語は、高級シェーディング言語(HLSL)と OpenGL シェーディング言語(GLSL)の 2 つです。
シェーダーは、オブジェクトの外観を定義するマテリアルによってゲームオブジェクトに適用されます。マテリアルは、シェーダーで利用できるパラメーターを設定するために使用されます。たとえば、マテリアルによって、シェーダーが参照する色、テクスチャ、数値を指定します。
次のスクリーンショットは、Unity でマテリアルに適用された HLSL シェーダーです。
Unity には、ハンドコーディングではなく、視覚的にシェーダーを作成できるシェーダーグラフと呼ばれるノードベースのツールもあります。次のスクリーンショットは、グラフネットワークでノードを作成して接続することで、シェーダーグラフを作成する方法を示しています。
3. まとめ
マテリアルとシェーダーは、3D レンダリングプロセスの軸になる部分です。そして、最適化プロセスを進めるためには、それぞれの機能を理解することが不可欠となります。次のチュートリアルでは、モバイルプラットフォーム向けにシェーダーを最適化する際のベストプラクティスを紹介します。