Registriert: Do Jun 09, 2005 13:48 Beiträge: 117 Wohnort: Sankt Augustin
Hallo,
wenn ich Objekte rendere und diese sind in einem kleinen Bereich um den Betrachter herum angeordnet, wird alles korrekt gezeichnet. Ich kann die Szene dann drehen und bewegen wie ich möchte ohne dass es zu sichtbaren Einbußen bei der Darstellung kommt.
Das ganze ändert sich, wenn ich meine Objekte in beliebig großen Abständen um den Betrachter herum aufbaue. Habe ich z.B. ein Rohr aus vielen kleinen Rohrteilen zusammenhängend aufgebaut ist dessen Darstellung eng verknüpft mit seiner Position im Raum zum Betrachter. Je nachdem wie ich dann drehe oder bewege sind nur Teile des Rohres zu sehen (Rohrteile verschwinden) oder es ist nur ein leerer Bildschirm zu bewundern oder ich sehe komplette alles (was dann leider selten der Fall ist).
Kann das etwas mit Berechnungsproblemen in OpenGL zu tun haben oder muss ich mal wieder den Fehler bei mir selber suchen?
Registriert: Do Sep 02, 2004 19:42 Beiträge: 4158
Programmiersprache: FreePascal, C++
Das dürfte an deiner Far-Clipping-Plane liegen, die du bei gluPerspective festlegst (typischerweise im OnResize).
Alle Objekte, die weiter entfernt sind als diese Ebene werden nicht gezeichnet. Wenn du diese Ebene weiter nach hinten verschiebst, geht aber gleichzeitig genauigkeit im Tiefenpuffer verloren, das heißt, dass Objekte unter umständen in ZFighting geraten oder von Objekten die eigentlich dahinter liegen überzeichnet werden. Sowas passiert aber eher selten und wenn sieht man es in der entsprechenden Entfernung sowieso nicht mehr (immer vorrausgesetzt, du schiebst die Far-Clipping-Plane nicht so weit raus, dass danach sogar die Objekte im Vordergrund schon unter dem Genauigkeitsmangel leiden).
Schau dir dazu auch mal Tiefentest an.
Gruß Lord Horazont
_________________ If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung. current projects: ManiacLab; aioxmpp zombofant network • my 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
Registriert: Do Jun 09, 2005 13:48 Beiträge: 117 Wohnort: Sankt Augustin
Hllo,
entschuldigt bitte, dass ich so lange nicht geantwortet habe.
An der Near- und Far-Clipping Plane habe ich schon vermehrt herumgspielt, das bringt aber keine Änderung.
Das Problem tritt dann auf, wenn ich Objekte weit weg vom Nullpunkt aufbaue. Die Objekte sind dann durch die
Darstellung im Clippingbereich aber die größe der Koordinaten (ab ca 100.000) scheint das Problem zu sein.
In diesem Fall flackert das Bild bei Bewegungen. Das bedeutet, dass die Szene mal dargestellt wird und mal nicht.
Ich habe schon alles auf double umgestellt (wo ich float gebraucht habe) aber das hat auch nichts gebracht.
Möglicher weise hilft es die near plane weiter von der Kamera wegzu schieben. Entscvheident für die präzision ist das verhälnis der abstände von near und far plane zur Kamera. Mehr dazu:
http://www.sjbaker.org/steve/omniv/love ... uffer.html
Registriert: Do Jun 09, 2005 13:48 Beiträge: 117 Wohnort: Sankt Augustin
Das mit dem Abstand zwischen Near- und Far-Clipping Plane werde ich ausprobieren. Ich habe bisher immer versucht alles dargestellte auch sichtbar zu machen. Ich werde den sichtbaren Bereich mal auf ein vernünftiges Maß beschränken und dann mal sehen was passiert.
Registriert: Do Jun 09, 2005 13:48 Beiträge: 117 Wohnort: Sankt Augustin
Hallo,
das war es. Ich hatte die Near Clipping Plane auf 0,0001 und die Far Clipping Plane so gesetzt, dass immer alles im sichtbaren Bereich war. Nach dem verschieben der Near Clipping Plane klappt jetzt alles.
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.