Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi OpenGl - Entfernungen ?!? (https://www.delphipraxis.net/52537-opengl-entfernungen.html)

Flips 30. Aug 2005 17:04


OpenGl - Entfernungen ?!?
 
Liste der Anhänge anzeigen (Anzahl: 2)
Hi @ all.

Wusste leider nicht wie ich das im Titel sagen sollte, aber ich habe folgendes problem:
Schaut es euch am besten auf diesen Bildern an.

[Bild 'normal.JPG' im Anhang]

Dann geh ich weiter zurück...

[Bild 'black.JPG' im Anhang]

Und dann beginnt das Level sich langsam in der Ferne aufzulösen.
Komm ich wieder näher geht es wieder zusammen.

Ihr fragt euch vll. :wiejetzt: aber ich bitte trotzdem um schnelle Hilfe.

Thx, Flips

dizzy 30. Aug 2005 17:08

Re: OpenGl - Entfernungen ?!?
 
Das nennt sich (Far/Near)-Clipping. Würde OGL deine Szene bis in unendliche Tiefe berechnen, würde es unendlich dauern ;). Einzige Lösung: Farclipping erhöhen.
Bei Skyboxes muss es aber imho noch einen anderen Weg geben, da diese ja in der Regel "unendlich" entfernt sein sollen. Wie man dies aber definiert weiss ich nicht.

sniper_w 30. Aug 2005 17:16

Re: OpenGl - Entfernungen ?!?
 
Zitat:

gluPerspective
The gluPerspective function sets up a perspective projection matrix.

void gluPerspective(
GLdouble fovy,
GLdouble aspect,
GLdouble zNear,
GLdouble zFar
);
Parameters
fovy
The field of view angle, in degrees, in the y-direction.
aspect
The aspect ratio that determines the field of view in the x-direction. The aspect ratio is the ratio of x (width) to y (height).
zNear
The distance from the viewer to the near clipping plane (always positive).
zFar
The distance from the viewer to the far clipping plane (always positive).
Skybox sollte sich IMHO zusammen mit dem Betrachter bewegen, d.h. die Position des Skyboxes soll immer relativ (gleich) zum Betrachter sein.

Flips 30. Aug 2005 17:23

Re: OpenGl - Entfernungen ?!?
 
Wie kann ich denn einen Körper in OpenGl verschieben. Hab eingestellt das die SkyBox nur einmal zu Beginn gerendert wird.

Man könnte zwar einstellen das bei jedem Rendervorgang die Position des Betrachters Abgefragt wird und dann die SkyBox entsprechend gerendert wird, allerdings hab ich dann nur noch ca 2 FPS :(

DGL-luke 30. Aug 2005 17:33

Re: OpenGl - Entfernungen ?!?
 
du musst sie doch nur OHNE alle Manipulationen der Matrix rendern.

sprich ganz am Anfang des Renderpass, wo alle möglichen gltranslate usw. aufrufe noch nicht greifen.

Flips 30. Aug 2005 17:36

Re: OpenGl - Entfernungen ?!?
 
mach ich ja

DGL-luke 30. Aug 2005 17:42

Re: OpenGl - Entfernungen ?!?
 
äh... dann kann das aber nicht performance ziehen?!

Dann liegt es wirklich nur an der Clipping plane.

dizzy 30. Aug 2005 18:30

Re: OpenGl - Entfernungen ?!?
 
Ich muss meine Aussage oben etwas korregieren (was aber an dem Problem selbst nichts ändern wird):
Ich hatte beim Schreiben vom obigen Posting einen volumetrischen Raytracer im Kopf, der OGL ja nun mal garnicht ist. Die eigentlichen Gründe für die Existenz von Clippings sind a) dass man davon ausgeht, dass Objekte irgendwann so weit entfernt (und somit klein) sind, dass sie nicht mehr maßgeblich zu Szene beitragen, und zur Performancesteigerung ausgelassen werden. Ferner nimmt man an, dass sie längst durch andere Objekte verdeckt werden, so dass sie durch das Clipping auch der Sichtbarkeitskontrolle vorenthalten werden können, was weiter die Performance steigert. b) Dass sonst die Möglichkeit besteht Objekte über den Gültigkeitsbereich von Single-Werten zu schieben, was eher undefinierte Folgen haben könnte :).
Da OGL mit Koordinatentransformation und nicht mit Raytracing arbeitet gilt oben gemacht Aussage nur bedingt.

Gruss,
Fabian

Luckie 30. Aug 2005 18:33

Re: OpenGl - Entfernungen ?!?
 
Müssen denn die riesigen Grafiken im Posting sein? Ich würde dich darum bitte sie anzuhängen. Dann sind sie auch noch verfügbar, wenn du sie morgen von deinem Server löscht. Danke.

Zudem sind sie zu breit. :roll:

Flips 31. Aug 2005 13:38

Re: OpenGl - Entfernungen ?!?
 
@ luckie: KK, werd ich mir merken.
@ all : Weiß keiner einen Befehl in Opengl mit dem man das einstellen bzw regeln könnte?


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:20 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz