空気中の細かいチリや、煙を焚いた時に、光源から光の筋が見える現象を”Light Shaft“と呼んだりしますね。Mayaとかのプリレンダ環境なら、Depth Map Shadowとか使えば割と簡単に表現できる現象なんだけど、リアルタイムだとそれなりの計算コストになる。リアルタイムで実現するには、光源の数やバッファサイズにかなり気を付けないと処理落ちしてしまう。
追記:以下はUnity 5の時代の古い情報です。最新のUnityでは標準機能でLight Shaftを表現可能です。
で、そんなLight Shaft表現をUnityで実現するScriptをGitHubで公開している方がいる↓
robertcupisz/LightShafts
このコード、ありがたいことにパブリックドメインだそうです。
使い方は簡単で、Unity標準のライトにアタッチして使用する。対応しているのはDirectional lightとSpot 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などの最新のハイエンドゲームで使用されているものと同じです。
関連記事
Unite 2017 Tokyoに行ってきた
OpenGVのライブラリ構成
WordPressのテーマを自作する
Raspberry Pi 2を買いました
Webスクレイピングの勉強会に行ってきた
ZBrushで仮面ライダー3号を造る ベース編
MetaHumanの頭部をBlenderで編集できるアドオン
リアルタイム レイトレーシングAPI『DirectX Ray...
cvui:OpenCVのための軽量GUIライブラリ
インターフェイスは世界を規定する
Blenderでよく使うaddon
DCGAN (Deep Convolutional GAN)...
SONY製のニューラルネットワークライブラリ『NNabla』
PyTorch3D:3Dコンピュータービジョンライブラリ
機械学習に役立つPythonライブラリ一覧
『ピクサー展』へ行ってきた
MRenderUtil::raytrace
日立のフルパララックス立体ディスプレイ
Physics Forests:機械学習で流体シミュレーショ...
GoB:ZBrushとBlenderを連携させるアドオン
ZBrushでアヴァン・ガメラを作ってみる モールドの彫り込...
WordPressプラグインによるサイトマップの自動生成
OpenFace:Deep Neural Networkによ...
ZBrushからBlenderへモデルをインポート
池袋パルコで3Dのバーチャルフィッティング『ウェアラブル ク...
ZBrush 4R8 リリース!
Maya LTでFBIK(Full Body IK)
UnityユーザーがUnreal Engineの使い方を学ぶ...
生物の骨格
Deep Fluids:流体シミュレーションをディープラーニ...
書籍『OpenCV 3 プログラミングブック』を購入
TensorSpace.js:ニューラルネットワークの構造を...
Point Cloud Libraryに動画フォーマットが追...
Python.NET:Pythonと.NETを連携させるパッ...
ZBrushでアヴァン・ガメラを作ってみる 口のバランス調整
MVStudio:オープンソースのPhotogrammetr...
オープンソースの人体モデリングツール『MakeHuman』の...
Web経由でRaspberry PiのGPIOを操作したい
ラクガキの立体化 反省
Managing Software Requirements...
Unityの薄い本
ZBrushでアヴァン・ガメラを作ってみる 腕の作り込み
コメント