ライトマップをベイク処理するとはどういう意味ですか? Unity3dでこれを聞いたところ、ライトマップをベイク処理するスケッチアップ用のこのLightUpプラグインを再び見つけました。
私が観察したところ、ベイク処理されたライトマップは3Dオブジェクトにはるかにリアルな感触を与えます。オブジェクトに光を当てて、事前にレンダリングされたアニメーションで見られるようなcgアニメーションの外観を与えることを目的としていますか?
コメント
- また、ベイクするときはいつでも物理学、照明、その他何でも。これは、リアルタイムでレンダリング/処理するのに長い時間がかかるものを設定したか、毎回同じように再生したいので、一度だけ実行し、後で使用するために結果を保存することを意味します。すべての計算が完了し、ベイクされたものの表示が高速で、すべてのプレイスルーで常に同じです。
- AttackingHobo、これは優れた方法です。私は今それを理解しています。しかし、不思議なことに、物理学はどのように焼かれますか? Luxrenderは、光の物理を計算できるため、フォトリアリスティックなレンダリングを生成しますか?
- すべてのオブジェクトの位置や回転などをタイムステップごとに一度シミュレートして保存することで、複雑なシーンの物理を焼き付けることができます。次に、すべての値をライブで再計算する代わりに、保存されている値から再生されます。
回答
ゲームに静的な(動かない)ライトがある場合、このライトをレンダリングするための2つのオプションがあります。ダイナミックライトと同じようにレンダリングできます。つまり、シェーダーパイプラインを介してフィードします。シェーダーパイプラインは、画面に向かう途中で、周囲のすべて、すべてのフレームへの影響を計算します。これは明らかにかなり高価です。または、エディタでライトをシーンにベイク処理できます。
ベイク処理について常に考えていたのは、おそらくもっと単純なバージョンでした。基本的に、エディタはライトの周りのすべてのテクスチャを取得し、効果を計算します。それらのテクスチャに光を当てて(明るくしたり、色を付けたり、影を付けたりするなど)、使用する代替テクスチャとして保存します。したがって、「光」の周りのすべてのテクスチャは、光が当たっているように見えますが、実行時間は、計算の観点からは実際には光がありません。これは本質的に目の錯覚です。
ただし、Unityはライトマップを生成しているようです。これは上記の概念に似ています。 、ただし、ベイク処理されたライティングは、基になるテクスチャを変更するのではなく、別々に保持されます。シェーダーは実行時に2つをマージすると思います。これには、タイルテクスチャの利点を維持するという利点があります(つまり、メモリ使用量が少ない)。ライトを直接焼き付けておくと、タイル状のままになり、シェーダーは非常に軽量になります。特に、ライトを動的として扱う場合と比較して、
これを機能させるには、ライトを静的にする必要があります。つまり、ライトがテクスチャに焼き付けられているため、ゲームプレイ中に移動することはできません。また、部屋の動的オブジェクト(プレーヤーのキャラクターなど)にはライトが当たらないため、移動する必要があります。ある種の例外であり、ライトは動的オブジェクトに対してレンダリングされますが、静的シーンでは(再)レンダリングされません。
コメント
- そしてほとんどの場合、照明が柔らかいため、ライトマップは他のテクスチャよりも低い解像度で保存でき、見栄えはよくなりますが、レンダリングが速くなり、メモリの消費量が少なくなります。
- +1、これは本当に素晴らしくて広範囲にわたる答え、ありがとう。 🙂