什么是光栅化?

一、 什么是光栅化?

光栅化作用是将几何数据变换后转换为像素呈现在显示设备上的一个过程。几何数据转换为像素,
本质是坐标变换、几何离散化,如下:

其中包含了坐标变换和几何离散化:

二、光栅化完成了什么

3D中,物体是3维的,拥有X, Y, Z三个坐标,并且拥有R, G, B三种颜色,alpha透明度,U, V贴图坐标,N法线。
三维物体在二维屏幕上的显示,大致分为以下几步:

  1. 坐标变换(transform)
    将场景中的三维坐标转换为二维坐标,这个请参考我的文章坐标系空间变换
  2. 颜色计算(shade)
    计算每个顶点的颜色,通过UV贴图的颜色,结合光照,透明度等,计算出模型每个顶点的具体颜色(R, G, B)。
  3. 光栅化(rasterization)
    假定屏幕分辨率为
    1920×1080,在二维屏幕渲染(光栅化)时,内存中frame buffer只保存着1920×1080个屏幕点的颜色,然后一个一个的画到屏幕上。(它的实现方式是以一个1920×1080长的一维数组储存每个顶点的RGB颜色,然后遍历数组画出来)
    什么X, Y, Z,什么alpha之类的frame buffer都没有的,在frame buffer里只有3个值:R, G, B。
    X, Y, Z, alpha等等属性要在另外的地方存储。

    光栅化,就是计算出1920×1080这么长的RGB数组中,每一个RGB的值。

三、光栅化怎么完成的

我们计算出了3D模型每个顶点的颜色,这个是基于3维坐标的,顶点的三维坐标可以是小数
但在屏幕渲染时,屏幕是只有X,Y二维的,并且其像素点坐标都是整数。1920×1080的屏幕只有1920×1080=2073600个像素点。所以光栅化的连点描边是一个近似过程。

      目前主流的面片分割是三角形分割,所以大家在3DS MAX或者MAYA里看3D模型的网格,基本都是三角形网格,但也有以四边形为最小分割的算法,这里不涉及,我们认为3D模型的面片单元都是三角形。而光栅化主要有以下几步:

  1. 读取模型的顶点,3个3个的读,因为要画三角形。
  2. 将3个顶点两两连成线,形成三角形。
  3. 计算屏幕像素点在三角形内还是三角形外。在三角形内部的,就上色(颜色是之前算出来的),在三角形外部的,就不上色。
    (注意:如果一个三角形挡在另一个三角形前面,我们应该只画前面的三角形。所以这里还需要比较一下正准备上色的这个像素点是不是已经上过色了。如果这个像素点已经上过色了,并且它是被Z=1的顶点上的色,而我们正准备上色的这个顶点的Z=2(说明这个顶点被挡在了后面),那么这个顶点就不应该上色,因为它是被挡住的点。)
  4. 不断的循环,直到画完3D模型的所有三角形,这样一个模型就出来了!

总结:

总的来说,像素和纹素实际上是点,不是实体的块。屏幕空间原点是左上角的物理像素,但是纹理坐标原点是纹素矩形的最左上角。最重要的是,记住当你要将纹理中的纹素正确的映射到屏幕空间中的像素时,你需要减去0.5个单位。

  • 23
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 光栅化是将图形渲染成离散像素的过程,通常用于计算机图形学中。光栅化的流程如下: 1. 几何处理:首先,计算机图形学的软件会接收一个几何学描述,例如一组多边形的顶点和边界。然后,通过对多边形进行顶点转换和裁剪,将它们转换为标准化设备坐标系中的坐标。 2. 属性处理:接下来,每个多边形将被赋予一些属性,例如颜色、纹理等。这些属性将被传递给下一步的光栅化阶段。 3. 光栅化:在光栅化阶段,多边形被分解成许多小三角形(或者其他形状),然后将它们映射到屏幕上的像素网格。这个过程包括确定每个三角形在哪些像素上有覆盖,以及计算出在每个像素处的颜色和深度值。 4. 插值:为了在像素之间产生平滑的过渡效果,对于每个像素,需要从相邻的三角形中插值属性。例如,如果两个三角形在同一个像素上有重叠,那么颜色值就可以通过对两个三角形的颜色值进行加权平均来计算。 5. 呈现:最后,像素的颜色和深度值将被传递给显卡或显示器,从而呈现出最终的图像。 总之,光栅化是将复杂的几何形状转换为屏幕上的像素,然后在像素之间插值属性的过程。 ### 回答2: 光栅化是计算机图形学中将连续的图形形状转换为由离散像素组成的表示的过程。光栅化流程主要包括下面几个步骤: 1. 几何建模:将要绘制的图形形状用数学方法进行建模,通常使用直线段或曲线段的集合来描述。 2. 裁剪:根据设定的显示窗口大小和裁剪区域,对几何模型进行裁剪,排除超出范围的部分。 3. 投影变换:根据观察者的位置和视角,进行投影变换,将三维空间中的几何模型投影到二维平面上。 4. 计算图元属性:为每一个几何模型的像素计算其属性值,如颜色、纹理坐标等。 5. 光栅化:将连续的几何模型转化为离散的像素点集合,即将曲线段或多边形转换为像素点。 6. 裁剪:根据屏幕像素的显示范围,对超出显示范围的像素进行裁剪。 7. 插值:对于多边形的边界上的像素,使用插值方法计算其属性值,使得其外观在边界上呈现出平滑过渡的效果。 8. 填充:根据计算得到的像素属性值,对每个像素进行填充,绘制最终的图像。 9. 输出:将填充后的像素图像输出到显示设备上,实现图形的可视化呈现。 光栅化的流程是将几何模型进行裁剪、投影、计算属性值,并将连续的图形转换为离散的像素点集合,最终进行插值、填充和输出的过程。这个过程是计算机图形学中常用的一种基本技术,广泛应用于游戏开发、电影特效、虚拟现实等领域。 ### 回答3: 光栅化是计算机图形学中将连续的几何图形转化为离散的像素表示的一种处理过程。其流程通常包括以下几个步骤: 1. 几何建模:首先,需要对要绘制的几何图形进行建模,通过对点、线、面等基本几何元素的描述来确定图形的形状和结构。 2. 三角剖分:对于复杂图形,需要将其划分为一系列小的三角形,这样可以方便后续处理和计算。 3. 顶点处理:根据几何建模得到的图形信息,对每个顶点进行处理,包括坐标变换、投影变换、视点变换等,以确定最终在屏幕上的位置。 4. 光栅化:根据剖分后的三角形网格,将每个三角形映射到屏幕上对应的像素区域。这一步通常涉及到三角形边缘的插值计算、深度值的计算等。 5. 图元处理:对每个像素进行处理,根据颜色、纹理、光照等信息,确定最终的像素颜色。 6. 图像绘制:根据处理后的像素数据,将图像绘制到屏幕上,完成整个图形绘制的过程。 总体而言,光栅化的流程包括几何图形建模、三角剖分、顶点处理、光栅化、图元处理和图像绘制。这些步骤的主要目标是将连续的几何图形处理为离散的像素表示,从而实现在计算机屏幕上的图形显示。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weifont

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值