Ich versuche, Field of View-Algorithmus in meinem Spiel zu implementieren, und ich folgte die große Tutorial hier: sight-and-light und hier ist das, was ich so weit gekommen:Optimieren Sichtfeld Algorithmus in einem Raster mit Ziegeln gedeckt Karte
Wie Sie sehen können, funktioniert es gut für mich :)
Und dann versuche ich, diesen Algorithmus in einer gekachelten Karte zu verwenden. Es funktioniert auch gut, aber nur ein bisschen langsam, so dass ich jetzt versuche, einen Weg zu finden, um den Algorithmus zu optimieren.
könnten einige Informationen zu optimieren:
- Das geflieste Karte Orthogonal ist
- Alle Kacheln haben die gleiche Größe 32 * 32 und sind quadratisch
- Fliesen markiert 0 bedeutet leer als 1 Mittel gekennzeichnet
- Alle Hindernisse wurden mer: ein Hindernis
- I Connected Component Labeling-Algorithmus für einen Vorprozess verwendet haben mehrere Regionen ged in
- Ich weiß, dass alle Eckpunkte Position in jeder Regionen
Etwas wie folgt aus:
Sagen, ich habe 9 verbundenen Bereiche (9 Polygone) und 40 Ecken insgesamt.
Basierend auf dem Algorithmus, der in der oben genannten Verbindung wird es:
- Raycasting: 40 * 3 (3 Raycasting pro Vertices in Winkel + - 0,00001)
- Kanten 40
- Ränder * Raycasting Schnitttest: 40 * 40 * 3 == 4800
denke ich, es eine Möglichkeit sein sollte, die Strahl Gusszahl und die Kanten Zahl, die ich brauche zu tun, um die Schnittpunktberechnung zu reduzieren eine obige Situation, aber nur cou Ich würde keine gute Lösung finden.
Jeder Vorschlag geschätzt wird, Dank :)