【发布时间】:2009-09-07 04:30:14
【问题描述】:
我正在尝试使用 Java 从 Quake 3 .map 文件构建渲染原始数据。 .map 格式将画笔(形状)信息存储为一系列平面,但我想将它们转换为 (x,y,z) 形式的点。在这一点上,所涉及的数学有点超出我的范围,所以有人对我如何做到这一点有任何建议吗?如果需要,我可以使用外部库,但如果可能的话,我宁愿使用自己的代码。
一些数据可供使用:
Dimensions: 64*64*64
Position: All sides are equidistant from the origin (0,0,0)
Shape: Cube
( 64 64 64 ) ( 64 -64 64 ) ( -64 64 64 )
( 64 64 64 ) ( -64 64 64 ) ( 64 64 -64 )
( 64 64 64 ) ( 64 64 -64 ) ( 64 -64 64 )
( -64 -64 -64 ) ( 64 -64 -64 ) ( -64 64 -64 )
( -64 -64 -64 ) ( -64 -64 64 ) ( 64 -64 -64 )
( -64 -64 -64 ) ( -64 64 -64 ) ( -64 -64 64 )
编辑:
此数据显示一个立方体,它有 6 个面。这六个边中的每一个都可以存储为一个平面,用三个坐标来显示位置和方向。上述数据的每一行显示一个平面,所有 6 行组成了组成立方体的 6 个平面。
这张图片有助于说明我的观点:Three Points Defining a Plane
点 p1、p2 和 p3 是我在上述数据中每行给出的值。
Quake 3 引擎必须在编译时确定飞机的哪些部分要保留,但我目前对此不感兴趣。如果您想了解更多信息,请随时询问!
【问题讨论】:
-
您能否解释一下您的数据如何表示三个平面,而不是 18 个向量?
-
当然。我已经编辑了我的问题。