AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi OpenGL Einsteiger Frage
Thema durchsuchen
Ansicht
Themen-Optionen

OpenGL Einsteiger Frage

Ein Thema von ferby · begonnen am 23. Nov 2006 · letzter Beitrag vom 28. Nov 2006
Antwort Antwort
Seite 2 von 2     12   
ferby

Registriert seit: 15. Aug 2004
Ort: Wien
841 Beiträge
 
Delphi 2010 Enterprise
 
#11

Re: OpenGL Einsteiger Frage

  Alt 23. Nov 2006, 21:05
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


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:
  glBegin(GL_Quads);

  glcolor3f(1,0,0);

  glVertex3f(0,0,0);
  glVertex3f(1,0,0);
  glVertex3f(1,1,0);

  glVertex3f(0,1,0);
  glEnd;
ein Viereck gemacht.


Mit
Delphi-Quellcode:

glrotatef(100,0,1,0);
Kann ich es um eine Achse drehen.

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

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.
  Mit Zitat antworten Zitat
Benutzerbild von Corpsman
Corpsman

Registriert seit: 8. Nov 2005
Ort: nähe Stuttgart
981 Beiträge
 
Delphi XE2 Professional
 
#12

Re: OpenGL Einsteiger Frage

  Alt 23. Nov 2006, 21:39
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:
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;
Wenn ich dich Richtig verstanden habe müste das deiner Frage entsprechen.
Uwe
My Sitewww.Corpsman.de

My marble madness clone Balanced ( ca. 70,0 mb ) aktuell ver 2.01
  Mit Zitat antworten Zitat
ferby

Registriert seit: 15. Aug 2004
Ort: Wien
841 Beiträge
 
Delphi 2010 Enterprise
 
#13

Re: OpenGL Einsteiger Frage

  Alt 24. Nov 2006, 18:28
Hallo,

ja das wars danke.


So jetzt hab ich schon wieder eine Frage



Wenn ich mit

Delphi-Quellcode:
  glVertex3f(0,0,0);
  glVertex3f(1,0,0);
  glVertex3f(1,1,0);
  glVertex3f(0,1,0);
ein Viereck mache, und ich drehe es, dann sieht man, das das Viereck keine "dicke" hat, es ist dünn wie Pappier.

Kann ich irgendwie eine "dicke" machen, also zum Beispiel ein Quader, oder einen anderen 3D Körper?
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#14

Re: OpenGL Einsteiger Frage

  Alt 24. Nov 2006, 19:04
Nein. Wenn dann musst du einen Quader bauen um einen Dicke darzustellen.
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
ferby

Registriert seit: 15. Aug 2004
Ort: Wien
841 Beiträge
 
Delphi 2010 Enterprise
 
#15

Re: OpenGL Einsteiger Frage

  Alt 24. Nov 2006, 20:23
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:
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;
Aber bei beiden Flächen wird die Textur 1 angezeigt, warum?
Bzw. wie mach ich es richtig?
  Mit Zitat antworten Zitat
Benutzerbild von Corpsman
Corpsman

Registriert seit: 8. Nov 2005
Ort: nähe Stuttgart
981 Beiträge
 
Delphi XE2 Professional
 
#16

Re: OpenGL Einsteiger Frage

  Alt 24. Nov 2006, 20:55
Kan grad nur raten, aber mach mal den GLQuad Mode zwischen drin zu und wieder auf

Delphi-Quellcode:
  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;
Übrigens wenn ind GLcolor4f andere werte sind kannst du deine Texturen damit ein wenig "einfärben"
Uwe
My Sitewww.Corpsman.de

My marble madness clone Balanced ( ca. 70,0 mb ) aktuell ver 2.01
  Mit Zitat antworten Zitat
ferby

Registriert seit: 15. Aug 2004
Ort: Wien
841 Beiträge
 
Delphi 2010 Enterprise
 
#17

Re: OpenGL Einsteiger Frage

  Alt 24. Nov 2006, 21:11
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?
  Mit Zitat antworten Zitat
Benutzerbild von Corpsman
Corpsman

Registriert seit: 8. Nov 2005
Ort: nähe Stuttgart
981 Beiträge
 
Delphi XE2 Professional
 
#18

Re: OpenGL Einsteiger Frage

  Alt 25. Nov 2006, 07:50
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.
Angehängte Dateien
Dateityp: pas opengl_transparents_127.pas (9,3 KB, 9x aufgerufen)
Uwe
My Sitewww.Corpsman.de

My marble madness clone Balanced ( ca. 70,0 mb ) aktuell ver 2.01
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#19

Re: OpenGL Einsteiger Frage

  Alt 25. Nov 2006, 15:35
Ich tuh Dir auch mal ein Peispiel trann stellen.

Ein VCL - OpenGL Sample mit Licht, Material und Texturing sowie einfaches Blending bzw. Transparenz.

Alle gebrauchten Dateien sind mit dabei. (hoff ich mal )
Miniaturansicht angehängter Grafiken
preview_593.jpg  
Angehängte Dateien
Dateityp: rar opengl_vcl_sample_124.rar (271,2 KB, 15x aufgerufen)
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
ferby

Registriert seit: 15. Aug 2004
Ort: Wien
841 Beiträge
 
Delphi 2010 Enterprise
 
#20

Re: OpenGL Einsteiger Frage

  Alt 28. Nov 2006, 01:31
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?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:32 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz