我有点好奇是否可以用 Java2D 编写一个简单的引擎来渲染 3D 立方体。令我惊讶的是,到目前为止,我的尝试取得了成功。到目前为止,立方体看起来还不错:
但是,正如你所看到的,我严重缺乏深度测试。不过,我完全不知道如何在 Java2D 中进行深度测试。根据我的发现,您可以通过将每个多边形渲染为位图然后将每个像素与可能与之冲突的每个其他像素进行测试。这就是我迷路的地方。
我对多边形的每个顶点都有必要的深度值,但我没有每个像素的深度值。这可能是让 Java2D 使用 fillPolygon(Polygon p) 方法为我填充每个多边形的副作用。所以这让我相信,如果我使用 fillPolygon(..) 方法渲染我的多边形,我就无法进行深度测试。我的第一个问题是:我可以在仍然懒惰的同时进行 z 缓冲并让 Java 进行像素绘图吗?
如果不是,那么我的下一个问题是:我该如何自己渲染多边形?我的意思是,我非常了解如何将像素存储在位图中,然后将它们渲染为图像。我想知道如何获取每个多边形的四个顶点并适当地渲染它们。