Depth Buffer mit 64 Bit

Für Fragen zu Grafik APIs wie DirectX und OpenGL sowie Shaderprogrammierung.
Antworten
Mirror
Establishment
Beiträge: 266
Registriert: 25.08.2019, 05:00
Alter Benutzername: gdsWizard
Kontaktdaten:

Depth Buffer mit 64 Bit

Beitrag von Mirror »

Hallo,

kennt jemand eine Möglichkeit einen Depth Buffer mit 64 Bit unter DirectX 11 oder DirectX 12 anzulegen ?

Geht das überhaupt ?
Hat den StormWizard 1.0 und 2.0 verbrochen. http://www.mirrorcad.com
Benutzeravatar
gombolo
Establishment
Beiträge: 161
Registriert: 26.01.2011, 20:33

Re: Depth Buffer mit 64 Bit

Beitrag von gombolo »

ohne jetzt in die Doku zu schauen, aber weil ich mich seit ein paar Wochen mit DirectX11 beschäftige und viel experimentiert habe muss ich sagen ich kenne ich bis jetzt 24Bit und 32Bit Puffer. Wobei ich mich Frage was macht man mit einem 64Bit Puffer?

Weil vielleicht kann man das auch anders Lösen, wenn du eine solche Genauigkeit benötigst.
Benutzeravatar
TomasRiker
Beiträge: 42
Registriert: 18.07.2011, 11:45
Echter Name: David Scherfgen
Wohnort: Hildesheim

Re: Depth Buffer mit 64 Bit

Beitrag von TomasRiker »

Ich glaube nicht. Wäre wahrscheinlich auch nutzlos, wenn die GPUs intern mit 32-Bit-Floats rechnen. Dann hättest du nichts von der höheren Genauigkeit.
Mirror
Establishment
Beiträge: 266
Registriert: 25.08.2019, 05:00
Alter Benutzername: gdsWizard
Kontaktdaten:

Re: Depth Buffer mit 64 Bit

Beitrag von Mirror »

Ich kenne auch nur 32 und 24 Bit. Zumindest als DXGI-Format. Deswegen frage ich ja.

Soweit ich weis wird der Depth-Wert in einen 32 oder 24 Bit Integerwert umgerechnet. Ich denke das dadurch viel an Informationen verloren geht. Da der höchste Wert gleich eins gesetzt wird. Hundertprozentig sicher bin ich aber nicht. Hier würde also auch bei 32 Bit-Float auf 64Bit Integer was bringen.
Hat den StormWizard 1.0 und 2.0 verbrochen. http://www.mirrorcad.com
Benutzeravatar
Krishty
Establishment
Beiträge: 8261
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Depth Buffer mit 64 Bit

Beitrag von Krishty »

TomasRiker hat geschrieben: 11.05.2024, 13:05 Ich glaube nicht. Wäre wahrscheinlich auch nutzlos, wenn die GPUs intern mit 32-Bit-Floats rechnen. Dann hättest du nichts von der höheren Genauigkeit.
Genau. Intern wird mit 32-Bit-Gleitkommazahlen gerechnet. Beim Schreiben in DXGI_FORMAT_D32_FLOAT findet im Grunde keine Umrechnung und kein Genauigkeitsverlust statt.

Die meisten Genauigkeitsprobleme entstehen bereits bei der Berechnung – bei der Transformation der Vertex-Koordinaten durch die Projektionsmatrix. Es gibt einige Empfehlungen, wie man die verringern oder sogar zum Vorteil nutzen kann – prominentes Beispiel ist Outerra, die ja quasi die ganze Welt mit 32-Bit-Tiefenpuffer rendern.
Mirror hat geschrieben: 11.05.2024, 13:21Da der höchste Wert gleich eins gesetzt wird. Hundertprozentig sicher bin ich aber nicht.
AFAIK musst du die Far Clipping Plane nicht auf 1 setzen; Unendlich geht bspw. auch.

Ein Bit wird auch durch das Vorzeichen „verschwendet“. OpenGL optimiert das berüchtigterweise dadurch, dass der Clip Space von -1 bis +1 geht. Ich habe noch nie jemand getroffen, der das gut findet – zumal Tricks wie Outerras dann nicht mehr funktionieren. Alle hassen es und nehmen lieber den Verlust des Sign Bits in Kauf.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Mirror
Establishment
Beiträge: 266
Registriert: 25.08.2019, 05:00
Alter Benutzername: gdsWizard
Kontaktdaten:

Re: Depth Buffer mit 64 Bit

Beitrag von Mirror »

Danke Krishty. Wie zauberst Du nur sowas aus dem Ärmel ? Das könnte gehen. Aber auch an die anderen ein Danke.
Hat den StormWizard 1.0 und 2.0 verbrochen. http://www.mirrorcad.com
Mirror
Establishment
Beiträge: 266
Registriert: 25.08.2019, 05:00
Alter Benutzername: gdsWizard
Kontaktdaten:

Re: Depth Buffer mit 64 Bit

Beitrag von Mirror »

Leider hat das nicht die Auswirkungen auf mein Rasterproblem gehabt, wie ich es mir vorgestellt habe. Ich habe deshalb einen neuen Thread aufgemacht.
Hat den StormWizard 1.0 und 2.0 verbrochen. http://www.mirrorcad.com
Antworten