我正在用 Java2D 开发一个等距游戏。即,请注意,我无法直接访问硬件像素着色器(实时软件像素着色器不实用。我可以对每个实体纹理进行一次传递,而不会显着影响性能)
我知道典型的方法是以某种方式将单个像素的深度编码到深度缓冲区中并进行查找。但是,我不知道如何在 Java2D 中有效地做到这一点。我将如何存储深度缓冲区?如何过滤掉图像中的 alpha?等等。
到目前为止,我一直在反转用于计算图块坐标的投影矩阵。但是,当您有在这些图块边界之外渲染的实体时,这将无法正常工作。
我考虑的另一种方法是使用颜色图,但是我遇到的问题与使用深度缓冲区时相同(如果我能让深度缓冲区工作,我宁愿使用它。)
这是我正在使用的图片: