Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
今風トゥーンシェーディング
Search
kenjihanada
February 22, 2019
Technology
0
3k
今風トゥーンシェーディング
by hayatohishiya
kenjihanada
February 22, 2019
Tweet
Share
More Decks by kenjihanada
See All by kenjihanada
Akatsuki Summer Internship 2019 インターン成果発表
kenjihanada
0
2.3k
ゼロから始めるGo Modules
kenjihanada
0
2.8k
俺はビッグエンディアンでテストがしたいんだ!
kenjihanada
0
2.8k
MMOの作り方
kenjihanada
0
2.7k
お父さんが教えるプログラミング教育
kenjihanada
0
2.7k
Other Decks in Technology
See All in Technology
チームで安全にClaude Codeを利用するためのプラクティス / team-claude-code-practices
tomoki10
4
1.8k
2025-12-27 Claude CodeでPRレビュー対応を効率化する@機械学習社会実装勉強会第54回
nakamasato
4
1.4k
ルネサンス開発者を育てる 1on1支援AIエージェント
yusukeshimizu
0
130
Bedrock AgentCore Evaluationsで学ぶLLM as a judge入門
shichijoyuhi
2
310
『君の名は』と聞く君の名は。 / Your name, you who asks for mine.
nttcom
1
140
「駆動」って言葉、なんかカッコイイ_Mitz
comucal
PRO
0
130
純粋なイミュータブルモデルを設計してからイベントソーシングと組み合わせるDeciderの実践方法の紹介 /Introducing Decider Pattern with Event Sourcing
tomohisa
1
320
松尾研LLM講座2025 応用編Day3「軽量化」 講義資料
aratako
15
4.9k
AI駆動開発ライフサイクル(AI-DLC)の始め方
ryansbcho79
0
290
Scrum Guide Expansion Pack が示す現代プロダクト開発への補完的視点
sonjin
0
290
Claude Codeを使った情報整理術
knishioka
18
11k
ソフトウェアエンジニアとAIエンジニアの役割分担についてのある事例
kworkdev
PRO
1
360
Featured
See All Featured
The browser strikes back
jonoalderson
0
290
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
92
Imperfection Machines: The Place of Print at Facebook
scottboms
269
13k
A Modern Web Designer's Workflow
chriscoyier
698
190k
Designing for Performance
lara
610
70k
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
130
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
3.5k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
61
47k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
7.9k
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
2
76
Music & Morning Musume
bryan
46
7k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.1k
Transcript
今風トゥーンシェーディング 2019 / 02 / 22 株式会社アカツキ 菱谷
もくじ ・自己紹介 ・トゥーンシェーディングって何? ・具体的にどんなことやってるの? ・さいごに
・自己紹介 ・トゥーンシェーディングって何? ・具体的にどんなことやってるの? ・さいごに
自己紹介 菱谷 隼人(Hishiya Hayato) 株式会社アカツキ エンジニア 2018年入社 趣味 :ギターを弾くこと 特技
:スマブラ 好きなもの :ラーメン シェーダーが好き!
・自己紹介 ・トゥーンシェーディングって何? ・具体的にどんなことやってるの? ・さいごに
トゥーンシェーディングって何? 2Dっぽく3Dでレンダリングさせること 参考: https://ja.wikipedia.org/wiki/%E3%83%88%E3%82%A5%E3%83%BC%E3%83%B3%E3%83%AC%E3%83%B3%E3%83%80%E3%83%AA%E3%83%B3%E3%82%B0 https://qiita.com/MuRo_CG/items/c417ef6d6cbeed3dd42b https://game.watch.impress.co.jp/img/gmw/docs/653/140/html/g05.jpg.html
トゥーンシェーディングって何? リアルタイムトゥーンシェーディングで現在, 世界最高峰なのはこれ GRANBLUE FANTASY Versus アークシステムワークスさんが開発中 2019年発売予定 もうイラストにしか見えない すごい
参考: https://versus.granbluefantasy.jp/
トゥーンシェーディングって何? ・2Dイラストを3Dで表現させる 利点:1回作っちゃえば,3Dと同じように動かせる 欠点:作るの難しい… ・現在は2Dイラストの表現のほとんどをトゥーンシェーディングで補える ・アニメーション業界でも,2Dイラスト→トゥーンに以降しつつある ゲームと違って,プリレンダーでOKなのでやりたい放題 映画ドラゴンボールブロリーではトゥーンと3Dレタッチの両方を利用 まとめ
・自己紹介 ・トゥーンシェーディングって何? ・具体的にどんなことやってるの? ・さいごに
具体的にどんなことやってるの? ・陰(シェード) ① ベースカラー ② 1号陰 ③ 2号陰 ・アウトライン 色
/ 太さ / ブレンド ・ハイカラー 物理ベース / ベタ塗り ・ディフューズ ハーフランバート ・頂点カラー アウトライン/陰の制御 ・リムライト 光源/反光源 ブレンド(テクスチャ/平行光色) ・SSS(SubSurfaceScattering) 皮膚 環境光影響 ・FeatherShade グラデーションがかかった陰 ・EnvironmentMapping SphereMapping/CubeMapping ・PolygonZOffset 眉毛/まつ毛を前髪よりも前へ などなど
具体的にどんなことやってるの? 今 回 は こ こ ・陰(シェード) ① ベースカラー ②
1号陰 ③ 2号陰 ・アウトライン 色 / 太さ / ブレンド ・ハイカラー 物理ベース / ベタ塗り ・ディフューズ ハーフランバート
具体的にどんなことやってるの? 元モデル SDユニティちゃんを トゥーンシェーディングしていき ます. ① 陰(シェード) ② アウトライン ③
ハイカラー ④ ディフューズ
具体的にどんなことやってるの? 元モデル ライティング計算を 全て削除し, テクスチャを貼っただけの 状態にします.
具体的にどんなことやってるの? 陰(シェード) 法線とライトの向きの内積値で,どれくら い陰になる領域なのかを0~1に正規化し ます. float d = dot(N, -L)
* 0.5 + 0.5; これにしきい値を設けてstepすると, 0 or 1となりトゥーン調の陰のようにパキッ と出力することができます. step(_Threshold, d); 最後に上記でlerpさせます. color = lerp(base, shade, step(...)); 同じことをすれば2号陰が出ます.
具体的にどんなことやってるの? アウトライン 同じポリゴンを法線方向へ拡大し,前面を カリングすることでアウトラインを表現しま す.この手法を背面法と呼びます. 頂点シェーダー内で頂点を法線方向へ加 算することで実現できます. input.vertex.xyz += input.normal
* width;
具体的にどんなことやってるの? ハイカラー とある点で光源の強い光が照り返したよう な表現をハイカラー(スペキュラ)と呼びま す. ライトの向きとビュー方向の和で照り返し 部分の法線を算出し,ポリゴン法線と内積 することでどれくらい照り返されるのかを 導き出せます. dot(N,
normalize(L + V)); 陰と同様にしきい値でstepさせると,ベタ 塗りのハイカラーを得られます. lerp(0, highCol, step(threshold, dot(...)));
具体的にどんなことやってるの? ハイカラー とある点で光源の強い光が照り返したよう な表現をハイカラー(スペキュラ)と呼びま す. ライトの向きとビュー方向の和で照り返し 部分の法線を算出し,ポリゴン法線と内積 することでどれくらい照り返されるのかを 導き出せます. dot(N,
normalize(L + V)); 陰と同様にしきい値でstepさせると,ベタ 塗りのハイカラーを得られます. lerp(0, highCol, step(threshold, dot(...)));
具体的にどんなことやってるの? ディフューズ ライトの向きとポリゴン法線の内積を陰の 強度としてレンダリングすればディフュー ズを得られます. float3 diff = max(0, dot(N,
L)); ディフューズの値にカラーを掛け合わせる ことによって,ベタ塗りから少しだけ立体感 を演出させることができます(ハーフラン バートを用いて,黒くなりすぎないようにす ることがポイントです). float3 diff = max(0, dot(N, L) * 0.2 + 0.8); color = diff * color;
具体的にどんなことやってるの? 完成! ・陰(シェード) ・アウトライン ・ハイカラー ・ディフューズ 上記4つだけでも良い感じのトゥーンを得られ ましたね! 作風に合わせてリムライトやポストエフェクト を重ねていけば,もっと綺麗なレンダリング
結果を得ることができますよ!
具体的にどんなことやってるの? ちなみに…
具体的にどんなことやってるの? ちょっと本気出してみた トゥーン + 光源方向リムライト エミッション + ブレンドアウトライン + HDR対応
ポストエフェクト + アンチエイリアス FXAA + ブルーム + カラグレ コントラスト トーンマッピング ※全部独自実装です
具体的にどんなことやってるの? ちょっと本気出してみた トゥーン + 光源方向リムライト エミッション + ブレンドアウトライン + HDR対応
ポストエフェクト + アンチエイリアス FXAA + ブルーム + カラグレ コントラスト トーンマッピング ※全部独自実装です
・自己紹介 ・トゥーンシェーディングって何? ・具体的にどんなことやってるの? ・さいごに
さいごに ・トゥーンシェーディングについて 2Dっぽい3Dレンダリング 最近のトゥーンシェーディングは2Dイラストに並ぶほど綺麗 工夫次第では物理ベースより軽く,モバイルでリアルタイムで動きます 軽くて綺麗な絵作りをするなら カスタムシェーダーは必須 シェーダーはフォトリアル,ノンフォトリアルに 拠らず様々な表現ができる
さいごに シェーダー楽しいよ! おわり