在学习这个固定渲染管线的过程中,我们会遇到很多新的名词,自身坐标系,世界坐标系,视图坐标系,光栅化处理,图元,背面拣选,裁剪,投影,视口变换等概念
渲染管线是指为了在显示器上显示图像而经过的一系列必要操作,具体流程如下:
1、自身坐标系
在自身坐标系中建模不像在世界坐标系中要考虑本物体相对于其他物体的位置、大小、方向关系。
2、世界坐标系
一旦我们构造了各种模型,它们都在自己的自身坐标系中,但是我们需要把它们都放到同一个世界坐标系中。物体从自身坐标系到世界坐标系中的变换叫做世界变换。世界变换通常是用平移、旋转、缩放操作来设置模型在世界坐标系中的位置、大小、方向。世界变换就是通过各物体在世界坐标系中的位置、大小和方向等相互之间的关系来建立所有物体。
3、视图坐标系
将照相机平移变换到世界坐标系的源点并把它的方向旋转至朝向Z轴的正方向,当然,世界坐标系中的所有物体都将随着照相机的变换而做相同的变换。这个变换就叫做视图坐标系变换。
4、背面拣选
一个多边形有两个表面,我们将一个标为正面,一个为背面。通常,后表面总是不可见的,这是因为场景中大多数物体是密封的。一个多边形的边都是面向照相机叫正面多边形,而一个多边形的边都背对照相机叫背面多边形。
正面多边形挡住了在它后面的背面多边形,Direct3D将通过拣选(即删除多余的处理过程)背面多边形来提高效率,这种方法就叫背面拣选。
顶点以顺时针方向(在观察坐标系中)形成的三角形为正面,以逆时针方向形成的三角形为背面。
5、光源
光源定义在世界坐标系中然后被变换到视图坐标系中。视图坐标系中光源给物体施加的光照大大增加了场景中物体的真实性。
6、裁剪
拣选那些超出了可视体范围的几何图形的过程就叫做裁剪。
7、投影
视图坐标系的主要任务就是将3D场景转化为2D图像表示。这种从n维转换成n-1维的过程就叫做投影。投影的方法有很多种,但是我们只对一种特殊的投影感兴趣,那就是透视投影。因为透视投影可以使离照相机越远的物体投影到屏幕上后就越小,这可以使我们把3D场景更真实的转化为2D图像。
投影变换的实质就是定义可视体,并将可视体内的几何图形投影到投影窗口上去。
8、视口变换
视口变换主要是转换投影窗口到显示屏幕上。通常一个游戏的视口就是整个显示屏,但是当我们以窗口模式运行的时候,也有可能只占屏幕的一部分或在客户区内。
9、光栅化
在把三角形每个顶点转换到屏幕上以后,我们就画了一个2D三角形。光栅化是计算需要显示的每个三角形中每个点颜色值。
光栅化过程是非常繁重的计算,它应该通过硬件图形处理来完成。它的处理结果就是把2D图象显示在显示器上。
10、图元
图元就包括了点、线(线列、线带)、面(三角形列、三角形带、三角形扇)
11、光栅化处理
光栅化处理就包含了三种变换,
1.世界变换:本地空间→世界空间
2.视图变换:世界空间→视图空间
3.投影变换:视图变换(3D)→2D(窗口)
关于编程的学习,欢迎大家关注我,对我的文章进行评论,点赞,收藏,关注我不迷路。也欢迎广大网友跟我探讨干货。编程的知识,远远不止这么点,我们一 一进行分析讲解。网友有什么想让我来进行讲解的,可以评论留言,我也会尽我所能给大家去做好讲解。
公众号:平平无奇代码猴
也可以搜索:Jackiie_wang 公众号,欢迎大家关注!欢迎催更!留言!
作者:ProMer_Wang
链接:https://blog.csdn.net/qq_43801020/article/details/106926996
本文为ProMer_Wang的原创文章,著作权归作者所有,转载请注明原文出处,欢迎转载!