「ライトを焼く」とはどういう意味ですか?


36

lightmapをベイクするとはどういう意味ですか?Unity3dでこれを聞いたところ、ライトマップを焼くスケッチアップ用のこのLightUpプラグインを再び見つけました。

私が観察したことから、ベイクされたライトマップは3Dオブジェクトにはるかにリアルな感触を与えます。オブジェクトに光を焼き付けて、そのcgアニメーションを事前にレンダリングされたアニメーションで見るようにする目的はありますか?


また、物理学、照明など、何かを焼くときはいつでも。リアルタイムでレンダリング/処理するのに時間がかかるものを設定したか、毎回同じように再生したいので、一度だけ実行し、後で使用するために結果を保存しますすべての計算が行われ、焼き付けられたものが高速に表示され、すべてのプレイスルーで常に同じです。
攻撃

AttackingHobo、それはそれを置く素晴らしい方法です。今理解しています。しかし、奇妙なことに、物理学はどのように焼き上げられるのでしょうか?Luxrenderは、光の物理を計算できるため、フォトリアリスティックレンダリングを生成しますか?
キム・ジョンウ

1
物理学は、すべてのオブジェクトの位置をシミュレートして保存し、タイムステップごとに回転などを行うことにより、複雑なシーン用にベイクできます。その後、すべての値を再計算してライブにする代わりに、保存された値から再生されます。
AttackingHobo

回答:


53

ゲーム内に静的な(動かない)ライトがある場合、このライトをレンダリングするための2つのオプションがあります。ダイナミックライトと同じようにレンダリングできます。つまり、シェーダーパイプラインを介してフィードします。シェーダーパイプラインは、画面に向かう途中で、周囲のすべて、すべてのフレームに対する効果を計算します。これは明らかにかなり高価です。または、編集者は光をシーンに焼き付けることができます。

私がいつも考えていたベーキングは、おそらくよりシンプルなバージョンでした。基本的には、エディターはライトの周りのすべてのテクスチャを取得し、それらのテクスチャに対するライトの効果を計算します(それらを明るくします。 、使用する置換テクスチャとして保存します。そのため、「ライト」の周囲のすべてのテクスチャはライトがかかっているように見えますが、実行時には実際には計算の観点からライトはありません。本質的には錯覚です。

ただし、Unityはライトマップを生成しているようです。これは上記の概念に似ていますが、ベイク処理されたライティングは、基礎となるテクスチャを変更する代わりに個別に保持され、シェーダーが実行時に2つをマージすると仮定します。これは、タイルテクスチャの利点(つまり、メモリ使用量が少ない)を維持できるという利点があります。ライトを直接ベイクしないため、タイルを維持でき、シェーダーは非常に軽量で、特にダイナミックな光。

これが機能するには、ライトが静的である必要があることは明らかです。つまり、光がテクスチャに焼き付けられているため、ゲームプレイ中に移動することはできません。また、部屋の動的オブジェクト(プレイヤーキャラクターなど)には光が当たらないため、何らかの例外が必要です。この場合、光は動的オブジェクトに対してレンダリングされますが、再レンダリングされません。静的な風景。


12
また、ほとんどの場合、照明がやわらかいため、ライトマップは他のテクスチャよりも低い解像度で保存できますが、見栄えはよくなりますが、レンダリングは速くなり、メモリの消費も少なくなります。
AttackingHobo

+1、これは本当に素晴らしく、広範な回答です、ありがとう。:)
Xeo
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.