簡體   English   中英

Android OpenGL ES 中的灰度顏色深度

[英]Grayscale Color Depth in Android OpenGL ES

在 OpenGL ES 中,顏色范圍為 0-1f。 這些值是否直接映射到 0-255,也就是 8 位? 或者 0-1f 范圍是否在高於 8 位時實現更精細的顏色?

我正在以編程方式生成一個模式,其中 rgb 相等(因為它是灰度),因此圖像是 8 位的。 我想在灰度中實現更深的顏色深度,例如 16 位,這可能嗎?

取決於您的輸入/輸出紋理格式; 如果是 RGB565,那么它將小於 8 位,如果它是 RGB10_A2,那么它將大於 8 位。

紋理過濾(例如雙線性或三線性)通常以比原始數據更高的精度完成,因此可能導致值不完全是,例如 8 位紋理的 1/256 的倍數。

我想在灰度中實現更深的顏色深度,例如 16 位,這可能嗎?

OpenGL ES 3.0 具有寬整數格式,OpenGL ES ES 3.2 具有 fp16 和 fp32 格式,因此絕對可以以每個通道超過 8 位的方式存儲相對任意的數據。

然而,真正的問題是為了什么目的? 如果您打算在屏幕上顯示該值,那么很可能您沒有實際能夠顯示每通道 16 位顏色的設備。 幾乎所有消費級顯示器和移動設備面板的每個顏色通道都是 8 位(在移動設備中,許多甚至不是這樣,它們接受 8 位數據,但在面板中僅顯示 6 或 7 位精度)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM