|
DirectX-Forum - Beitragsübersicht - |
|
Thema | DX9: Texturen vergleichen. |
Von |
Nico |
E-Mail |
nico.schertler@gmx.de |
Datum |
26. Januar 2009 um 18:07:07 |
Frage |
Hallo!
Ich hab mal wieder ein Problem: Und zwar versuche ich einen Fog-of-War zu realisieren. Dazu habe ich mir gedacht, dass ich in einer Textur die sichtbaren Bereiche mit Alpha=0 male und die unsichtbaren Bereiche mit schwarz. Dann müsste ich nur die Textur über die Karte legen und schon hätte ich das geschafft. Bliebe nur noch die Frage, wie ich dann herauskriege, ob ein Objekt sichtbar ist. Und dazu habe ich mir folgendes überlegt. Ich kopiere die Fog-Textur, indem ich sie einfach als Sprite in eine neue Textur zeichne. Dann zeichne ich mit Schwarz ein Rechteck in die Textur an der Stelle und in der Größe wie das zu überprüfende Objekt. Falls dann beide Texturen noch identisch sind, ist das Objekt nicht sichtbar, andernfalls ist es sichtbar. Nun zu meiner Frage: Wie kann ich zwei Texturen miteinander vergleichen? Oder gibt es evt. eine einfachere Methode für den FoW?
Nico |
|
Antwort: |
Von |
Nico |
E-Mail |
nico.schertler@gmx.de |
Datum |
03. Februar 2009 um 18:32:17 |
Antwort |
So. Jetzt hab ich das Grobe geschafft und hier ist erstmal der Screen: Screen. Und jetzt zu meinem Problem: Im Vordergrund ist das Gebäude, das in seiner Sichtweite die Karte offenlegt. Das wäre der Kreis, den man da sehen kann. Außerhalb des Kreises sollte nichts sichtbar sein. Also muss ich überprüfen, ob Objekte sichtbar sind, bevor sie gezeichnet werden. Da ich dafür noch keine Lösung habe, werden die Berge im Hintergrund trotzdem gezeichnet. Dazu habe ich mir folgendes überlegt: Die Sichtbarkeit wird in einer Textur gespeichert. Dabei bedeutet Weiß=Sichtbar, Transparent=Unsichtbar. Damit wird auch die Sichtbarkeit der Karte über Multitexturing bzw. Stenciling realisiert. Wenn nun ein Objekt ein Rechteck mit seinen Ausmaßen an die entsprechende Position in der Sichtbarkeitstextur zeichnet, kann ich ermitteln (bzw. eben noch nicht), ob es sichtbar ist. Ist die Textur unverändert, ist es sichtbar (da der Bereich, in den das Objekt zeichnet) schon ohnehin weiß war, andernfalls ist es unsichtbar. Irgendetwas in der Art stellt doch DX bestimmt bereit, oder?
Nico |
|
[ Antwort schreiben | Zurück zum DirectX-Forum | Forum-Hilfe ] |
|
Letzte Aktualisierung: Sonntag, 13. Dezember 2015 |
|