当前位置:首页 >教程首页 > 游戏设计 > 3D模型大师班 >图形学基础:如何在屏幕上绘制立方体?

图形学基础:如何在屏幕上绘制立方体?

发布时间:2022-08-09 09:39:26

Hello,大家好,今天给大家带来图形学基础:如何在屏幕上绘制立方体?我是几维。

当我们需要在屏幕上显示或绘制任何一个立方体时,那么我们就必须绘制一个网格,然后在上面绘制纹理着色。这里就延伸出来图形渲染管线。本文只是概述性的描述在屏幕上绘制一个立方体的步骤,不会过于深入,侧重于美术同学阅读。

渲染

在电脑绘图中,是指以软件将3D模型数据转换成2D图像的过程。

图形渲染管线

就是绘制3D图形需要的一系列步骤,抽象成渲染管线(流水线)。管线关注的是数据的流转,映射,变换和处理。

1、立方体顶点坐标

如果在屏幕上绘制一个三角形,第一步就是绘制出顶点,因为网格是由顶点组成的。一个顶点要描述它的位置需要三个轴向的坐标(还包括法线和纹理UV坐标),其实就是用三个数来描述顶点的位置。而这些数据也被称之为Vertex Buffer(顶点缓存)。

1.jpg

2、添加顶点索引数组

而一个立方体由八个顶点数组构成。每个顶点有它自身的一个号码,而这些号码就是按它在文件里面出现顺序作为它的号码。

2.jpg

3、三角形信息

有了这些顶点索引数组数据,我们就可以绘制三角面。在3D渲染中每三个顶点构成一个面,也就是一个三角面。而这组数据也被称为Index Buffer(索引缓存)。

3.jpg

4、顶点着色器

有了上述的这些数据后,就可以把这些数据输入到顶点着色器中。将模型每个顶点(坐标)位置信息,用顶点着色器换算(变换/计算)每个顶点应在屏幕的位置(顶点位置的空间变换)。也就是说,为了绘制这些顶点,我们将收集的顶点信息,将它在模型空间中顶点信息变换成世界空间,然后再变换到摄像机(观察)空间,到裁切空间,最后投射到屏幕空间上绘制它们。

4.jpg

5、栅格化

图元组装得到的三角形,栅格化就是思考如何把这些三角形映射成为一个一个的像素,哪些三角形对应哪些像素。这个中间有一些对应的关系。每一个像素又称之为片元。在栅格化中相当于把模型的三角面投影到了我们的屏幕上。因为显示器是由一个个像素组成,这一步就要把这些三角形变成屏幕上对应的像素。每个像素是由相连的点生成的,那么每个像素就会根据这些点插值出准确的数据。

5.jpg

6、片元(像素)着色器

经过顶点着色器处理和栅格化的数据输出到片元(像素)着色器后,就需要从一个(摄像机)视角绘制出这些数据。然后就会逐个像素输出每个像素的颜色。立方体形状包围的每一个像素格都会根据顶点着色器定义的方法去计算它的颜色。最后就会绘制出来一个完整带光影和纹理的立方体。换句话说,也就是给每一个像素上色。

6.jpg

7、帧缓冲区

完整的渲染图像就会输出到帧缓冲区中。显示器下一帧要显示什么,就把颜色写到帧缓冲区(Frame Buffer)里面。用于存放渲染的最终结果。最终显示器从帧缓冲区里面拿到图像,显示在显示器的屏幕上(中间包含一个后处理,这里就不展开了)。

7.jpg

8、参考

《unity shader 入门精要》

GAMES01-现代计算机图形学入门-闫令琪

庄懂的技术美术入门课(美术向)

来源:Thepoly公众号

学员作品赏析
  • 2101期学员李思庭作品

    2101期学员李思庭作品

  • 2104期学员林雪茹作品

    2104期学员林雪茹作品

  • 2107期学员赵凌作品

    2107期学员赵凌作品

  • 2107期学员赵燃作品

    2107期学员赵燃作品

  • 2106期学员徐正浩作品

    2106期学员徐正浩作品

  • 2106期学员弓莉作品

    2106期学员弓莉作品

  • 2105期学员白羽新作品

    2105期学员白羽新作品

  • 2107期学员王佳蕊作品

    2107期学员王佳蕊作品

专业问题咨询

你担心的问题,火星帮你解答
×

确定