サイトアイコン NegativeMindException

UnityでLight Shaftを表現する

空気中の細かいチリや、煙を焚いた時に、光源から光の筋が見える現象を”Light Shaft“と呼んだりしますね。Mayaとかのプリレンダ環境なら、Depth Map Shadowとか使えば割と簡単に表現できる現象なんだけど、リアルタイムだとそれなりの計算コストになる。リアルタイムで実現するには、光源の数やバッファサイズにかなり気を付けないと処理落ちしてしまう。

追記:以下はUnity 5の時代の古い情報です。最新のUnityでは標準機能で表現可能です。



で、そんなLight Shaft表現をUnityで実現するScriptをGitHubで公開している方がいる↓

robertcupisz/LightShafts

I made a more decent light shafts effect for #unity: Anyone interested? 🙂 #unity3d

Robert Cupiszさん(@robertcupisz)が投稿した動画 –



このコード、ありがたいことにパブリックドメインだそうです。
使い方は簡単で、Unity標準のライトにアタッチして使用する。対応しているのはDirectional lightSpot light。後は様子を見ながらバッファサイズやサンプリングサイズを調整してやるだけ。



実装の元となった論文はこちら↓
https://www.semanticscholar.org/paper/Epipolar-sampling-for-shadows-and-crepuscular-rays-Engelhardt-Dachsbacher/2b9640253af2bf397232f2436eddce2cf1d5f1eb

こういう表現が加わると一気に奥行きが増して素敵ね。

その後、Unity Adam demoにも使われたようです↓
https://github.com/Unity-Technologies/VolumetricLighting



2018年9月 追記:今ならAuraという無料のAssetがある↓


スポンサーリンク

Aura – Volumetric Lighting


AuraはUnityのためのオープンソースのvolumetric lightingソリューションです。
開発はGitHubにホストされ、最新のパッケージはAsset Storeに公開されています。

Auraは、環境の空気などの媒体中の光の散乱や、この環境に存在する眼球/カメラには見えない微粒子の照明をシミュレートします。
この効果はvolumetric fogとも呼ばれます。

GitHubのリポジトリはこちら↓
https://github.com/raphael-ernaelsten/Aura



ドキュメントはこちら↓
http://www.raphick.be/aura/documentation/

Auraの内部で行われる処理の概要図↓



2019年追記:有料版のAura 2がリリースされています↓

Aura 2 – Volumetric Lighting & Fog


Aura 2はUnity用のvolumetric lighting/fogソリューションです。
Aura 2は、環境中に存在する肉眼・カメラでは捉えられないほど小さな微粒子の照明効果をシミュレートします。

Aura 2はUnityに最先端のvolumetric lightingシステムを提供します。
このレンダリング手法は、Tomb Raider, God Of War, Red Dead Redemption 2, Assassin’s Creed Odysseyなどの最新のハイエンドゲームで使用されているものと同じです。



スポンサーリンク

関連記事

  • 単純に遊びに行くのはだめなのか?
  • ZBrushのお勉強
  • ZBrushでアヴァン・ガメラを作ってみる 脚のトゲの作り直し
  • SVM (Support Vector Machine)
  • 池袋パルコで3Dのバーチャルフィッティング『ウェアラブル クロージング バイ アーバンリサーチ』
  • iOSデバイスのためのフィジカル・コンピューティングツールキット『konashi(こなし)』
  • BlenderのPython環境にPyTorchをインストールする
  • openMVGをWindows10 Visual Studio 2015環境でビルドする
  • ラクガキの立体化 進捗
  • ZBrush キャラクター&クリーチャー
  • Konashiを買った
  • ZBrushからBlenderへモデルをインポート
  • ZBrushでゴジラ2001を作ってみる 身体のシルエット出し
  • 『スター・ウォーズ/スカイウォーカーの夜明け』のVFXブレイクダウン
  • ポリゴンジオメトリ処理ライブラリ『pmp-library (Polygon Mesh Process...
  • ZBrushでゴジラ2001を作ってみる 身体のアタリを作る
  • Deep Learningとその他の機械学習手法の性能比較
  • 注文してた本が届いた
  • フリーで使えるスカルプト系モデリングツール『Sculptris 』
  • 『スター・ウォーズ フォースの覚醒』のVFXブレイクダウン まとめ
  • 顔追跡による擬似3D表示『Dynamic Perspective』
  • ZBrushでアヴァン・ガメラを作ってみる おでこ(?)のバランス調整
  • オープンソースの顔の動作解析ツールキット『OpenFace』
  • まだ続くブログの不調
  • Subsurface scatteringの動画
  • CGALDotNet:計算幾何学ライブラリ CGALのC#ラッパー
  • ZBrushのZScript入門
  • HTML5・WebGLベースのグラフィックスエンジン『Goo Engine』
  • adskShaderSDK
  • OpenCV 3.1から追加されたSfMモジュール
  • ドットインストールのWordPress入門レッスン
  • MRenderUtil::raytrace
  • C++ 標準テンプレートライブラリ (STL)
  • ZBrushで基本となるブラシ
  • ZBrushの作業環境を見直す
  • ZBrushで仮面ライダー3号を造る 仮面編 Dam Standardブラシでディティールを彫る
  • 定数
  • 素敵なパーティクル
  • iPhone x ロボットハッカソン~RomoのiPhone用SDKで目覚ましアプリを作る~
  • MeshLab:3Dオブジェクトの確認・変換に便利なフリーウェア
  • ポリゴン用各種イテレータと関数セット
  • 天体写真の3D動画
  • モバイルバージョンを終了