Ich beginne ein Spielprojekt, das es Charakteren erlaubt, sich in dunklen Bereichen zu verstecken. Sich in einer dunklen Ecke zu verstecken, sollte es anderen Charakteren erschweren, dich zu sehen.Berechnung, wie sichtbar ein Objekt in einer 3D-Szene für die Verwendung in der Spiellogik ist/AI
Was ich brauche, ist eine Möglichkeit zu berechnen, wie die Lichtverhältnisse sind, wo das Zeichen befindet.
Das Ideal wäre ein
double getLightFactor(GameCharacter observer, GameCharacter target)
haben, da ich es annehmen Lichtverhältnisse sein könnte, wo das Licht so fällt, dass verschiedene Seiten des Ziels durch unterschiedliche Mengen von Licht getroffen wird. Aber ich würde gerne begleichen für
double getLightFactor(GameCharacter target)
das Licht für einen bestimmten Charakter zu erhalten, unabhängig davon, wo Sie beobachten oder sogar
double getLightFactor(int x, int z)
nur an einem bestimmten Kartenpunkt, das Licht zu bekommen in der Terrain.
Die Methode muss berücksichtigen, dass sich die Lichtbedingungen während des Spielens ändern können, aber da es wiederum auf Runden basiert, könnten einige schwere Berechnungen erlaubt sein. Ich beabsichtige, die Verwendung von Taschenlampen zu ermöglichen, so dass sie ebenfalls berücksichtigt werden müssen (aber sie könnten separat modelliert und gehandhabt werden).
Ich werde Ogre3d verwenden, um meine Szene zu behandeln, aber ich werde gerne generische Lösungen oder sogar Lösungen für andere Motoren akzeptieren (meine Wahl des Motors ist nicht in Stein gemeißelt).
Ideen, Papiere oder wirklich alles relevante ist sehr willkommen!
Ich mag diese Antwort. Vor allem, weil ich das gleiche dachte;) Wenn sich das Ziel in den Schatten versteckt, render das Ziel einfach nicht und kein Beobachter kann es auf ihrem Bildschirm sehen. Dieses Problem benötigt einige Änderungen, weil Sie wollen, dass das Ziel 20% sichtbar usw. ist. – ralphtheninja
Ich mag die Idee und werde darüber nachdenken. Nicht sicher, aber es wird schnell genug sein. –