我正在製作一個使用等距瓷磚地圖作爲行星表面的遊戲(example)。每個tile單元都是一個小的BufferedImage元素。通過修改這些圖像的像素(變暗和藍色偏移)來實現日夜影像,然後在每個建築物上渲染一個窗口光照貼圖(另一個靜態BufferedImage)。正確的Z順序通過按照右上方向左下方的順序進行保存,並且只繪製瓦片條。不幸的是,這種方法實際上破壞了圖像的加速,如果白天過渡發生在非常快的遊戲速度上,渲染變得非常緩慢。目前的解決方案是以巨大的內存增加爲代價來緩存每個tile的陰影數量。Graphics2D等距瓷磚地圖的多重複合
Graphics2D的Java composition modes可用於此目的,例如繪製正常的彩色圖塊,在其上繪製一個變暗的表面,然後應用光照圖?如何確保只有普通瓷磚的像素受到再着色的影響?