射线铸造技术培训。第2部分

问候,读者。这是“用于游戏开发和其他目的的铸造教程”翻译系列的第二部分。第二部分之前是第一部分,也可以查看第一部分

开始吧!让我们继续!

射线投射限制

光线投射技术之所以快速是因为它使用了一些几何约束。在大多数情况下,墙壁始终垂直于地板(请注意,这不适用于墙壁之间的拐角)。

因此,我们遇到了另一个限制:视点无法沿Z轴旋转(众所周知,Z轴为应用的轴-大约为Per。)。为什么?想象相反:允许旋转。在这种情况下,壁会倾斜,因此失去了绘制这些壁的垂直截面的优势。旋转限制是无法将射线投射视为完整3D的原因之一。

光线投射技术允许玩家向前/向后移动并向右/向左移动,但不能绕Z轴旋转(这种旋转称为侧滚(如果Y轴是垂直的,则沿其旋转是俯仰,而沿X轴则是偏航,-大约。 。)。

步骤1:创建环境

为了渲染射线投射工作,我们将基于以下几何约束创建一个迷宫场景:

  •   

64x64x64 ( , , 2. , ). , , , ,  .

, ( - ), - . .

. , .  -  .

2.

,    , . :

  • , (FOV - Field Of View),

, . FOV, , . FOV 90° . , . 60°, ( - FOV). , 32 . , , . ( -, : 2.4  / 1.7 = 1.41 - . .).

,  -  , . , , FOV - . .

, X-, Y- . 3 POV (point of view) .

, - (1, 2), 45 , FOV , . ( 64x64 ).

POV, . - FOV - . - . .

, , . 320 200 - , ..  VG .

POV , , .

FOV .

:

, ( ): 320200 (160, 100). " ". - . .

( , , , , ).

FOV 60. 320 , 60° 320 , , 1 60 / 320 . - . .

FOV . , 320 / 2 = 160 : 90°, 60° / 2 = 30° 90° - 30° = 60° .    (277), . - . .

:

  • () = 320200

  • (160, 100)

  • = 277

  • = 60 / 320

(有时将连续射线之间的角度称为相邻列之间的角度。稍后,将使用该角度在循环中从一列到下一列进行迭代。缩放时需要与投影平面的距离。)

第二部分结束




All Articles