Unity 5 Effects

by i-saint
+

( Updated 9 minutes ago )

Unity5 Effects

Unity5 用エフェクト置き場。
こちらのパッケージをインポートすれば大体そのまま使えます:IstEffects.unitypackage
多くはレンダリングパスが deferred であることを前提としています。また、カメラが HDR モードである方がより望ましい結果になります。

Temporal Screen Space Reflections

alt text
スクリーンスペース反射です。
kode80 氏が似たようなものを公開していますが、そちらとはアルゴリズムが違い、 若干残像が残ってしまう欠点があるものの、圧倒的に高速でクオリティも引けを取りません。
実装の詳細に興味があればこちらの記事もどうぞ。 また、上記スクリーンショットの背景はこちらの Raymarcher によるものです。

Screen Space Shadows

alt text
G-Buffer をレイマーチすることで影を出せるライトです。点光源の他に線光源も扱えるようになっています。
ライティング処理の大部分は公式の CommandBuffer のサンプルプロジェクトから借用しています。

Screen Space Boolean

alt text
G-Buffer 加工によるスクリーンスペースブーリアン演算です。
重い、影を正しく処理できない、複雑な立体交差で破綻する、などいくつか問題はありますが、見た目に結構インパクトがある効果は得られます。
実装の詳細に興味があればこちらの記事 (の下の方)もどうぞ。

Rim Light

alt text
法線と カメラ -> ピクセル位置 の角度が浅い部分を明るくするアレです。

Water Surface & Caustics Field

alt text
水面とコースティクスです。
水面は G-Buffer をレイマーチすることで屈折をエミュレートしています。コースティクスは 3 次元ノイズで明るくしてそれっぽく見せかけています。

Light Particle

alt text
一粒一粒を Point Light として扱うパーティクルレンダラ。MassParticle の拡張。

Procedural Modeling

alt text
Mesh の表面を開始点としてレイマーチ (sphere tracing) することで、オブジェクトスペースで distance function をレンダリングする代物。 上の画像は Unity ちゃん以外の背景オブジェクトは全て Cube をピクセルシェーダで加工したものです。

Metaball

alt text
レイマーチによる Metaball。完全に GPU で完結するので、MC 法などでメッシュを生成するよりはずっと高速なはずです。
実装には Media Molecule の方が発表した soft_min() 関数を拝借しています。(詳細。この資料プロシージャルモデリングの類に関する情報の宝庫なのでおすすめです) また、D3D11 世代の機能 (StructuredBuffer) を使っているのでやや環境を選びます。

Temporal SSAO

alt text
dangerous samples を考慮することで残像対策を入れた temporal な SSAO です。
動いてる箇所のノイズが目立ち、ちょっと実用に耐えるとは言い難いクオリティですが、動きが少ないシーンに限れば標準 SSAO の倍くらいの速度で近いクオリティの絵が出せます。 状況によっては役立つこともあるかもしれません。
こちら をヒントに実装しました、が、元記事の方がずっと高度な実装になっています。いずれ元記事で言及されている SSAO の発展形にも手を出してみたいところです。

Mosaic Field

alt text
指定オブジェクトをモザイク領域化するシェーダ。

Creative Commons License
This work is licensed under a Creative Commons Attribution 4.0 International License.