Während ich etwas darüber las, wie Echtzeitanwendungen unter OpneGL mit Farben umgehen, stellte ich fest, dass einige Beispiele Color als Sammlung von 4 implementierten floats
, während andere 4 verwendeten doubles
. Ich habe sogar einige Beispiele für die Vertex-Komprimierung im Bereich der Spieleentwicklung gesehen, die das Speichern von Farben als 4 befürworteten short
.
All dies hat mich dazu gebracht, mehr darüber zu erfahren: Wie hoch ist die Grenzgenauigkeit, mit der OpenGl (oder Hardware) für Farben umgehen? Noch wichtiger ist jedoch, an welchen Genauigkeitsgrenzen sind Farbunterschiede nicht mehr zu bemerken?
Ich habe den Eindruck, dass ein genaueres Lernen darüber mir helfen würde, besser darüber nachzudenken und zu entscheiden, wie eine Farbklasse für verschiedene Anwendungen und Szenarien implementiert werden soll (z. B. Kompromiss zwischen Speicher, Geschwindigkeit und Farbvielfalt).
Vielen Dank für Ihre Ideen dazu.
quelle
half
würde nicht zu den gleichen Problemen führen, die Sie zuvor erwähnt haben, weil es an Präzision mangelt? Ich denke, das wäre besonders wichtig bei der GPU, aufgrund der vielen Farbberechnungen, die häufig in Shadern durchgeführt werdenhalf
ist 16 Bit, einschließlich 11 effektiver Bits mit Mantissengenauigkeit. Obwohl es nicht so genau ist wiefloat
, ist es für die meisten Farboperationen immer noch ausreichend. (Vielleicht nicht ganz ausreichend, wenn Sie auf einem HDR-Display mit hohem Farbumfang ausgeben; ich bin mir nicht sicher.)