![]() |
Re: OpenGL Einsteiger Frage
Hallo,
danke es klapt wunderbar, hätte ich vorher schon gewußt das es so einfach ist^^ schön wie du dich um mich kümmerst :-D Eine letzte Frage habe ich noch, dann sollte ich mal so weit sein, mein erstes kleineres Programm zum schreiben: Ich habe mir mit
Delphi-Quellcode:
ein Viereck gemacht.
glBegin(GL_Quads);
glcolor3f(1,0,0); glVertex3f(0,0,0); glVertex3f(1,0,0); glVertex3f(1,1,0); glVertex3f(0,1,0); glEnd; Mit
Delphi-Quellcode:
Kann ich es um eine Achse drehen.glrotatef(100,0,1,0); Also in diesen Fall um die y-Achse. Um eine bestimmte Achse zu bestimmen, um die sich etwas drehen soll, braucht man einen Punkt + Vektor. Der Vektor ist in meinen Fall (0/1/0) und der Punkt (0/0/0). Wie ich den Vektor ändern kann versteh ich
Delphi-Quellcode:
=
glrotatef(100,0,1,0);
glrotatef(Grad,Vektor_x,Vektor_y,Vektor_z); Aber wie kann ich den Punkt ändern? Ich meine wie kann ich eine Linie angeben, um die das Viereck rotieren soll, die nicht vom 0/0/0 Punkt ausgeht? Hoffe ich habe mein Problem gut genug erklärt. |
Re: OpenGL Einsteiger Frage
Also kleiner Hoffnungschimmer.
Das "Game" war mein 1. OpenGl Project. Damit habe ich OpenGL gelernt und genau gesagt lerne ich es ja eigentlich immer noch. Da mir der schatten ja leider immer noch fehlt :( zu Deiner Frage. Probier mal
Delphi-Quellcode:
Wenn ich dich Richtig verstanden habe müste das deiner Frage entsprechen.
Type T3dPoint = Record
x,y,z:single; end; var yangle,rotpoint:T3dPoint; begin .. gltrangslatef(-rotpoint.x,-rotpoint.y,-rotpoint.z); glrotatef(angle,0,1,0); gltrangslatef(rotpoint.x,rotpoint.y,rotpoint.z); .. End; |
Re: OpenGL Einsteiger Frage
Hallo,
ja das wars danke. So jetzt hab ich schon wieder eine Frage :-D Wenn ich mit
Delphi-Quellcode:
ein Viereck mache, und ich drehe es, dann sieht man, das das Viereck keine "dicke" hat, es ist dünn wie Pappier.
glVertex3f(0,0,0);
glVertex3f(1,0,0); glVertex3f(1,1,0); glVertex3f(0,1,0); Kann ich irgendwie eine "dicke" machen, also zum Beispiel ein Quader, oder einen anderen 3D Körper? |
Re: OpenGL Einsteiger Frage
Nein. Wenn dann musst du einen Quader bauen um einen Dicke darzustellen.
|
Re: OpenGL Einsteiger Frage
HI,
das hab ich eh schon gemacht, dachte es geht einfache :-( Aber ein anderes problem, ich lade jetzt so Texturen
Delphi-Quellcode:
procedure TForm1.InitTextur;
begin LoadTexture('1.jpg', textur1); LoadTexture('2.jpg', textur2); end; Und so dann auf die Flächen
Delphi-Quellcode:
Aber bei beiden Flächen wird die Textur 1 angezeigt, warum?
glBegin(GL_Quads);
glBindTexture(GL_TEXTURE_2D,textur1); glTexCoord2f(0, 0); glVertex3f(0,0,0); glTexCoord2f(0, 1); glVertex3f(1,0,0); glTexCoord2f(1, 1); glVertex3f(1,1,0); glTexCoord2f(1, 0); glVertex3f(0,1,0); glBindTexture(GL_TEXTURE_2D,textur2); glTexCoord2f(0, 0); glVertex3f(0,0,1); glTexCoord2f(0, 1); glVertex3f(1,0,1); glTexCoord2f(1, 1); glVertex3f(1,1,1); glTexCoord2f(1, 0); glVertex3f(0,1,1); glEnd; Bzw. wie mach ich es richtig? |
Re: OpenGL Einsteiger Frage
Kan grad nur raten, aber mach mal den GLQuad Mode zwischen drin zu und wieder auf
Delphi-Quellcode:
Übrigens wenn ind GLcolor4f andere werte sind kannst du deine Texturen damit ein wenig "einfärben" ;)
glcolor4f(1,1,1,1);
glBindTexture(GL_TEXTURE_2D,textur1); glBegin(GL_Quads); glTexCoord2f(0, 0); glVertex3f(0,0,0); glTexCoord2f(0, 1); glVertex3f(1,0,0); glTexCoord2f(1, 1); glVertex3f(1,1,0); glTexCoord2f(1, 0); glVertex3f(0,1,0); glEnd; glBindTexture(GL_TEXTURE_2D,textur2); glBegin(GL_Quads); glTexCoord2f(0, 0); glVertex3f(0,0,1); glTexCoord2f(0, 1); glVertex3f(1,0,1); glTexCoord2f(1, 1); glVertex3f(1,1,1); glTexCoord2f(1, 0); glVertex3f(0,1,1); glEnd; |
Re: OpenGL Einsteiger Frage
Hallo,
danke so gehts. So jetzt probier ich aber echt mal ein kleines Spiel, kann man eigentlich bei den Texturen aktivieren, das sie Transparent sein sollen? |
Re: OpenGL Einsteiger Frage
Liste der Anhänge anzeigen (Anzahl: 1)
Ja und Nein,
Das geschieht dann über einen Aplha Kanal. In Balanced mache ich das zumindest so. da es dafür aber noch Kein Sample auf meiner HP Gibt. habe ich dir einfach mal die entsprechende Unit aus Balanced hochgeladen. Sie ist aber nicht Kommentiert :( Für Dich Wichtig ist die Klasse "TOpenGL_Transparent_Image" denn die Zeigt wie man das Macht. |
Re: OpenGL Einsteiger Frage
Liste der Anhänge anzeigen (Anzahl: 2)
Ich tuh Dir auch mal ein Peispiel trann stellen. :mrgreen:
Ein VCL - OpenGL Sample mit Licht, Material und Texturing sowie einfaches Blending bzw. Transparenz. Alle gebrauchten Dateien sind mit dabei. (hoff ich mal :stupid: ) |
Re: OpenGL Einsteiger Frage
Hallo,
ich habe mir beide Lösungen angeschaut, aber ich glaub das ist doch zuviel für den Anfang, ich werde mal mit einfachen Sachen anfangen. Wie macht man eigentlich eine Kugel? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:24 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz