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

Aktuelle Zeit: Mi Jul 16, 2025 14:06

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



Ein neues Thema erstellen Auf das Thema antworten  [ 9 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Grafiken und GL
BeitragVerfasst: Fr Apr 15, 2005 12:36 
Offline
DGL Member

Registriert: Fr Apr 15, 2005 12:31
Beiträge: 14
Hi alle zusammen!

Ich habe angefangen, mich mit opengl zu beschäftigen, und bin dabei ein "einfaches" Interaface zu basteln.
Nun stosse ich aber auf ein Problem, wo ich bisher nichts gefunden habe. Es geht um das Einbinden von Grafiken
in meiner Oberfläche. Die Grafik habe ich in den Anhang gelegt.
Folgende Situation:

Ich habe ein Bild interface.jpg (Größe: 1024 x 768)
Dieses Bild möchte ich gerne in die Gl-Scene einbinden.
Wie mache ich das?

Viele Grüße

David


P.S. Ich hoffe, dass die Frage nicht allzu bescheuert ist.


Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Apr 15, 2005 12:42 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Jul 17, 2002 12:07
Beiträge: 976
Wohnort: Tübingen
Ich würde das ganze einfach auf ein Quad kleben, das genau die Größe des Fensters hat.
Ich weis nicht, ob du schon weist, wie man eine Textur verwendet?
schau dir mal folgendes Tutorial an:
http://www.delphigl.com/script/do_show.php?name=lesson4&action=2

_________________
"Du musst ein Schwein sein in dieser Welt, sangen die Prinzen, das ist so 1.0. Du musst auf YouTube zeigen, dass dir dein Schweinsein gefällt, das ist leuchtendes, echtes Web 2.0."
- Hal Faber

Meine Homepage: http://laboda.delphigl.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Apr 15, 2005 12:54 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Bitte benutzt aber nicht die Glaux zum Texturen laden. Die ist alt umständlich und doof. ;-) Alternativen siehe hier. Ich empfehle natürlich den Obersten. Ist ja klar. :twisted:

Als erstes solltest du die Textur bearbeiten. Damit kannst du momentan noch nichts anfangen. Im DF habe ich ja gesehen, dass du da gerne einen Planeten reinbasteln möchtest und dass sie im Vordergrund sein soll. Also musst du der Textur beibringen, dass sie an gewissen stellen Transparent sein sollst. Das kannst du Mittels Ebenenmaske im Gimp und PhotoShop. Also entsprechend das was durchsichtig sein soll musst du Transparent machen. Speichern musst du die Textur dann als TGA.

Zum Rendern gehst du dann folgendermaßen vor. Du zeichnest deine Szene. Im 3D Modus anschließend wechselst du dann in den 2D Modus (glOrtho) und Zeichnest eine Fläche mit der Textur über den kompletten Bildschirm.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Apr 15, 2005 14:28 
Offline
DGL Member

Registriert: Fr Apr 15, 2005 12:31
Beiträge: 14
Vielen Dank an euch alle!

Ich werde mich direkt einarbeiten :)
Wenn ich Ergebnisse erreiche, dann werde ich diese Vorführen :)


Gruß

David


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Apr 15, 2005 17:12 
Offline
DGL Member

Registriert: Fr Apr 15, 2005 12:31
Beiträge: 14
Hm, ich habe mir das mal angeschaut... Es gab doch mal ein neutrales Template für GL, oder?
Ich habe mir das Template hier geladen: OpenGL 1.2 Template (VCL)
Aber da ist ja die Pyramide und der Text enthalten. Das sieht irgendwie so vollgestopft aus.
Ich habe eine schlankere Variante in erinnerung... Könnt ihr mir sagen, wie ein wirklich nacktes Grundgerüst aussieht, ohne irgendwelchen SchnickSchnack? Also es soll einfach nur ein schwarzes Fenster geöffnet werden.

Viele Grüße
David


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Apr 15, 2005 22:29 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Nimm das 1.5er Template und wirf alles raus, was du net brauchst.

Wenn du bedenken wegen der DGLOpenGL.pas hast. Keine Angst der Header is auf dem Weg der Offizielle JEDI-OpenGL Header zu werden ;) Die Vorzüge findest du hier nochmal: http://wiki.delphigl.com/index.php/DGLOpenGL.pas 8)

Sicherlich prakitsch wäre es, wenn du Vorder und Hintergrund einzeln renderst.

Also zuerst Tiefenpuffer sperren und Hintergrund Zeichnen (Ähnlich z.B. einer Skybox nur mit einer Seite)
Dann Tiefenpuffer entsperren und deine Weltraumobjekte Zeichnen (Planeten, Asteroiden, Raumschiffe).
Dann mittels AlphaTest die Sichtbaren Teile der GUI im 2D Modus über die Szene malen. (Tiefentest kann zut sicherheit ausgeschaltet werden. Muss aber net;) )

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Apr 16, 2005 12:50 
Offline
DGL Member

Registriert: Fr Apr 15, 2005 12:31
Beiträge: 14
Ich habe mir das Template 1.5 VCL Runtergeladen.
Dann habe ich versucht folgenden Code einfach mal einzubauen

glBegin(GL_TRIANGLES);
glVertex3f(-1,0,0);
glVertex3f( 0,1,0);
glVertex3f( 1,0,0);
glEnd;


Das habe ich nach BuildFont() in der TGLForm.FormCreate(Sender: TObject); Funktion eingebaut.
Allerdings sehe ich immer nur schwarz. Wo baue ich meine Funktionen ein?


Viele Grüße

David


P.S. Ich habe keine Ahnung, ob ich einfach so einen neuen Thread dafür aufmachen sollte...
Also antworte ich einfach auf meinen eigenen....


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Apr 16, 2005 16:02 
Offline
DGL Member

Registriert: Mi Apr 13, 2005 16:06
Beiträge: 67
Wohnort: Fulda
Yooda hat geschrieben:
Ich habe mir das Template 1.5 VCL Runtergeladen.
Dann habe ich versucht folgenden Code einfach mal einzubauen

glBegin(GL_TRIANGLES);
glVertex3f(-1,0,0);
glVertex3f( 0,1,0);
glVertex3f( 1,0,0);
glEnd;


Das habe ich nach BuildFont() in der TGLForm.FormCreate(Sender: TObject); Funktion eingebaut.
Allerdings sehe ich immer nur schwarz. Wo baue ich meine Funktionen ein?


Die richtige Stelle für alles, was gezeichnet werden soll, ist die Prozedur ApplicationEventsIdle. Wie du vielleicht gesehen hast, steht in FormCreate unter BuildFont Application.OnIdle := ApplicationEventsIdle. Das bewirkt, dass immer dann die o.g. Prozedur aufgerufen wird, wenn dein Programm gerade nichts zu tun hat (idle=Leerlauf).
Der Hintergrund dessen ist, dass bei OpenGL alles, was sichtbar sein soll, für jedes Bild neu gezeichnet werden muss (bei flüssiger Darstellung durchaus 100 Bilder pro Sekunde, die alle komplett neu gezeichnet weren). Deswegen stehen alle Zeichenbefehle in der Prozedur, die quasi endlos oft (= bis das Programm beendet wird) aufgerufen wird.

In die Prozedur ApplicationEventsIdle schreibst du deine Zeichenbefehle zwischen die Befehle glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT) und ShowText.
Vor den eigentlichen Zeichenbefehlen solltest du noch mittels glTranslatef die Kamera nach hinten verschieben (z.B. um 5 Einheiten: glTranslatef(0.0, 0.0, -5.0), denn sonst sind Kamera und das, was du zeichnest, genau am selben Punkt und du wirst wieder nur einen schwarzen Bildschirm zu Gesicht bekommen.

Schau dir zu diesen Themen doch mal die Einsteiger-Tutorials "Entdeckung einer neuen Welt" und "Eine Welt des Grauens" an, da steht eigentlich alles drin, was du für den Anfang wissen musst.

Robert


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Apr 16, 2005 19:06 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Ja stimmt genau. Wobei man jetzt aus ästethischen gründen das zu renderde Zeug net direkt ins OnIdle schreiben muss, sondern sich ne nette Renderprocedur schreibt die von onIdle aufgerufen wird. Im OnIdle kann man dann noch Sachen wie Framecounter einbauen.

@Magellan (in der Hoffnung, dass du das ließt): Das ist jetzt schon der 3. dem der OpenGL Quickstart geholfen hätte. Wann stellst du den den Online? *drängel* ;)

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 9 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:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.014s | 17 Queries | GZIP : On ]