Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Anonymous

unregistriert

11

31.05.2004, 22:41

Quellcode

1
2
3
4
5
6
7
8
D3DXMATRIX PrjMatrix;

D3DXMatrixPerspectiveFovLH(&PrjMatrix,
                               D3DX_PI/4,
                               (float)breit / (float)hoch,
                               0.1f, (float)tief);
    
GX->SetTransform(D3DTS_PROJECTION, &PrjMatrix);


Genau, hab ich. Aber: Wenn ich n größeren Wert bei NahClipPlane angeb dann kann ich durchkucken wenn ich durch wenn ich an ne Mauer rangeh.

Anonymous

unregistriert

12

31.05.2004, 22:46

achso, bei tief übergeb ich bei kleinen levels wo auch d16 geht 1000 und bei größeren dann halt 5 bis 20 tausend um das weite nicht halb wegzuclippen.

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

13

31.05.2004, 22:49

Vielleicht solltest Du die gesamte Welt ein bisschen kleiner machen, damit Du nicht solche hohen Werte brauchst.
Übrigens: auch eine Veränderung von 0.1f auf 0.2f oder auf 0.5f macht schon sehr, sehr viel aus. Denn wie gesagt ist die Genauigkeit bei kleinen Zahlen viel höher. Eine Veränderung von 0.1f auf 0.5f bei der Near-Plane macht sicher mehr aus als eine Veränderung von 20000 auf 19000 bei der far-Plane.

Anonymous

unregistriert

14

31.05.2004, 22:52

ok danke, problem gelöst, ich muss den spieler auch breiter machen bei größeren levels und kann dann die nahe clip plane höher setzen auch passend zu der levelgröße. bisher hab ich immer kleine level gehabt und hab erst jetzt verschiedene größen probiert.

Anonymous

unregistriert

15

31.05.2004, 22:54

hatte bisher nach vorn 1.4 und zur seite die hälfte also 0.7 entfernung auf kollision getestet, aber um so größer der level umso höher das risiko dass ich auch mal ganz durch war durch ne wand.

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

16

31.05.2004, 23:08

Ich habe mal ein paar Tests mit 32-Bit-Floats gemacht.

Es existieren beispielsweise 1065353218 32-Bit-Floats zwischen 0 und 1.
Man bemerke, dass dies bereits ein Viertel der überhaupt darstellbaren Float-Zahlen ist! Das heißt: die Hälfte (!) aller überhaupt möglichen 32-Bit-Float-Zahlen liegen zwischen -1 und +1.

Quellcode

1
2
3
4
0 bis 1:    1065353218
0 bis 10:   1092616194
0 bis 100:  1120403458
0 bis 1000: 1148846082


Wie man sieht, ändert sich an der Anzahl der dazwischen liegenden Zahlen kaum etwas, wenn man die obere Grenze verschiebt.
Jetzt mal ein realistisches Beispiel mit den Clipping-Planes... Wir haben die Werte 0.1 und 1000. Da es Grafikfehler gibt, verringern wir die 1000 auf 900:

Quellcode

1
2
0.1 bis 1000: 112014132
0.1 bis 900:  110375732


Keine merkliche Änderung der Zahlen, die dazwischen liegen!
Je größer dieser Wert, desto kleiner ist die Genauigkeit, da sich genau so viele Zahlen die 24 oder 32 Bits des Z-Buffers aufteilen müssen.
Jetzt ändern wir statt der 1000 mal die Near-Plane von 0.1 auf 0.2:

Quellcode

1
2
0.1 bis 1000: 112014132
0.2 bis 1000: 103625524


Wie man sieht, ist die Anzahl viel stärker zurückgegangen, obwohl wir nur eine Änderung von 0.1 vorgenommen haben, und zuvor ganze 100. Und zwischen 0.5 und 1000 liegen schon nur noch 91881473 Floats.

Besonders beeindruckend:
Zwischen 10 und 1000 liegen ungefähr halb so viele Float-Zahlen wie zwischen 1 und 1000.

Anonymous

unregistriert

17

01.06.2004, 15:49

hier ist das mit dem Z-Buffer nochgenauer erklärt und ein netter Rechner für near-far-Plane ist auch dabei....

http://www.sjbaker.org/steve/omniv/love_your_z_buffer.html

Werbeanzeige