1. Copyright ? GREE, Inc. All Rights Reserved.
アーティストのための
プログラマブルシェーダ講座
2015/11/12
グリー株式会社
酒井 駿介
2. Copyright ? GREE, Inc. All Rights Reserved.
資料?ソースコードについて
本講演でご紹介したサンプルは、弊社
Githubアカウントにて公開しています。
https://github.com/gree/gcm3.shader.s
ample
#アートアセットは含まれません
3. Copyright ? GREE, Inc. All Rights Reserved.
自己紹介
酒井駿介
グリー株式会社 / Artグループ
テクニカルアーティスト
Technical Artistチームにて、3Dアートア
セットパイプラインの構築や、シェーダ開
発、処理負荷の最適化などの業務を行う。
4. Copyright ? GREE, Inc. All Rights Reserved.
本講演のテーマ
アーティストのための
プログラマブルシェーダ講座
5. Copyright ? GREE, Inc. All Rights Reserved.
本日の内容
1. プログラマブルシェーダ
スターターガイド
2. 今すぐ使える!
シェーダテクニック
3. まとめ
4. QA
7. Copyright ? GREE, Inc. All Rights Reserved.
シェーダって?
3Dグラフィックを描画するための
コンピュータプログラム。
8. Copyright ? GREE, Inc. All Rights Reserved.
どんなことができるか?
? キャラクターや背景の見た目をかっこよ
くできる
? ツールの限界を超えられる
? イケてるUIが作れる
? 処理を軽くできる(場合もある)
9. Copyright ? GREE, Inc. All Rights Reserved.
シェーダの開発環境
ライブラリ 言語
DirectX HLSL
OpenGL GLSL
ゲームエンジン /
ミドルウェア
ツール
Unity Shader Lab
Unreal Engine Material Editor
Maya / Stingray Shader FX など
10. Copyright ? GREE, Inc. All Rights Reserved.
スクリプト or ノード
重要なのは、レンダリングパイプラインだ!
11. Copyright ? GREE, Inc. All Rights Reserved.
レンダリングパイプライン
3Dデータが2D画像として
描画される手順のこと。
Vertex
Stage
※わかりやすく省略したもの。
実際はグラフィックライブラリの種類やバージョンによって異なる。
Fragment
Stage
OM
Stage
12. Copyright ? GREE, Inc. All Rights Reserved.
Vertex Stage
頂点Vertexを処理するステージ
13. Copyright ? GREE, Inc. All Rights Reserved.
Fragment Stage
ピクセルごとに処理を行うステージ
14. Copyright ? GREE, Inc. All Rights Reserved.
OM Stage
出力したピクセルの合成処理を
行うステージ (Output Merger)
15. Copyright ? GREE, Inc. All Rights Reserved.
Unityでのシェーダの扱い
? ShaderLab
– Surface Shader
– Vertex and Fragment Shader
– Fixed Function Shader
? HLSL or GLSLで.shaderファイルを記述
? マテリアルにShaderを指定して使う
16. Copyright ? GREE, Inc. All Rights Reserved.
Surface Shader /
Vertex and Fragment Shader
? Surface Shader
– ライトの処理を行う場合
(キャラクターモデルなど)
– Unity5から物理ベースのシェーダタイプに
? SurfaceOutputStandard
? SurfaceOutput
? Vertex and Fragment Shader
– ライトの処理を行わない場合 (UIなど)
17. Copyright ? GREE, Inc. All Rights Reserved.
Built In Files
ビルトインのShader関連ファイルが
含まれる。
? Shaderファイル(.shader)
? ライブラリファイル(.cginc)