Hello,大家好,今天给大家带来图形学基础:如何在屏幕上绘制立方体?我是几维。
当我们需要在屏幕上显示或绘制任何一个立方体时,那么我们就必须绘制一个网格,然后在上面绘制纹理着色。这里就延伸出来图形渲染管线。本文只是概述性的描述在屏幕上绘制一个立方体的步骤,不会过于深入,侧重于美术同学阅读。
渲染
在电脑绘图中,是指以软件将3D模型数据转换成2D图像的过程。
图形渲染管线
就是绘制3D图形需要的一系列步骤,抽象成渲染管线(流水线)。管线关注的是数据的流转,映射,变换和处理。
1、立方体顶点坐标
如果在屏幕上绘制一个三角形,第一步就是绘制出顶点,因为网格是由顶点组成的。一个顶点要描述它的位置需要三个轴向的坐标(还包括法线和纹理UV坐标),其实就是用三个数来描述顶点的位置。而这些数据也被称之为Vertex Buffer(顶点缓存)。
2、添加顶点索引数组
而一个立方体由八个顶点数组构成。每个顶点有它自身的一个号码,而这些号码就是按它在文件里面出现顺序作为它的号码。
3、三角形信息
有了这些顶点索引数组数据,我们就可以绘制三角面。在3D渲染中每三个顶点构成一个面,也就是一个三角面。而这组数据也被称为Index Buffer(索引缓存)。
4、顶点着色器
有了上述的这些数据后,就可以把这些数据输入到顶点着色器中。将模型每个顶点(坐标)位置信息,用顶点着色器换算(变换/计算)每个顶点应在屏幕的位置(顶点位置的空间变换)。也就是说,为了绘制这些顶点,我们将收集的顶点信息,将它在模型空间中顶点信息变换成世界空间,然后再变换到摄像机(观察)空间,到裁切空间,最后投射到屏幕空间上绘制它们。
5、栅格化
图元组装得到的三角形,栅格化就是思考如何把这些三角形映射成为一个一个的像素,哪些三角形对应哪些像素。这个中间有一些对应的关系。每一个像素又称之为片元。在栅格化中相当于把模型的三角面投影到了我们的屏幕上。因为显示器是由一个个像素组成,这一步就要把这些三角形变成屏幕上对应的像素。每个像素是由相连的点生成的,那么每个像素就会根据这些点插值出准确的数据。
6、片元(像素)着色器
经过顶点着色器处理和栅格化的数据输出到片元(像素)着色器后,就需要从一个(摄像机)视角绘制出这些数据。然后就会逐个像素输出每个像素的颜色。立方体形状包围的每一个像素格都会根据顶点着色器定义的方法去计算它的颜色。最后就会绘制出来一个完整带光影和纹理的立方体。换句话说,也就是给每一个像素上色。
7、帧缓冲区
完整的渲染图像就会输出到帧缓冲区中。显示器下一帧要显示什么,就把颜色写到帧缓冲区(Frame Buffer)里面。用于存放渲染的最终结果。最终显示器从帧缓冲区里面拿到图像,显示在显示器的屏幕上(中间包含一个后处理,这里就不展开了)。
8、参考
《unity shader 入门精要》
GAMES01-现代计算机图形学入门-闫令琪
庄懂的技术美术入门课(美术向)
来源:Thepoly公众号
上一篇 《猎人工具箱》道具制作图文教程
热门课程
专业讲师指导 快速摆脱技能困惑相关文章
多种教程 总有一个适合自己专业问题咨询
你担心的问题,火星帮你解答10个方面做比较,Cinema 4D和Blender哪个更好?
3D建模与动画软件在视频游戏、电影、建筑设计和广告等创意项目中扮演着重要角色。今天,我们来聊聊两款强大的3D软件:Cinema......
《黑神话:悟空》作为一款现象级中国游戏,其成功离不开多种先进计算机技术的支持。本文将深入解析该游戏背后的关键技术,包括虚幻引擎......
在游戏开发领域,Unity和Unreal Engine(虚幻引擎)都是备受推崇的游戏引擎,但它们各自拥有不同的特点和优势。
春节之后大量抢人!这6个行业是转行首选,进去1年顶3年!火星毕业就能进
春节后求职,哪些行业进去能立马涨薪?打破信息差很关键!
还没毕业,就去帮电视台拍活动,作品被主任说“非常好”!猜猜是哪个专业呀?
回想过去,电子游戏里的草其实并不是真正的草。开发者们只是简单地把草的纹理直接贴在游戏关卡的地板上