Registriert: So Jun 05, 2005 15:08 Beiträge: 39 Wohnort: Bei Bayreuth
Hallo.
Ich schreibe grad eine Art Worms/Clonk-Clone (Worms werden wohl die meisten kennen, Clonk eher wenige )
Nun habe ich folgendes Problem:
Die Landschaft ist 2D, nur eine einzige, an manchen Stellen transparente Textur (PNG im Moment).
Die Kollisionsabfrage soll über die ALPHAwerte der Textur laufen.
1. Frage :
Wie kann ich sowohl die Canvas-Werte eines Bildes auslesen als es auch als Textur auf eine Fläche zu kleben ?
2. Frage :
Wie kann ich diese Textur inklusive der Alphawerte zur Laufzeit bearbeiten, d.h. wenn ein Stück Wand weg gesprengt wurde, wie kann ich a.) die Farbwerte für den gesprengten Bereich auf Schwarz setzen und b.) die Alphawerte auf 1 stellen, damit der Hintergrund sichtbar, und die Kollisionskontrolle in dem Bereich möglich wird und schließlich c.) diese Canvas wieder zu einer Textur machen und per BIND auf die Fläche kleben?
Ich hoffe ich hab nicht zu viel auf einmal gefragt
Danke im Voraus,
MFG gmgler
_________________ Geniale Menschen sind selten ordentlich, ordentliche selten genial (Albert Einstein)
@1. Dafür wirst du wohl am sinnvollsten eine 2. Version des Bildes im Arbeitspeicher lassen müssen und aus dieser die Werte
nehmen müssen.
@2.Geht, du renderst deine Textur regelmäßig in den PBuffer, wobei du deine Änderungen einfach durch weitere Faces einfügst, d.h. wenn du z.b. einen Stein einfügen willst, renderst du zuerst die Ursprungstextur im Orthogonalmodus, so dass sie den ganzen PBuffer ausfüllt und renderst dann den Stein (ein weiteres Quad) eben so, nur eben nicht den gesamten PBuffer bedeckend, sondern nur die stelle wo der Stein eben hin soll. Wie das mit dem wechsel der Alphawerte aussieht weiß ich nicht, denke aber dass das irgendwie möglich sein müsste, ansonsten schreibst du dir einen Shader, der per Colorkey bestimmte Pixel einfach nicht zeichnet (Ok, mit Kanonen auf Spatzen schießen ...).
mfG
Tomok
_________________ Bevor du definierst, was etwas ist, versichere dich seiner Existenz.
Registriert: Sa Nov 13, 2004 11:00 Beiträge: 229 Wohnort: Steinhude
bei dem alphawert wird der farbwert an der stelle ja egal, insofern kann man dass dann auch einfach überzeichnen.
alternativ kann man glau ich auch über glblend es so hinkriegen dass nur der alphawert geändert wird
Registriert: Sa Nov 13, 2004 11:00 Beiträge: 229 Wohnort: Steinhude
wieso auf nen canvas? soweit ich das verstanden habe, brauchst du die doch nur zu kollisionsabfrage, da würde sich imo eher ne einfache matrix mit booleans iim arbeitsspeicher besser machen. Und die Texturen würde ich nicht umbedingt zu Laufzeitimmer neu hochladen, da das doch ordentlich bandbreite und allgemein geschwindigkeit zieht. eher die textur über nen pbuffer oder rendertotexture updaten.
Mitglieder in diesem Forum: Bing [Bot] und 6 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.