UnityでGLSLを使う
モチベーションと目標
これまでOpenGL (GLSL) を使って色々とやってきたわけですが,諸事情により,いよいよUnityを使おうということになりました.現状,初めてUnityを触るという状態なので,私と同じような状況の方の参考になるかと思います.
- Unityに関しては全くの初心者
- Unityを立ち上げたときに現れる4つのTutorialsを実行してみた程度の知識しかない
- OpenGL (GLSL) に関しては多少の知識と実装経験あり
- なので,UnityでGLSLを使いたい
ということで,今回の目標は『UnityのGameObjectに自作のGLSL Shaderを適用する』です.
GLSLを使えるようにプロジェクトの設定を変更
- Unityを起動して,プロジェクトを作成
- ここでは「GLSLonUnity」という名前に
- 初期状態ではCameraとDirectional Lightがあるだけ
- プロジェクトの設定を変更してGraphics APIをOpenGLに切り替え

GLSLのShaderを作成してGameObjectに適用
Projectタブ内で右クリックをしCreate > Shader > UnlitShaderを選択してシェーダを作成Assets下にShadersフォルダを作成してそこに入れておく- Unityの独自のシェーダが作成されるため,これをGLSLのシェーダに置き換える
- 以下の参照先にある"GLSL basic shader"をコピペ
- 参照:GLSL Programming/Unity/Minimal Shader - Wikibooks, open books for an open world
- 作ったシェーダをダブルクリックするとVisual Studioが立ち上がり編集できる
- 同様に
Project > Assets > Materials以下にマテリアルを作成- GLSL basic shaderという名前に
- 作ったシェーダを作ったマテリアルにドラッグ&ドロップ
- これでシェーダとマテリアルが紐づけられる様子
- GameObjectを作成
Hierarchyタブ内で右クリックし3D Objectから好きなプリミティブを選択
- マテリアルをオブジェクトにドラッグ&ドロップして適用
- 最後に,再生ボタンで実行


上のスクリーンショットの様に,赤く表示されたので目標達成です.