トゥーンレンダリング
アニメ調グラフィックっぽくする技法
英語ではcel shader, toon shader
shaderで実装
https://www.youtube.com/watch?v=AZ_9ifeR518
大きく二つの要素で成り立つ
Outline強調
背面法
メッシュを頂点法線で少しだけ膨らませて裏返したメッシュを重ねて描画
はみ出た部分が輪郭線として表示される
マルチパスシェーダー
実装も比較して簡単で主流らしい
エッジの効いた立方体のようなオブジェクトだと角部分がうまくいかないが、平滑法線を作ってカバーしたり
全体的に滑らかなオブジェクトじゃないとアウトラインが飛びやすい
輪郭線をどこで出すか、出さないかを指定しやすい
ポリゴン同士の交差部分は少しおかしな輪郭線となる
3Dソフト等でのモデリング場でも最終出力と同じ輪郭線が描画できる
ポストプロセス法
ピクセル単位で隣との深度バッファの差分をみて、一定以上の差があるなら輪郭線とする
画面全体を対象に一定の負荷で輪郭がかける
逆に
ポリゴン同士の交差部分も問題なく輪郭をかける
影の階層化
色調を数段階程度に単純化
アニメ塗りっぽくなる
godotでの具体的な設定方法
影の部分についてはroughnessを0にしてdefuse mode, specular modeをtoonに
アウトライナについては別途shader を定義して適用
https://www.youtube.com/watch?v=rAU7nPclNtA
shader
https://godotshaders.com/shader/complete-cel-shader-for-godot-4/