我正在使用Allegro 5編寫遊戲,目前正在研究我的繪圖算法。經過計算,我得到兩個ALLEGRO_BITMAP*
-對象,其中一個是我的「場景」,其上繪製地形,另一個是陰影圖。有沒有辦法在Allegro中部分色調位圖?
場景只是在位圖上繪製的遊戲元素的紋理。 陰影貼圖是一種位圖,對於先前呈現的陰影使用淺色和白色的黑色。
爲了在屏幕上繪製這些位圖,我使用al_draw_scaled_bitmap(...)
和al_set_blender(ALLEGRO_DEST_MINUS_SRC, ALLEGRO_ONE, ALLEGRO_ONE)
來減去場景中陰影貼圖的白色元素以使它們可見。
我遇到的問題是,我希望陰影貼圖上的所有像素都被着色爲世界顏色,這已經在以前的每一幀中計算過了,並且所有黑色元素都不會被修改(灰色意味着部分着色)。
對於rgb中的紅色,綠色和藍色通道,最終顏色可以像p.r * c.r + 1 - p.r
和p = the pixel-color on the scene
和c = the world-color
那樣計算。
有沒有辦法在Allegro 5(可能沒有大量透支)中實現部分着色效果?
我想過使用着色器,但我還沒有找到解決方案來實現這些與我的ALLEGRO_BITMAP*
對象。
你可以將你的位圖分成子位圖,但我認爲這不是你想要的。你能包括一些照片嗎?兩個將工作,你現在擁有什麼,你想擁有什麼。 – rlam12