GAMES101-Lecture 05

三角形的光栅化Rasterization 1(Triangles)

定义

简单理解定义,不标准:
屏幕Screen: 一个二维数组,每个数组元素是一个像素。他是一个典型的光栅成像设备。
光栅化Rasterize: 把东西画在屏幕上。
像素Pixel :像素内部颜色不会发生变化,是代表颜色的最小单位。可以用RGB三个值表示颜色。
屏幕空间Screen Space :假设左下角是原点,向右是x轴,向上是y轴。规定像素坐标为(x,y)形式,用整数坐标描述,像素范围从(0,0)到(width-1,height-1)。像素中心在(x+0.5,y+0.5)。屏幕范围从(0,0)到(width,height)。
在这里插入图片描述
需要将投影后的 [ − 1 , 1 ] 3 [-1,1]^3 [1,1]3立方体转化到二维屏幕上操作:

  • 先忽略z轴方向。
  • 视口变换:将xy屏幕 [ − 1 , 1 ] 2 [-1,1]^2 [1,1]2拉到屏幕 [ 0 , w i d t h ] × [ 0 , h e i g h t ] [0,width]\times[0,height] [0,width]×[0,height],把宽度变成width,高度变成height,xy的中心(原点)平移到屏幕中心 ( w i d t h / 2 , h e i g h t / 2 ) (width/2,height/2) width/2height/2
    在这里插入图片描述
  • 光栅化:将立方体的多边形经过各种变换形成屏幕中的多边形(如下图),然后要将屏幕中的各种多边形打散成像素,显示各个像素的具体值。
    在这里插入图片描述

成像设备

光栅显示设备:示波器、CRT、Frame Buffer(把显卡内存的一块区域映射到屏幕上)
显示设备:LCD(液晶)显示器,LED显示器,电子墨水屏(刷新率低),视网膜屏幕……
LCD显示器:液晶通过自己不同的排布影响光的极化(偏振方向)
在这里插入图片描述

在设备上成像

最基础的多边形:三角形

  • 独特性质:
    • 内部一定是平面的
    • 内外定义清晰
    • 三角形上有着明确的插值方法(如定义一个三角形,三个点的颜色分别是红绿蓝,那么这个三角形就会有一个渐变的颜色效果,这就是颜色插值,下图就是插值效果,只定义了三个顶点的颜色,中间的渐变的颜色全都是插值效果)
      在这里插入图片描述

采样

最简单的光栅化方法:采样。
比如给一个函数f(x,y),求x=1、2、3的f(x,y)值,这就是采样。采样是对函数离散化过程,如下,只求每一个整数点的输出,跳过小数。
这里是指利用像素的中心对屏幕空间进行采样。
举例:像素在三角形中则进行着色。
在这里插入图片描述
可以定义函数如下:
在这里插入图片描述
代码:
在这里插入图片描述

如何判断像素是否在三角形中:使用叉乘,在Lecture 02详细讲过。可以自行回顾。

三角形的包围盒(Bounding box):不需要每次遍历屏幕所有像素点,只需要根据三角形的三个点确定包围盒,只对包围盒范围内的像素点进行处理。
在这里插入图片描述
另一种方法:对于三角形的每一行找到它的最左和最右像素点。适合需要大的包围盒但其实三角形覆盖的像素点很少(三角形很窄)的情况
在这里插入图片描述

实际屏幕的光栅化

在这里插入图片描述
光栅化会出现的问题——锯齿
在这里插入图片描述
像素本身有一定的大小,采样率对于信号来说不高,出现了走样问题。
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值