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

Aktuelle Zeit: Fr Jul 18, 2025 04:40

Foren-Übersicht » Programmierung » OpenGL
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: [gelöst] fehlende Tiefendimension
BeitragVerfasst: Mo Sep 07, 2009 16:43 
Offline
DGL Member

Registriert: Mi Nov 12, 2008 18:27
Beiträge: 134
hallo - ich hab nen problem: ich will 3 ebenen hintereinander auf den bildschirm bringen mit je neun quadraten

soll von vorne ungefähr so aussehen:
X X X
X X X
X X X

dazu hab ich mir ne procedure gebastelt:


Code:
  1. procedure ebenen(x,y,z:integer;a:single); // a ist der abstand
  2. var
  3. countx,county,countz:integer;
  4. begin
  5. glBegin(gl_QUADS);
  6.  for countz := 0 to z-1 do  //lagen hintereinander
  7.   for county := 0 to y-1 do // zeilen
  8.    for countx := 0 to x-1 do
  9.     begin
  10.      glVertex3f( countx+((countx-1)*a), county+((county-1)*a),z);    // links unten
  11.      glVertex3f( countx+((countx-1)*a), county+((county-1)*a)+1,z); // rechts unten
  12.      glVertex3f( countx+((countx-1)*a)+1,county+((county-1)*a)+1,z);//rechts oben
  13.      glVertex3f( countx+((countx-1)*a)+1,county+((county-1)*a),z);//links oben
  14.     end;
  15. glEnd();
  16. end;


diese procedure rufe ich wie folgt auf:

Code:
  1. procedure TMyProgram.DrawScene;
  2. begin
  3.  glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);
  4.   glLoadIdentity();
  5.   glTranslatef(-4,-1.2,-8);
  6.   glrotatef(60,0,1,0);
  7.   ebenen(3,3,3,0.2);
  8. end;


der code lässt sich einfach ins easySDL template kopieren und testen - wäre echt gut wenn jemand ne lösung wüste (nen workaround hab ich schon gefunden ... ich verschiebe einfach jedes mal und ruf die prozedur erneut auf)

hier der workaround der zeigt wies sein sollte (farbigkeit ist hier nur zur verdeutlichung):

Code:
  1. procedure TMyProgram.DrawScene;
  2. begin
  3.  glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);
  4.   glLoadIdentity();
  5.   glTranslatef(-4,-1.2,-8); // ins sichtfeld rücken
  6.   glrotatef(45,0,1,0); //Drehung damit man was sieht
  7.   glTranslatef(0,0,1.5); glcolor3f(0.4,0,0); ebenen(3,3,1,0.2);
  8.   glTranslatef(0,0,1.5); glcolor3f(0,0.5,0); ebenen(3,3,1,0.2);
  9.   glTranslatef(0,0,1.5); glcolor3f(0,0,0.5);  ebenen(3,3,1,0.2);
  10. end;


wenn ich bei diesem workaround die anzahl der ebenen vergrößere entsteht eine "leere" ebene - es scheint also als ob immer nur eine ebene gezeichnet würde ...
über hilfe würde ich mich echt freuen
mfg grey


Zuletzt geändert von grey am Mo Sep 07, 2009 17:19, insgesamt 1-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Sep 07, 2009 17:10 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
Scheint mir so, als ob du beim Aufruf von glVertex3f anstatt z mal countz versuchen solltest (oder halt irgendetwas, was von countz abhängt).

greetings

_________________
If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung.
current projects: ManiacLab; aioxmpp
zombofant networkmy photostream
„Writing code is like writing poetry“ - source unknown


„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Sep 07, 2009 17:19 
Offline
DGL Member

Registriert: Mi Nov 12, 2008 18:27
Beiträge: 134
danke Horazont
- hab wohl echt aufm schlauch gestanden ... muss wirklich nur das z durch countz ersetzt werden und schon läufts wies soll - dank dir

lg grey


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 » OpenGL


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


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.007s | 14 Queries | GZIP : On ]