Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Di Mai 14, 2024 03:49

Foren-Übersicht » Programmierung » Einsteiger-Fragen
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: glOrtho + 3D Effekte?
BeitragVerfasst: Mo Jun 02, 2014 18:46 
Offline
DGL Member

Registriert: Di Dez 13, 2011 19:14
Beiträge: 166
Wohnort: Hamburg / Mölln
Programmiersprache: D
Hallo.
Ich versuche gerade mich ein wenig mit Shadern auseinanderzusetzen. Dabei habe ich z.B. folgenden Vertex Shader:

Code:
  1.  
  2. uniform float time;
  3.  
  4. void main() {
  5.     vec4 v = vec4(gl_Vertex);
  6.     v.z = sin(5.0 * v.x + time) * 0.5;
  7.    
  8.     gl_Position = gl_ModelViewProjectionMatrix * v;
  9. }
  10.  


Dieser funktioniert aber nur, wenn ich gluProjection (also glFrustum) sowie gluLookAt verwende. Wobei ich immer noch nicht genau verstehe, warum ich gluLookAt brauche. Wenn ich glOrtho (egal mit welchen znear und zfar Werten) verwende, funktioniert es (natürlich) nicht.
Aber gibt es da keine Möglichkeit einen solchen Effekt wie der obige Shader mir anzeigt (eine flimmernde Tee Kanne oder jede andere Art von Shape) in 2D, sprich, mit glOrtho hinzubekommen? Also so eine Art emuliertes 3D, sowas wie 2.5D?
Das Problem ist, dass, sobald ich glFrustum verwende, kann ich die Vertices ja nur noch in den üblichen Ranges von 0-1 zeichnen, wobei es mir mit glOrtho gestattet ist, auch "normale" Pixel Koordinaten zu verwenden.
Hoffe jemand versteht mein etwas schräges Geschreibe und kann mir dabei einen Tipp geben, ich kann mich leider nicht besser ausdrücken was das angeht. :/


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: glOrtho + 3D Effekte?
BeitragVerfasst: Mo Jun 02, 2014 19:25 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Nov 08, 2010 18:41
Beiträge: 769
Programmiersprache: Gestern
Hi,

Du hast 2 wichtige Matrizen um deine Vertex Position auf den Bildschirm zu zaubern. Die erste ist die Modelview Matrix. Mit dieser Matrix schiebst und rotierst du im Prinzip deine Positionen in den Kegel deiner Kamera. Du legst also fest an welcher Position deine Kamera ist und in welche Richtung diese zeigt.

Die Zweite ist die Projektionsmatrix. Nachdem nun deine Positionen im Kamera Kegel sind musst du noch die neuen 3D Position auf eine 2D Fläche holen. Dabei wird festgelegt wie die X- und Y-Achse jeweils in Abhängigkeit von der Z-Achse skaliert werden. Also zum Beispiel X und Y sollen kleiner werden je größer Z ist.

Mit Funktionen wie glOrtho, glLoadMatrix oder glLoadIdentity ersetzt man die aktuell gewählt Matrix (Matrix Mode). Wohingegen Funktionen wie glFrustum, glScale, glTransform, glRotate die gewählte Matrix modifizieren.

Dabei musst du natürlich noch bedenken das zum Beispiel glOrtho und glFrustum dir immer eine Projektionsmatrix liefern als Resultat liefern.

2.5D ist einfach nur eine gekürzte Form. Da du ja keine Schrägen hast, kannst du Berechnungen etwas kürzen. Damit sparst du einfach nur ein paar (oder alle wie bei Wolfenstein) Y-Werte für deine Vertexdaten. Das ergibt für einen Rasterizer wie Direct-X und OpenGL aber kaum Sinn.

_________________
Meine Homepage


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: glOrtho + 3D Effekte?
BeitragVerfasst: Mo Jun 02, 2014 21:07 
Offline
DGL Member

Registriert: Di Dez 13, 2011 19:14
Beiträge: 166
Wohnort: Hamburg / Mölln
Programmiersprache: D
Ok, also lass ich den 2.5D Gedanken. :)
Ich muss mich wohl mehr mit den OpenGL Matrizen beschäftigen. :/


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 
Foren-Übersicht » Programmierung » Einsteiger-Fragen


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 5 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.

Suche nach:
Gehe zu:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.042s | 17 Queries | GZIP : On ]