Registriert: Sa Dez 30, 2006 20:52 Beiträge: 43
Programmiersprache: Delphi
Hallo,
ich will in mein Spiel einen Tag-Nacht-Rythmus einbauen. Da ich das aber mit glLight gar nicht hinbekommen habe - ich weiß nichtmal welcher Lichttyp ich brauche und beim Anzeigen war alles schwarz/grau - dachte ich, kein Problem. Einfach ein Quad 800x600 drüber mit dynamischer Transparenz. Soweit so gut.
Jetzt sollten aber meine Autos, die da fahren, ihre "Scheinwerfer" anmachen, so dass es nicht ganz so dunkel ist und die Schrift, die die Autos hinter sich herziehen wieder besser sichtbar ist. Da ich aber, wie gesagt, mit Licht absolut nichts hinbekomme, würd ich mich über ein Beispiel für sowas freuen. Und wenn ich grad dabei bin, könnte ich ja meine Quad-Methode ersetzen.
Wie sieht also so ein Scheinwerferlicht aus? Und wie mach ich 50 davon gleichzeitig? In weiß, in rot.
Grüße GTA-Place
EDIT: Vergessen zu sagen. Das ganze ist 2D und Vogelperspektive. Man sieht die Autos also von oben.
Zuletzt geändert von GTA-Place am Sa Okt 02, 2010 22:10, insgesamt 1-mal geändert.
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Du könntest eine Scheinwerfertextur machen und diese Textur vor jedem Auto darstellen. Das wäre dann ein simples Quad. Die Farben könntest du dann setzen wie du wolltest. Allerdings ist da die Frage wie du deine Nacht darstellst? Es kann natürlich sein, dass du zu erst alle deine Scheinwerfer in einen Buffer rendern musst und mit diesem dann weiterarbeiten musst. Das richtet sich aber danach wie du Tag und Nacht realisiert hast.
Wie du das aber mit der Schrift machst kann ich dir nicht genau sagen. Kommt ja immer darauf an welches Design du damit verfolgen möchtest. Und ob Tag und Nacht langsam überblenden oder direkt wechseln. Beim direkten Wechseln könnte man evtl. eine andere Farbe benutzen.
Registriert: Sa Dez 30, 2006 20:52 Beiträge: 43
Programmiersprache: Delphi
Die Nacht ist nur das Quad mit 15% (0.15) Transparenz. Das heißt die Scheinwerfertexturen müssten gegen diese Transparenz wirken, aber teilweise auch transparent sein. Vielleicht kann ich die einfach über das Quad malen. Danke schonmal, werd das nachher ausprobieren.
Wenn du kein Render to texture willst, kannst du das große quad einfach mit aktiviertem z oder stenciltest rendern und den scheinwefern eintweder einnen sehr nahen z-wert geben, oder halt in den stencil schreiben. Ist dann aber 1 bit schwarz/weiß.
Registriert: Mo Jan 31, 2005 11:02 Beiträge: 432 Wohnort: Rheinlandpfalz
Wohoo!
Ich habe leider zu deinem Problem nichts beizutragen (man möge es mir verzeihen), doch ich freue mich schon sehr dein Spiel zu den Olympischen Spielen in China auszuprobieren. Du schaffste es ja immer wieder ein aktuelles (politisches) Thema herauszugreifen.
IM prinzip ust es denkbar einen vereinfachten deferred renderer zu verwenden. Nachdem die Scene gerendert ist, benutze render to texture um alle lichter dort zu addieren (einfach hineinrendern). zum schluss das licht mit der scene durch multiplizieren (Blending) kombinieren
sollte eine Graka keine VBOs unterstützen kannst du die beleuchtung einfach deaktivieren ohne das es weitere prbleme gibt.
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7810 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Machts euch doch nicht so schwer
Für alle Sachen die dunkler werden sollen stellst du mit glColor ein dunkleres Grau ein. Die Schrift machst du entsprechend ab einem bestimmten Schwellwert heller und die Scheinwerfer bleiben immer weiß (mit glColor).
Ich weiß, dass das Lowtech ist, aber es sollte gehen.
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Registriert: Sa Dez 30, 2006 20:52 Beiträge: 43
Programmiersprache: Delphi
Danke für alle Antworten. Einige scheinen mir etwas zu kompliziert. Ich habe bisher keinen Z-Wert verwendet und würde gern auch weiterhin drauf verzichten. Ich hab es dann so hin bekommen, dass ich einfach weiße Kegel gezeichnet habe unter meinem Nacht-Quad und die etwas transparent waren. Das funktionierte eg ganz gut, aber ich muss sagen, die Idee von Flash ist deutlich besser. Ich zeichne nun alles dunkler, was dunkler sein muss und kann dann die volle Helligkeit bei den Scheinwerfern nutzen.
Eine Frage hätte ich dann noch: Kann man irgendwie die Kegel, die ich mit glVertex2d gezeichnert habe, verschwimmen lassen? Lichtkegel sind ja etwas verschwommen, nach außenhin abnehmend, wenn ich das Recht im Kopf habe.
@MatReno: Danke ^_^ ich schick dir nachher mal ne PN.
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7810 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Die Heckscheinwerfer solltest du ohne Textur machen durch z.B. gefärbte Quads. Außerdem sollte die Schriftfarbe Nachts hell werden. (Nur meine Gedanken)
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Registriert: Sa Dez 30, 2006 20:52 Beiträge: 43
Programmiersprache: Delphi
So wie es jetzt ist? Die sind ja momentan nur gefärbte Quads in rot. Welche Schrift meinst du? Wenn du die auf den Straßen meinst, würde ich eher sagen, dass die so bleiben, weil die ja zur Straße gehören und daher auch dunkler sein müssen (Straßenbemalung).
Mitglieder in diesem Forum: 0 Mitglieder und 2 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.