首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >等距瓦片地图的Graphics2D多重合成

等距瓦片地图的Graphics2D多重合成
EN

Stack Overflow用户
提问于 2012-04-29 16:00:59
回答 1查看 545关注 0票数 0

我正在开发一款使用等距瓦片的行星表面地图(example)的游戏。每个平铺单元都是一个小的BufferedImage元素。白天和晚上的BufferedImage是通过修改这些图像的像素(变暗和蓝移)来实现的,然后在每座建筑上渲染一个窗光贴图(另一个静态cicles )。按照从上到右、从下到左的顺序保持正确的Z顺序,并且只绘制磁贴的条带。不幸的是,这种方法实际上破坏了图像的加速,如果白天和晚上的转换发生在非常快的游戏速度上,渲染会变得非常慢。当前的解决方案是为每个图块缓存大量的阴影,代价是内存的巨大增加。

Graphics2D的Java composition modes是否可以用于此目的,例如,绘制正常颜色的瓷砖,在其上绘制一个变暗的表面,然后应用光照贴图?如何才能确保只有正常磁贴的像素受到重新着色的影响?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-04-29 21:00:26

对我来说,最快的方法似乎是这样的:

  1. 使用自定义CompositeContext

将包含纯图像的视图呈现到目标缓冲区

  • 使用自定义a在目标缓冲区上的第二个BufferedImage上呈现包含光照贴图图像的视图

自定义CompositeContext将首先应用变暗+蓝移,然后乘以光照贴图值。

还要研究一下如何使用VolatileImage (例如,请参阅this article )来利用硬件加速。此外,您还可以考虑使用LWJGL (一个完整的游戏开发库)或JOGL (Java )来利用硬件加速。如果你从来没有做过3D编程,它可能看起来令人望而生畏,但对于2D图形来说,它确实非常优雅和简单。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10370622

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档