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

Aktuelle Zeit: Fr Jul 18, 2025 14:26

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



Ein neues Thema erstellen Auf das Thema antworten  [ 12 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Kamera
BeitragVerfasst: Di Aug 09, 2005 20:02 
Offline
DGL Member

Registriert: Di Aug 09, 2005 19:38
Beiträge: 5
Hallo,

ich bin ein Neuling bzgl. der 3D-Programmierung, daher könnten meine Fragen etwas dumm sein. :)

1.) Ich habe ein einfaches Objekt und möchte dies von allen Seiten betrachten können. Dazu berechne ich die Koordinaten der Dreiecke des Objektes ständig neu. Dies scheint mir aber sehr aufwändig. Gibt es nicht eine (einfache) Möglichkeit nur eine Kamera um das Objekt zu bewegen?

2.) Im Tutorial sind mehrere Kameramodi realiesiert. Dabei blicke ich nicht mehr durch (das kliegt vielleicht auch daran, dass ich schon den halben Tag am Programm sitze und nun den Wald vor lauter Bäumen nicht mehr sehe). Gibt es irgendwo ein einfacheres Beispiel einer Kamerasteuerung? (Ich habe leider bei den "Files" nichts entsprechendes gefunden.)

3.) Beim Tutorial wird "THomogeneousMatrix" verwendet. Für mein Delphi5 ist dieser Bezeichner jedoch unbekannt. Habe ich irgendwas übersehen, damit ich "THomogeneousMatrix" verwenden kann?


Vielen Dank im Voraus.
Shuft, der sich wahrscheinlich mal den Pause gönnen sollte


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Aug 09, 2005 21:27 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mai 14, 2004 18:56
Beiträge: 804
Wohnort: GER/OBB/TÖL-WOR/Greiling
Wieso Punkte neu berechnen, wenn du einfach das gesamte Universum verschieben/drehen kannst?

Code:
  1. procedure renderobject;
  2. begin
  3. glbegin(GL_TRINALES);
  4.  //rendern
  5. glend;
  6. end;
  7.  
  8. begin
  9. gltranslatef(postion[0],position[1],position[2]);
  10. glrotatef(rotation[0],1,0,0);
  11. glrotatef(rotation[1],0,1,0);
  12. glrotatef(rotation[2],0,0,1);
  13.  
  14. renderobject;
  15. end;


du musst nur noch position und rotation entsprechend belegen. z.B. mit mausbewegungen(mousemove) und tastendrücken(keypress)

_________________
Bild

"User Error. Replace User and hit Continue."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Aug 10, 2005 06:45 
Offline
DGL Member

Registriert: Mo Jan 20, 2003 20:10
Beiträge: 424
Wohnort: nähe Starnberg
THomogeneousMatrix kommt aus der Unit Geometry, welche ursprünglich von Mike Lischke stammt. Sie enthält viele Typen und Funktionen zur Berechnung von Vectoren, Matrizen usw. Mittlerweile ist die Unit in die JEDI - Library und SDL aufgenommen, kann jedoch separat verwendet werden. Im DGL-SDK liegt diese Unit später im dglsdk/lib - Verzeichnis. Damit die Unit ohne JEDI kompiliert werden kann, muß die Zeile "{$I jedi-sdl.inc}" auskommentiert werden.

Gruß
Thomas

_________________
http://www.seban.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Aug 10, 2005 09:39 
Offline
DGL Member
Benutzeravatar

Registriert: So Dez 21, 2003 17:36
Beiträge: 141
Hi,
zu 2.)
Du hast ja ne Kameraposition und Variablen dafür, die du dann bei glTranslatef eingibst. Zur Drehung brauchst du nen Look-Vektor, also nen Vektor der angibt, in welche Richtung du guckst, den berechnest du aus den Variablen, mit denen du die Kamera rotierst. Wenn du die Kamera bewegen willst, bei Tastendruck, musst du nur noch den Look-Vektor zur Kameraposition dazu addieren und schon kannst du dich frei im Raum bewegen.
Zum Look-Vektor: http://www.delphigl.com/script/do_show. ... 1&action=2


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Aug 10, 2005 10:47 
Offline
DGL Member

Registriert: Di Aug 09, 2005 19:38
Beiträge: 5
danke für die schnellen Antworten.


Leider hänge ich schon wieder bei einem Problem fest. :oops:
Code:
  1. glrotatef(rotation[0],1,0,0);

hierbei beschwert sich Delphi über inkompatible Typen (Single und TVector4f),obwohl ich -wie im Tutorial- angegeben habe:

Code:
  1. Rotation  : THomogeneousMatrix;
  2. Position  : TVertex;


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Aug 10, 2005 12:03 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 02, 2003 12:47
Beiträge: 300
Wohnort: Marburg
glrotatef benötigt einen winkel (w) und drei singles (x,y,z), die den vektor um den dann gedreht werden soll geben!
quasie:

glrotatef(w,x,y,z);

einfach ein par einfache beispiele programmieren und mit den funktion (rotate, scale, translate) rumprobieren, denn merkt mann schnell, wie es funktioniert.

Die reinfolge der Befehle spielt dabei ne entscheidene Rolle...

_________________
Nothing, oh sweet nothing,
today we are doing nothing at all...
http://www.geo-progs.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Aug 10, 2005 12:59 
Offline
DGL Member

Registriert: Di Aug 09, 2005 19:38
Beiträge: 5
Jetzt hab' ich es kappiert. :D

Danke.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Aug 10, 2005 22:50 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Was sehen meine kranken Augen? Fragen zu OpenGL Befehlen OHNE einen hinweis auf unser Wiki in der Antwort... :roll:

Unser Wiki ist dein Freund: http://wiki.delphigl.com/index.php/GlRotate

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Aug 11, 2005 10:46 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mai 14, 2004 18:56
Beiträge: 804
Wohnort: GER/OBB/TÖL-WOR/Greiling
man kann auch einfach in den Code klicken...

_________________
Bild

"User Error. Replace User and hit Continue."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Aug 11, 2005 14:21 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Stimmt... ;)
Ob das schon jemand gemerkt hat... 8)

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Aug 11, 2005 15:40 
Offline
DGL Member

Registriert: Mo Dez 20, 2004 08:58
Beiträge: 442
Wohnort: Mittweida (Sachsen)
Dumm nur, dass die Artikel für glRotatef und glTranslatef keinen Text enthalten :cry:

_________________
Manchmal sehen Dinge, die wie Dinge aussehen wollen, mehr wie Dinge aus, als Dinge.
<Esmerelda Wetterwax>
Es kann vorkommen, dass die Nachkommen trotz Abkommen mit ihrem Einkommen nicht auskommen und umkommen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Aug 11, 2005 17:06 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Das is ein Bug in unserer geilen Linkmaschine ;) Probiers mal mit glRotate. Der Artikel is das was du suchst ;)

_________________
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  [ 12 Beiträge ] 
Foren-Übersicht » Programmierung » Einsteiger-Fragen


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 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.009s | 16 Queries | GZIP : On ]