Surface/Volume Format :Floating-Point 64-bit: A16B16G16R16F - Sind nicht maximal 32-Bit Farbtiefe möglich?
-
Guten Abend,
Ich bin absoluter Anfänger der Grafik/Spieleprogrammierung mit Direct3D , nachdem ich mir die mit dem DirectX SDK mitgelieferten Tools
-aus reiner Neugier- mal angesehen und ein wenig damit rumgespielt habe, fiel mir auf, dass man im DirectX Texture Tool unter den Surface/Volume Formaten auch 64-Bit Formate auswählen kann. Dies würde ja bedeuten, dass man damit Farben erstellen kann, die ein gewöhnlicher Monitor nicht darstellen kann, da ist ja maximal eine Farbtiefe von 32-Bit möglich.Oder gibt es einen Unterschied zwischen Textur-Format und den Farben welche man beispielsweise so erzeugen kann:DWORD Color_B = D3DCOLOR_ARGB(136, 255, 0, 204);?
Vielen Dank im Vorraus,
Fischle
-
Meines Wissens Arbeitet z.B. HDR mit 32 bit floats pro farbe undn ich 8 bits.
folglich müsste das was du beschriebst, auf jedenfalls möglcih sein.
Adobe photoshop kann ja auch eine Farbraum (Adobe-RGB) von 48 bit (mein Scanner auch).von daher meine Antwort: ja, isn unterschied zwischen texturformat und farben
mfg branleb
-
ein monitor kann normalerweise auch keine floats direkt darstellen, meistens setzt man 3*8bit oder 3*10bit an den eingang. dabei stellen die, je nach monitor, 262144 bis 10mrd farben dar. aber mit floats koennen die wohl nichts anfangen, das ist auch nicht der grund fuer float, denn sonst wuerde man auch mit 16bit int hinkommen.
float benutzt man um die ausleuchtung der realen welt zu simulieren, danach kommt dann die transformation des 'echten' farbraums in den fuer den monitor sichtbaren, indem man das auge bzw einen kamerasensor 'simuliert'.ein stichwort waere eyeadaption oder tonemapping.
-
Hoehere Farbtiefe braucht man fuer zwei Anwendungen:
1. Allgemeine Berechnungen des Pixel-Shaders sollen zur Wiederverwertbarkeit zwischengespeichert werden. Dabei muss es sich nicht unbedingt um Farben handelt, sodass man auch nicht moechte, dass jeder Wert auf 8bit gerundet/abgeschnitten wird.
2. Man moechte Texturen abdunkeln auf denen Lichtpunkte zu sehen sind (zb wenn die Environment-Map nicht mit voller Intensitaet reflektieren soll) - dann werden die Lichtpunkte grau anstatt kleiner; man braucht also weisser als weiss.
Floating-Point hat generell den Vorteil, dass fuer kleine Zahlen die Praezision groesser ist, man sich also nicht um den Wertebereich kuemmern muss.