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

Aktuelle Zeit: Sa Jul 12, 2025 19:02

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



Ein neues Thema erstellen Auf das Thema antworten  [ 45 Beiträge ]  Gehe zu Seite Vorherige  1, 2, 3
Autor Nachricht
 Betreff des Beitrags:
BeitragVerfasst: Sa Mai 24, 2003 19:19 
Offline
DGL Member
Benutzeravatar

Registriert: So Mai 11, 2003 10:36
Beiträge: 285
Wohnort: Oldenburg
Programmiersprache: Object Pascal
wenn ich mich jetzt bewege, gibt es aber ein paar grafik fehler, warum ?

_________________
MFG<br> Michael Springwald, <br>
Bitte nur Links in Deutsch, nutze überwiegend Lazarus


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Mai 25, 2003 08:40 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Dez 13, 2002 12:18
Beiträge: 1063
Die Parameter habe ich eigentlich absichtlich nicht hingeschrieben, um dich zu animieren selbst in der Delphi Hilfe (Win32 SDK) oder dem OpenGL Red Book nachzusehen (was du bei dir unbekannten Kommandos generell tun solltest) ...
Face stellt ein, ob Materialparameter für Vorderseiten/Rückseiten oder beide geändert werden, Mode ist der geänderte Materialparameter (Ambient, Diffuse, Ambient und Diffuse, Specular, Emission).

Die "Grafikfehler" (gut, dass ich das Demo auch ein bissel getestet habe, sonst hätte ich keine Ahnung, was du meinst - unbedingt klarer ausdrücken) - entstehen dadurch, dass bei Würfeln, die eigentlich bereits von einem vorderen Würfel verdeckt werden, dennoch die Vorderseite gezeichnet wird - und da diese sich eine Kante mit der Oberseite des vorderen Würfel teilt, kann OpenGL nicht wirklich entscheiden welche gezeichnet wird - deshalb scheinen manchmal die anders beleuchteten horizontalen Linien der obersten Kanten der Vorderseiten der hinteren Würfel durch.

Was ist zu tun:
- die Unterseiten und Hinterseiten der Würfel kannst du dir evtl. sparen, da du die in Skyroads eh nur von vorn/oben siehst
- Wenn du einen Würfel zeichnest zeichnest du die Oberseite immer, Vorder/linke/rechte Seite nur, wenn an dieser Seite kein anderer Würfel benachbart ist (da schaust du im Array nach)

Erstens wird das Programm dadurch schneller, es ist einfach zu implementieren, UND es werden keine Grafikfehler mehr dargestellt, . Der Traum einer jeden Optimierung ;) .
Auf jeden Fall ist es eine gute Übung für dich, da du dich jetzt auch ein wenig mit den Zeichenkommandos von OpenGL (in diesem Fall wie GL_QUADS funktionieren) auseinandersetzen musst. Versuch es bitte selbst - und wenn du es absolut nicht schaffen sollest, helfe ich dir dann gern weiter (sollte aber durchaus für dich machbar sein).

_________________
Viel Spaß beim Programmieren,
Mars
http://www.basegraph.com/


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Mai 25, 2003 20:08 
Offline
DGL Member
Benutzeravatar

Registriert: So Mai 11, 2003 10:36
Beiträge: 285
Wohnort: Oldenburg
Programmiersprache: Object Pascal
danke, werde ich versuchen, wie kann ich die z pos nutzen ?
also das kasten auch übereinander gestapllet werden können wie es in syk der fall ist ?

_________________
MFG<br> Michael Springwald, <br>
Bitte nur Links in Deutsch, nutze überwiegend Lazarus


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Mai 25, 2003 22:09 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Dez 13, 2002 12:18
Beiträge: 1063
Am besten die Fantasie ein wenig spielen lassen...

du kannst

- mehrere (z.B. 5) Ebenen aus Booleanfeldern erstellen, die du übereinanderstapelst, oder
- im Konkreten Fall von Skyroads, wo es nicht notwendig ist, mehr als eine Höheninformation pro Feld zu sichern, einfach ein zweidimensionales Feld aus Bytes oder Integern erstellen, bei dem der jeweilige Wert die Anzahl der übereinandergestapelten Würfel repräsentiert

_________________
Viel Spaß beim Programmieren,
Mars
http://www.basegraph.com/


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Mai 26, 2003 13:46 
Offline
DGL Member
Benutzeravatar

Registriert: So Mai 11, 2003 10:36
Beiträge: 285
Wohnort: Oldenburg
Programmiersprache: Object Pascal
ich bekomme diesen grafik fehler nicht, weg :( habe alles versucht....
könntes du ein beispeil geben, wie man mehre ebenen in OpeGL dastellen könnte ???
ich habe da überhaubt keine idee, wie es gehen könnte :(

_________________
MFG<br> Michael Springwald, <br>
Bitte nur Links in Deutsch, nutze überwiegend Lazarus


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Mai 26, 2003 13:57 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Also ein wenig Eigeninitiative kann man doch erwarten, oder?

Schau doch mal bei google nach : <a href='http://www.google.de/search?q=glColorMaterial&ie=UTF-8&oe=UTF-8&hl=de&btnG=Google+Suche&meta=' target='_blank'>http://www.google.de/search?q=glColorMater...gle+Suche&meta=</a>
Dort findest du direkt im ersten Link ne detaillierte Beschreibung der Funktion und der Parameter die man ihr übergibt.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Mai 26, 2003 20:53 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Dez 13, 2002 12:18
Beiträge: 1063
Na ja, ich hab' dir ja versprochen, dass ich dir weiterhelfe, wenn's gar nicht mehr klappt. Ich nehme an deine Programmiererfahrung ist noch nicht besonders groß - und in der Hoffnung, dass es dich weiter bringt, sind hier halt meine Tipps in Code umgesetzt:

1) Culling von Würfelseiten, die von anderen Würfeln verdeckt werden (dadurch Vermeidung von Grafikfehlern)
2) Darstellung mehrerer Ebenen

- aber Hand aufs Herz, soo unverständlich habe ich mich doch vorher auch nicht ausgedrückt, dass die Umsetzung in Delphi Code ein Ding der Unmöglichkeit gewesen wäre. Wie auch immer, hier hast du das Demo

<a href='http://www.delphigl.com/upload/conn_cubes_mars_2.zip' target='_blank'>http://www.delphigl.com/upload/conn_cubes_mars_2.zip</a>

An dieser Stelle darfst du dich ruhig mal bei Phobeus und den anderen Mitgliedern des DGL Teams bedanken, die es mit dem Forum und dem Uploadcenter erst ermöglicht haben, dass so etwas ohne großen Aufwand möglich ist.

Übrigens, die Motivation dir zu helfen, wird gleich viel größer, wenn man wirklich den Eindruck hat, dass du versuchst weiterzukommen - wenn du also das nächste Mal möchtest, dass ich dir weiterhelfe - und (nicht nur) ich bin gerne bereit dazu - erwarte ich einen genaue Darstellung des Problems, also z.B. Art und Häufigkeit der aufgetretenen Grafikfehler, sowie eine Auflistung, was du alles versucht hast, den Effekt zu erreichen, bzw. das Problem zu beheben.
Das soll jetzt keine Pflanzerei sein, sondern dich vielmehr dazu animieren, wirklich selbst auch etwas Hirnschmalz in eine Problemlösung zu stecken - selbst wenn deine Lösung umständlich sein sollte, oder du auf gar keinen grünen Zweig kommst, schlussendlich wird man hauptsächlich aus Fehlern klug.

_________________
Viel Spaß beim Programmieren,
Mars
http://www.basegraph.com/


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Mai 27, 2003 14:04 
Offline
DGL Member
Benutzeravatar

Registriert: So Mai 11, 2003 10:36
Beiträge: 285
Wohnort: Oldenburg
Programmiersprache: Object Pascal
Ich habe in Delphi bereis große programmier erfahrungen, nur noch nicht mit OpenGl unter Delphi.

Vielen Dank für eure großzugige hilfe :)

habe das Programm soweit erweitert, das die Map nicht nur ein bool ist sonder ein record mit den variablen Color und Visible :)
und das funktioniert jetzt auch wunderbar mit den farhben....

_________________
MFG<br> Michael Springwald, <br>
Bitte nur Links in Deutsch, nutze überwiegend Lazarus


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Mai 27, 2003 18:19 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Dez 13, 2002 12:18
Beiträge: 1063
Sehr schön ... dann kann man ja bald eine Delphi Version von Skyroads in der Projektesektion bewundern ;) .

_________________
Viel Spaß beim Programmieren,
Mars
http://www.basegraph.com/


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Mai 31, 2003 17:47 
Offline
DGL Member
Benutzeravatar

Registriert: So Mai 11, 2003 10:36
Beiträge: 285
Wohnort: Oldenburg
Programmiersprache: Object Pascal
habe noch eine frage: wie kann ich den blick winkel ändern ?
habe alles versucht, aber ich schafe es einfach nicht
habe das was in
Code:
  1.  
  2. procedure ResizeViewport(Width: GLsizei; Height: GLsizei);
  3.  
  4.  &nbsp;var
  5.  &nbsp; &nbsp;fWidth, fHeight: GLdouble;
  6.  
  7.  &nbsp;begin
  8.  &nbsp; &nbsp;w:=Width;
  9.  &nbsp; &nbsp;h:=height;
  10.  
  11.  &nbsp; &nbsp;if (Height=0) then &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;// prevent divide by zero
  12.  &nbsp; &nbsp; &nbsp;Height:=1;
  13.  &nbsp; &nbsp;glViewport(0, 0, Width, Height); &nbsp; &nbsp;// reset viewport and perspective transformation
  14.  
  15.  &nbsp; &nbsp;glMatrixMode(GL_PROJECTION);
  16.  &nbsp; &nbsp;glLoadIdentity();
  17.  &nbsp; &nbsp;fWidth := Width;
  18.  &nbsp; &nbsp;fHeight := Height;
  19.  
  20.  &nbsp; &nbsp;gluPerspective(45, fWidth/fHeight, 0.1, 100);
  21.  
  22.  &nbsp; &nbsp;glMatrixMode(GL_MODELVIEW);
  23.  &nbsp;end;
  24.  

genommen und habe es per tasten komdos aufgerufen:
Code:
  1.  
  2.  
  3.  if Key[ord('G')] then begin
  4.  &nbsp; &nbsp; &nbsp;glViewport(0, 0, W, H); &nbsp; &nbsp;// reset viewport and perspective transformation
  5.  
  6.  &nbsp; &nbsp; &nbsp;glMatrixMode(GL_PROJECTION);
  7.  &nbsp; &nbsp; &nbsp;glLoadIdentity();
  8.  &nbsp; &nbsp; &nbsp;fW := W;
  9.  &nbsp; &nbsp; &nbsp;fH := H;
  10.  
  11.  &nbsp; &nbsp; &nbsp;gluPerspective(46, 2, 0.1, 100);
  12.  
  13.  &nbsp; &nbsp; &nbsp;glMatrixMode(GL_MODELVIEW);
  14.  &nbsp; &nbsp;end;
  15.  

aber es passiert nicht das was ich mir vorgestellt hatte:)

bis ich eine Sykroades version veröffentliche wird es wohl noch ein wenig dauern(ein jahr ? zwei jahre ?.....)

_________________
MFG<br> Michael Springwald, <br>
Bitte nur Links in Deutsch, nutze überwiegend Lazarus


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Mai 31, 2003 18:03 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Probiers mal mit gluLookAt.Diese Funtkion setzt die Kameraposition und Ausrichtung.
Einmal hier : <a href='http://www.3dsource.de/faq/viewing.htm' target='_blank'>http://www.3dsource.de/faq/viewing.htm</a> (Deutsch)
Und hier : <a href='http://msdn.microsoft.com/library/default.asp?url=/library/en-us/opengl/glufnc01_8wtw.asp' target='_blank'>http://msdn.microsoft.com/library/default....ufnc01_8wtw.asp</a> (Englisch)

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Mai 31, 2003 18:42 
Offline
DGL Member
Benutzeravatar

Registriert: So Mai 11, 2003 10:36
Beiträge: 285
Wohnort: Oldenburg
Programmiersprache: Object Pascal
danke werde ich mir anschauen:)

_________________
MFG<br> Michael Springwald, <br>
Bitte nur Links in Deutsch, nutze überwiegend Lazarus


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Mai 31, 2003 18:53 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Dez 13, 2002 12:18
Beiträge: 1063
^^ das war übrigens ich - beim Mozilla ist die automatische Anmeldung noch nicht aktiviert :( .

_________________
Viel Spaß beim Programmieren,
Mars
http://www.basegraph.com/


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Jun 02, 2003 19:54 
Offline
DGL Member
Benutzeravatar

Registriert: So Mai 11, 2003 10:36
Beiträge: 285
Wohnort: Oldenburg
Programmiersprache: Object Pascal
danke, werde es testen:)

_________________
MFG<br> Michael Springwald, <br>
Bitte nur Links in Deutsch, nutze überwiegend Lazarus


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 45 Beiträge ]  Gehe zu Seite Vorherige  1, 2, 3
Foren-Übersicht » Programmierung » Einsteiger-Fragen


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 14 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.017s | 15 Queries | GZIP : On ]