私は暗い領域で文字を隠すことができるゲームプロジェクトを開始しています。暗いコーナーに隠れていると、他のキャラクターがあなたを見るのが難しくなります。ゲームロジック/ AIで使用するために3Dシーンでオブジェクトがどの程度可視かを計算する
私が必要とするのは、照明条件がキャラクターがどこにあるかを計算する方法です。
理想的には、私は、光がターゲットの異なる側面がライトの異なる量でヒットしているので、落下照明条件があるかもしれないと仮定するので
double getLightFactor(GameCharacter observer, GameCharacter target)
を持っているだろう。 しかし、私は喜んでばかりで特定のマップポイントで光を取得するために関係なく、あなたが
double getLightFactor(int x, int z)
から、あるいはを見ている場所の特定の文字のための光を得るために
double getLightFactor(GameCharacter target)
のために解決します地形。
この方法では、ゲームプレイ中に照明の状態が変化する可能性があることを考慮する必要がありますが、それはターンベースであるため、重い計算が許可される可能性があります。私は懐中電灯を使用することを可能にするつもりですので、それらも考慮に入れる必要があります(ただし、モデル化して別々に扱うことができます)。
私はOgre3dを使用して自分のシーンを処理しますが、私は喜んでジェネリックソリューションや他のエンジンのソリューションを受け入れます(私の選択は石ではありません)。
アイデア、論文または関連するものは大歓迎です!
私はこの回答が好きです。主に私が同じと思っていたので)ターゲットが影に隠れている場合は、ターゲットをレンダリングせず、オブザーバーは画面上でそれを見ることはできません。この問題にはいくつかの修正が必要です。なぜなら、ターゲットを20%の可視状態にしたいからです。 – ralphtheninja
私はそのアイディアが好きで、それを考慮します。しかし、それは十分に速くなるだろうか分からない。 –