元组、点和向量的基础与应用
在图形渲染的世界里,我们常常会遇到一个独自置于有着方格墙壁和地板房间中的球体。它反射着上方灯泡发出的光,几乎反射出了周围的一切,包括相机后方的方格墙、上方的天花板,甚至(如果你仔细观察)它自身的影子。如此迷人的场景,你是否也想亲手渲染出这样的画面呢?其实,在掌握一定知识后,你就能用自己编写的软件实现这样的渲染。
元组的概念
元组是一个有序的列表,比如数字列表。为了更好地理解,我们通过一个例子来说明。假设你在公园散步,向前走了 4 米,突然地面塌陷,你下落了 4 米,然后发现左边有一个神秘隧道,你又爬了 3 米,在那里发现了一个装满金币的宝箱。如果将最初的 4 米看作 x 方向,下落的 4 米看作负 y 方向,隧道里的 3 米看作 z 方向,那么这三个距离就可以用 (4, -4, 3) 来表示,这就是一个元组,并且这个特定的元组也被称为点,因为它代表了空间中的一个点。
在坐标系统方面,当 y 轴向上,x 轴向右时,z 轴可以指向你或者远离你。这里采用的是左手坐标系。你可以伸出左手,拇指指向 +x 方向,手指指向 +y 方向,当你将手指向手掌卷曲时,手指卷曲的方向就是 z 轴的方向。不过,很多网站、文档、文章、书籍和 API 使用的是右手坐标系,其中 z 轴指向你。这两种方法都没有问题,选择左手坐标系是因为一些流行的渲染器,如皮克斯的 RenderMan 系统、Unity 游戏引擎和开源的 POV - Ray 光线追踪器都在使用它。
方向的表示方式也是类似的。当你站在空宝箱旁边,想知道回到起点的方向,你可以在脑海中画一个箭头,从当前位置指向起点。这个箭头在 x 方向为 -4 米,y 方向为 4 米,z 方向为 -3 米,即 (-4, 4
超级会员免费看
订阅专栏 解锁全文
286

被折叠的 条评论
为什么被折叠?



