|
Post by account_disabled on Mar 20, 2024 17:30:02 GMT 10
个解决方案我将在下面讨论其实现步骤。准备项目为了减少文本量我决定不插入代码示例而仅简要解释所提出算法的操作原理。本文附带一个带有源代码的项目以及一个构建。链接位于文章最后我们直接开始我们的项目的实现吧。因此我们有各种空间物体太阳行星信息图表人造卫星它们的真实尺寸是我们已知的。但是如果行星可以按照惯例被认为是球形的并且仅通过其半径来表征那么例如对于具有复杂形状的人造卫星该怎么办很简单我们把它放在一个看不见的球形容器里这样它就完全适合里面了。 我们将对其他非球形物体执行相同的操作。重要的是要理解我所说的球形容器仅指数学约定事实上每个 亚美尼亚电报号码数据 对象的坐标和半径都是定义的以不是场景中的碰撞器或网格。事实上我们将有两个世界坐标世界它由以下部分组成所有空间物体的数据数组其中每个物体都定义了以下内容球体中心相对于中心的坐标太阳的距离以米为单位。在上一节中我们确定类型适合存储坐标但由于存在三个坐标因此我们将使用向量的版本描述对象的球体半径以米为单位的局部旋转对象四元数。 如您所知这是一个具有类型值的矩阵但对于旋转而言精度问题并不那么重要因此我们不会将其替换为版本。标志指示对象是否是固体。对于真实对象它是对于信息图表它是定义了以下内容的相机坐标旋转四元数对于坐标世界中的相机不存在剪切平面的概念它只是一个点和观看方向。理想情况下我们应该看到视野中的所有对象并且范围仅受空间大小的限制场景世界包含游戏对象负责我们空间对象和信息图形的视觉表示相机在场景中除了位置和旋转之外还包含许多其他参数。渲染系统的任务就是充当这些世界之间的中介。
|
|