计算机图形学知识点整理(一)

计算机图形学知识点整理

八叉树空间划分:
八叉树是一个存储结构,我们的游戏空间存储的是三维的实体,那么这个实体是如何表示的呢?八叉树用一个正方体包含了这个对象,并且将正方体切分成八个小的正方体。八叉树的根节点是最大的正方体,八个小正方体分别是根的孩子节点,如果孩子节点所在的空间中都被实体填满,则认为它是叶节点,否则继续划分,递归直到划分为单位空间。

图形显示系统:
早期图形显示系统
早期图形显示系统,是通过CPU进行扫描转换,并且把帧缓存放在内存之中。我们的显示系统,目的是为了通过图形的一些算法,将应该显示在屏幕上的像素颜色表示出来。通过扫描转换我们确定了每一个像素应该是什么,并放入到帧缓存中。

帧缓存,像在pr一样,每一个帧的时刻,显示控制器都要读取这一时刻的帧,让显示器表达。所以如此大量的计算,会让总线和内存造成负担。

在这里插入图片描述
目前的技术将帧缓存和扫描转换都放入到了图形显示处理器来工作,其核心组件是GPU,用于并行计算,计算性能较高,但是不具备CPU可以调度等功能。

固定功能流水线:
用户通过操作标准图形函数库,标准图形函数库调用硬件函数库,硬件函数库调用函数到显示终端上。(可编程流水线就是在标准图形函数库部分通过编程,实现想要的效果)

渲染管线(流水线):
在给定相机,三维物体,光源及纹理的情况下去生成二维图像的过程。
在这里插入图片描述
应用程序,在unity中就是我们的纹理信息,模型等等数据。它通过一些算法,绘制出一些几何体,传送给几何阶段。顾名思义,应用程序阶段是程序员通过软件代码实现的,是在CPU中。但是它如图所示只有一个阶段,并不能细分成小的阶段流水线处理。

几何阶段——模型变换,视图变换。我们通过一个4*4的矩阵,将坐标系之间做一个转换。模型变换会让所有的模型处于相同的坐标系下面(世界坐标系)。方便我们统一的管理各个实体对象。

几何阶段——视图变换:我们观察到的内容是从摄像机中看到的。就是使用unity的game窗口,当我们令摄像机的朝向在z轴时,裁剪和投影会方便得多。

几何阶段——顶点着色:像之前提到的,GPU中仅仅是单一的重复相同方式的计算。这很适合顶点着色。图形处理器会逐个顶点开始计算。一个顶点的颜色应该显示为多少,都是纹理,光照,本身颜色,法线等共同影响的,顶点着色是将每个顶点的这些信息计算出来。

几何阶段——投影:
在着色之后,渲染系统会执行投影操作,将可视体转换到一个单位立方体中,这个单位立方体的最小点最大点分别是(−1,−1,−1) 和 (1,1,1)。单位立方体被叫做规范可视体。

视锥体也被缩放进该规范可视体中,这样操作的好处就是对于后面的裁剪等操作是统一的,只需要硬件进行计算就可以。

通过投影变换将三维空间转换为二维空间,去掉摄像机坐标系的z轴,形成二维图片。

几何阶段——裁剪:
利用图形学算法,将视锥体(如果是平行投影则为长方体)和规范化的空间求交集,我们从投影阶段获得的二维图像,通过裁剪得知哪些图元是在视锥体外面,即我们正常观察角度看不到,哪些是可以看到的,来确定哪些图元需要被光栅化。

光栅化阶段——建立三角形:
我们从几何阶段获得了一个个的顶点,根据算法,我们将顶点生成三角形片元。

光栅化阶段——遍历三角形:
我们去遍历每一个像素,看它的像素中心是否在上一步的三角形内部。

光栅化阶段——片段着色:
根据我们定义的显示方法,生成屏幕上应该显示的颜色。

光栅化阶段——混合:
还要考虑遮挡,透明化等效果,进行深度测试等等确定显示的像素。

知识点会持续总结,不断更新整理

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值