上集提到的图形界面都是2D的,但是我们生活的世界是3D的。本集主要讲3D图像以及如何渲染3D图形到2D屏幕上。
24集中说过可以写一个函数从A到B画一条线。通过控制A和B的(X,Y)坐标,可以控制一条线。在3D图像中,点的坐标不再是两点,而是三点,X,Y,Z。
当然,2D的电脑屏幕上不可能有XYZ立体坐标轴。所以又图形算法负责把3D坐标“拍平”显示到2D屏幕上,这叫做3D投影(3D Projection)。所有的点从3D转成2D后,就可以用画2D线段的函数来连接这些点,叫做“线框渲染”。想象用筷子做一个立方体,然后用手电筒照它。墙上的影子就是投射,是平的。如果旋转立方体,投影也会跟着变化,看起来会像3D物体,尽管投影面是平的。电脑也是采用这种方法将3D转成2D,其中使用了大量的数学方法。
3D投影分为好几种。你现在看到的,叫正交投影(orthographic projection)。立方体的各个边,在投影中互相平行。
而在真实3D世界中,平行线段会在远处收敛于一点。就像远处的马路汇聚到一点,叫做透视投射(Perspective Projection)。过程是类似的,只是数学稍有不同。选择哪一种投射具体取决于开发人员。
如果画立方体这种简单图形,直线就够了。但是更复杂的图形用“三角形”画更好。在3D图形学中我们叫三角形“多边形”(Polygons)。下图是一个多边形组成的漂亮茶壶。
一堆多边形的集
二十七、3D图形
最新推荐文章于 2024-05-30 22:39:06 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)