2010-03-17 56 views
0

我想實現'繪圖模式'(在我自己的圖形庫中)。在圖形庫中實現「繪圖模式」?

即與繪圖AND,OR等 但是我使用浮標0和1.0之間 存儲的顏色,每個信道我是否必須首先每個顏色通道轉換爲0-255之前,我可以使用AND,OR等繪圖模式?然後轉換回浮動(0.0-1.0)?

或者還有另一種方法嗎?

謝謝

回答

2

我相信這個問題還不夠清楚。 AND,OR等是布爾運算符。許多語言也支持按位版本。所以,你首先需要定義AND-ing或OR-ing兩個顏色值的含義。什麼是紅色和綠色?它是黑色的嗎?

如果上述問題的答案是肯定的,那麼您可能希望將這些運算符應用於按顏色的(整數)RGB表示的按位意義上。在這種情況下,您需要: 1.將浮點數轉換爲(8位或其他分辨率)整數 2.將3個通道(或帶有Alpha的4個通道)組合成一個字(可能是32位整數) 3 。應用按位運算符 4.解壓通道並轉換回浮動。

請注意,在將float轉換爲int時,首先需要將float值乘以MAX_COLOR(在本例中爲255),然後進行強制轉換。否則,最終所有通道爲0.當您轉換回浮動模式時,首先進行投影,然後除以MAX_COLOR以正常化您的值。