はじめに

シェーダー(英: shader)とは、3次元コンピュータグラフィックスにおいて、シェーディング(陰影処理)を行うコンピュータプログラムのこと。 シェーダー - Wikipedia

上図は同じモデルデータに対して、それぞれ異なるシェーダーを適用した出力結果です。
シェーダーはこのような表示演出を担い、グラフィックスプログラミングにおいては欠かせない技術になります。

当掲載では、広く普及している Unity を用いて、3D グラフィックスの基礎からシェーダーの書き方を解説し、
最終的には、上図を始めとする定番の演出の理解を目指します。

今回は Unity のインストールから始め、単純なシェーダーの適用までを目標としました。

Unity のインストール

まずは、Unity - Download から下記の手順でインストーラーをダウンロードします。

正式版を利用するため「Unity を選択・ダウンロード」を押下します。

今回は無料の Personal を選択します。

「インストーラーをダウンロード」を押下します。

上画面が表示され、インストーラーのダウンロードが始まります。

完了後にはダウンロードしたファイルを開き、インストール作業を進めます。

「Unity Download Assistant.app」を実行します。

「Continue」を押下して進みます。

利用規約に同意した上で「Continue」と「Agree」を押下して進みます。

今回はデフォルト設定の 3 項目を選択した状態で「Continue」を押下して進みます。

インストール先を指定して、「Continue」を押下することで Unity 本体のダウンロードが始まります。

ダウンロードとインストールの完了後、「Close」を押下して終了になります。

Unity の起動

インストールした Unity ディレクトリから「Unity.app」を実行します。

Unity アカウントは後々必要になりますが、今回は「Work offline」を押下してサインインせずに使用します。

プロジェクトの雛形を作成します。

作成画面ではプロジェクト名と保存先のほか、3D/2D モードと使用するアセットを指定します。

今回は 3D モードが指定されていることを確認後、「Create project」を押下して進みます。

上画面が表示されれば完了です。

以降はこのプロジェクトを元に作業を進めます。

オブジェクトの作成

シェーダーの効果を確認するため、対象となるオブジェクトを作成します。

今回は、メニューバーから

GameObject ▶ 3D Object ▶ Cube

で単純なキューブを作成します。

レンダリング結果を確認するため、中央ペインのタブを Scene から Game に変更します。

以降はこの画面でシェーダーの効果を確認していきます。

マテリアルの作成

Unity のシェーダーはマテリアルに適用されるため、作成したオブジェクトにマテリアルを設定します。

設定するためのマテリアルは、メニューバーから

Assets ▶ Create ▶ Material

で作成します。

マテリアル設定後の変化を明確にするため、右ペイン内の Albedo を赤色に変更します。

左ペイン内の「Cube」を選択、右ペインの情報が変化した後、
作成したマテリアルを「Add Component」ボタンの下方にドラッグ&ドロップします。

オブジェクトにはマテリアルが設定され、レンダリング結果も変化しました。

シェーダーの作成

ここまでの工程で準備が整ったため、シェーダーを作成して設定します。

シェーダーファイルは、メニューバーから

Assets ▶ Create ▶ Shader ▶ Standard Surface Shader

で作成します。

このファイルは *.shader 拡張子のテキストファイルなので、テキストエディタで編集が可能です。

今回は下記の単純な内容に書き換えて使用します。

Shader "Custom/NewSurfaceShader" {
    SubShader {
        Pass {
            Color (0,0,1,0)
        }
    }
}

シェーダーファイルを書き換えた後は Unity に戻り、作成したマテリアルを選択、
右ペインの ShaderCustom/NewSurfaceShader に変更します。

上画面のように、青一色で塗りつぶされれば完了です。