在 OpenGL 中應用查詢表(LUT)技術時,如何避免紋理資料自動歸一化導致的影象異常?

時間 2021-05-30 00:08:39

1樓:「已登出」

首先其實這個資料不應該是乙個紋理

而應該是乙個Image 因為這個資料不需要也不應該濾波 mipmap 或者各向異性這些功能

直接用 RG16UI作為影象格式

(上面有人說因為是2個位元組合併為乙個數字所以用RGBA格式導致每個位元組分開插值是錯的沒錯但是就算用RG16UI這種格式也不應該濾波因為濾波是根據周圍畫素線性插值的而這裡實際上是非線性的線性插值結果是不太對的會有輕微扭曲所以正確的做法是初始化時根據裝置解析度生成同樣解析度的精確影象然後一直使用)

著色器中uimage2D 這樣就不會歸一化

用imageLoad(uimage2D,ivec2)訪問影象資料

你說OpenES2.0裡沒有這些?

首先第一OpenGLES支援動態載入和擴充套件的

最低相容OpenGLES2.0不等於只能用OpenGLES2.0的coreprofile

而是應該根據裝置實際情況動態載入版本或功能

裝置不支援OpenGLES3.x不證明所有這些功能都不支援

有些裝置硬體和驅動可能支援更高版本但是系統版本太低

有些裝置硬體和驅動支援大部分OpenGLES3.x功能但是不完全

所以無論如何應該先檢查裝置是否支援更高版本的OpenGLES 如果支援就動態載入高版本

如果不支援那麼應該檢查你需要的功能是否在該裝置支援的擴充套件中

如果支援就用擴充套件功能

如果實在是不支援的那麼才是想一些workaround

2樓:叛逆者

把這張圖載入為紋理後,在fragment shader裡訪問時,顏色會自動歸一化為1以內的浮點數,

這是錯誤的。你如果用浮點紋理格式,不會有這個歸一化。

3樓:Jare Guo

你的表不能啟用線性過濾,因為存的數值是RG(BA)合併使用的,有進製的,不能像普通紋理那樣RGBA四個分量拆開來單獨插值。

例如從 ff00(255) 插值到 0001(256) 時,結果會突然跳到 7f00(127)

4樓:idovelemon

可以試試在儲存lut時,使用範圍更大的畫素格式!聽你描述,你用的是R8G8B8A8的格式,可以試試R16G16B16A16等範圍更大的畫素格式來儲存!

MySQL中2個表的查詢結果疑問

關鍵 我理解的SQL有乙個很重要的一點,是找出不同表的關係,及它們之間的連線路徑。你提供的兩張表你自己應該明確知道,student表中的ID對應的是score表中的ID,如果你能明確這點在SQL語言的中的意義就好寫了。關於你的題,自己想下簡單關係,然後寫成SQL 兩個表靠ID進行關聯,關係是stud...

桃子在烹飪中可以如何搭配 應用?

Vera大帥比 桃子這麼可愛當然要好好吃掉它 D 兩年前做過乙個桃子點心 主要材料用的是自己切片後染暖色的黃桃罐頭桃子。從上至下 焦了吉利丁包裹的桃子花,桃子汁果凍,cream cheese,小餅乾碎。看到我喜歡的美食博主也回答了這道題,就有點激動不知道綿羊能不能看到我的回答呢?筆芯! 我是菜籃子 ...

引數化設計未來在工業設計中的應用,如何應用,趨勢是什麼?會引起一種新的設計革命麼?

echo zhang 我最近正在整理同樓dixon老師的講課資料,整理的有點累了順便過來回答一下問題哈。引數化是個工具,來輔助設計師解決行業痛點,達到設計結果的美學和功能和商業的平衡。個人認為作為為2020年 2060年世代的硬體產品提供工業設計和使用者體驗構想的設計師,學習gh的同時,可以從以下幾...