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

Aktuelle Zeit: Mo Jul 14, 2025 21:48

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



Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 
Autor Nachricht
BeitragVerfasst: Mo Feb 07, 2005 17:17 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Feb 07, 2005 16:57
Beiträge: 3
Wohnort: Wien
Hallo an alle,

Wollte mal aus Testzwecken einen Bildschirmschoner progen. Was mir auch recht gut gelungen ist (Dank div. Tutorials). :D

Soweit so gut ich lasse in einen Raum einen Würfel herumfliegen und rotieren.

Mein Problem ist aber das die Ecken des Würfels öfters verschwinden weiß aber leider nicht warum.

Habe mein Projekt mal hochgeladen. :lol:

http://members.chello.at/markus.schuster/Pfaffl-SCR.zip

Kann mir jemand erklären was ich falsch mach:?:

Thx
Markus


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Feb 07, 2005 17:27 
Offline
DGL Member
Benutzeravatar

Registriert: Di Nov 26, 2002 22:12
Beiträge: 259
Wohnort: Dresden
Mit den Daten, die du hochgeladen hast kann ich nicht viel anfangen, da weder der Quellcode noch eine ausführbare Datei im Archiv enthalten ist.
Ohne das Programm gesehen zu haben würde ich darauf tippen, dass deine Clippingplanes unglücklich gesetzt sind.
Verringere einfach die Entfernung der Nearclippingplane, die du vermutlich mit gluPerspective setzt.

_________________
Nichts auf der Welt ist so gerecht verteilt wie der Verstand. Denn jederman ist überzeugt, dass er genug davon habe.
Rene Descartes, frz. Mathematiker u. Philosoph, 1596-1650


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Feb 07, 2005 17:36 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Feb 07, 2005 16:57
Beiträge: 3
Wohnort: Wien
Ups :oops:

Falschen Ordner gepackt.

Nun sollte alles drauf sein.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Feb 07, 2005 19:45 
Offline
DGL Member
Benutzeravatar

Registriert: Di Nov 26, 2002 22:12
Beiträge: 259
Wohnort: Dresden
Dein Problem ist ein ganz normales Resultat des aktivierten Tiefentests. Dein Würfel wird immer an den Stellen weg geschnitten, an dem die einzelnen Fragmente den Tiefentest nicht bestehen. Das ist ganz logisch, denn immer wenn ein Stück des Würfels weg geschnitten wird liegt eine Wand deines Raumes näher am Betrachter als der Rest des Würfels.

Entweder du renderst auch den Würfel mit deaktiviertem Tiefentest (wobei du hier die einzelnen Seiten der Entfernung zum Betrachter nach sortieren müsstest) oder aber du passt die Werte der Translation und Skalierung so an, dass der Würfel in keinem Fall eine Wand berührt.
Ich habe die Werte wie folgt angepasst:

glTranslatef(lire/50,move/50,-0.1); //wir bewegen alles etwas nach oben oder unten
glScale(scale/50,scale/50, 1/50); //Nun skalieren wir die Szene
Dann noch die Nearclippingplane im OnResize-Ereignis deines Formulars näher herangeholt und dein Problem sollte verschwinden:
gluPerspective(45.0, Width/Height, 0.01, 100.0);

Jedoch ist diese Lösung keine schöne Lösung des Problems, denn sobald du die Größe des Würfels oder des Raumes bzw. die Bewegung des Würfels veränderst musst du erneut passende Werte finden, soweit es dann überhaupt noch welche gibt.

_________________
Nichts auf der Welt ist so gerecht verteilt wie der Verstand. Denn jederman ist überzeugt, dass er genug davon habe.
Rene Descartes, frz. Mathematiker u. Philosoph, 1596-1650


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Feb 07, 2005 20:00 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Genau. Das habe ich auch festgestellt, nachdem ich erst einmal unterbinden musste, dass sich das Programme nach dem Starten sofort wieder beendet.

Allerdings gibt es noch andere Lösungen dafür.
Du könntest a)
nach dem Zeichnen deines Raumes den Tiefenbuffer löschen. glClear(GL_DEPTH_BUFFER_BIT);

b)
wärend des zeichnens deines Raumes das schreiben des Tiefenbuffers verhindern. Was wohl das sinnvollste ist. Dann könntest du dir zu dem Zeitpunkt auch den Tiefentest sparen. Würde ja eh immer erfüllt werden.
glDepthMask(GL_FALSE); verhindert das schreiben
glDepthMask(GL_TRUE); aktiviert es wieder.

c)
die Dimensionen deines Raumes und deines Würfels aneinander anpassen. Dann würde er ganz ohne Tricksen nicht mehr aus dem Raum raus kommen.

Die schnellsten und einfachsten wären a und b. Allerdings denke ich mal, dass c am Besten aussehen dürfte. Veilleicht würde es mit ein wenig mehr Tiefe (FOV) dann sogar noch besser aussehen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Feb 08, 2005 10:17 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Feb 07, 2005 16:57
Beiträge: 3
Wohnort: Wien
Thx für die schnelle Hilfe.


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 
Foren-Übersicht » Programmierung » Einsteiger-Fragen


Wer ist online?

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