PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : OpenGL - Taschenlampe programmieren


Einfachkrank
2005-01-10, 21:35:51
Servus,

ich hab mal wieder en paar Phantasien bekommen =)
Schaffe ich es in OpenGL eine coole Taschenlampe für den Spieler in einer Ego-Perspektive mit einem Spotlight zu programmieren? Funktioniert das oder sollten da bessere und komplexere Techniken verwendet werden?

MFG Einfachkrank

Demirug
2005-01-10, 22:38:20
Wie sieht den dein sonstiges Beleuchtungsmodel aus?

Vertexbleuchtung kommt leider sehr schnell an die Grenzen. Gerade bei einer Taschenlampe die wahrscheinlich einen schönen runden Rand am Lichtkegel haben soll leistet die Interpolation ganze Arbeit diesen Effekt zu zerstören. Falls die Geometrie aber fein genug ist könnte es funktionieren.

Einfachkrank
2005-01-11, 09:03:22
An Lichtern ist noch gar nichts vorhanden. Sollte das irgendwie gutausehend hinzubekommen sein, richtet sich alles nur nach dieser einen "Taschenlampe" ... Die Szene ist auch recht simple und hat keine hohen Details, von daher muss ich wohl was anderes nehmen. Hast du en Vorschlag für mich? Wenns zu aufwending wird, lass ich es bei diesem Spiel auch weg, das war nur so eine Idee. Aber wäre trotzdem interessant so was zu programmieren...

Asmodeus
2005-01-11, 10:02:44
Die Frage ist halt, ob Du die Sache mit der Standardfunktionalität von OpenGL implementieren willst (fixed function pipeline) oder über Shader. Ich persönlich würde fast sagen, auch wenn das Einbinden der Shaderfunktionalität in Dein Projekt vielleicht etwas Zeit kostet, so lässt sich ein Taschenlampeneffekt damit sicher ziemlich komfortabel umsetzen. Obwohl es auch da natürlich noch Abstufungen bei der Komplexität gibt. Ist die Taschenlampe fest mit dem Spieler verbunden und zeigt immer nur genau in die Richtung, in die der Spieler gerade schaut, dann ist das noch bißchen leichter, als wenn die Taschenlampe unabhängig von der Blickrichtung des Spielers bewegt werden soll.

Gruss, Carsten.

micki
2005-01-11, 10:51:55
manchmal reicht auch einfach ne projezierte textur.

MfG
micki

Einfachkrank
2005-01-11, 13:46:10
Also es soll so aussehen, dass man mit der Taschenlampe rumläuft, diese aber immer nur in die Blickrichtung leuchtet(also fest an die Spielerblickrichtung gekoppelt ist).
Das Einbinden von Shadern würd nicht lange dauern, weil das in meiner dll-Bibliothek dabei ist, die ich mir mal programmiert habe. Ich müsste nur den Fragment und Vertex Shader schreiben. Und in schreiben von Shadern hab ich nur wenig Übung, aber wenn sich das dadurch leicht lösen würde, gebt mir en paar Tipps.

marco42
2005-01-12, 23:35:00
das interface kann gleich bleiben, du kannst von GLSL auf den OpenGL state zugreifen. ansonsten empfehle ich immer das orange book.

Einfachkrank
2005-04-23, 10:25:52
*threadrauskram* :D

Wegen Orange Book... Ich habe zur Zeit absolut keine Kohle mir wieder ein Buch für 50€ zu kaufen ;)

Kann mir jemand dabei helfen einen solchen Vertex- und Fragment Shader zu schreiben? Wie gesagt, er sollte einen schönen Taschenlampen Effekt zaubern und normales Texture Mapping mitmachen... bitte :)

Coda
2005-04-23, 12:03:46
http://developer.nvidia.com/object/Projective_Texture_Mapping.html

Das ist wohl die einfachste Lösung.

Einfachkrank
2005-04-23, 12:46:24
Habs geschafft den Shader zu programmieren... Aber trotzdem danke!!!

ich hab was auf http://www.lighthouse3d.com/opengl/glsl/ gefunden... :)

CharlieB
2005-05-02, 20:29:42
ansonsten ist http://www.opengl.org ne gute Anlaufstelle ...

ein Tut zu deiner Taschenlampe gibts da auch ;)
http://www.opengl.org/resources/tutorials/advanced/advanced96/node27.html