闫令琪计算机图形学入门----Lecture05 Rasterization 1

本节课主要讲解三角形的光栅化。

  • 光栅化(rasterize):Raster是德语中屏幕的意思,光栅化就是一个将内容绘制到屏幕上的过程 
  • 像素:可以把像素理解为一个个有颜色的小方块,一个像素内颜色只能是同一个,用r,g,b三个数值、或是一个灰度值来表示。
  • 像素的坐标用(X,Y)的形式来表述。

三角形的性质和优点:

  • 最基础的多边形
  • 其他图形可以拆解为三角形
  • 三角形内一定是平面
  • 内外的定义很明确
  • 定义三个顶点后,三角形内可以插值

采样其实是把一个函数离散化的过程。

光栅化采样:利用像素中心对屏幕空间进行采样。

光栅化采样的目的:判断像素中心是否在三角形内。

光栅化步骤

采样(Sampling)

采样——把连续函数离散化

for(int x = 0; x < xmax; ++x)
	output[x] = f(x);

光栅化采样:利用像素中心对屏幕空间进行采样。

光栅化采样的目的:判断像素中心是否在三角形内。
 

for(int x = 0; x < xmax; ++x)
	for(int y = 0; y < ymax; ++y)
		image[x][y] = inside(tri, x+0.5, y+0.5);

判断像素是否在三角形内

方法:叉乘
 

符号(方向)相同则在内部,否则在外部。(叉乘反映向量的左右位置关系)

符号(方向)相同则在内部,否则在外部。(叉乘反映向量的左右位置关系)

特殊情况:边上的点

  • 不做处理:本课程
  • 特殊处理:OpenGL/DX
优化——Bounding Box
根据上面的光栅化过程,只需要遍历每一个点就可以得出三角形的光栅化结果了!

优化:显然我们没有必要去测试屏幕中的每一个点,因为一个三角形面可能只占屏幕很小的部分,可以利用一个bouding box包围住想要测试的三角形,只对该bounding box内的点进行采样测试,如下图:


锯齿
在经过上述的光栅化过程后,会得到如下图片,称为锯齿或走样。 而反锯齿或反走样是图形学一大挑战。

  • 11
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值