GAMES101-现代计算机图形学入门-闫令琪——Lecture 05 Rasterization 1 (Triangles)

GAMES101-现代计算机图形学入门-闫令琪——Lecture 05 Rasterization 1 (Triangles)

Finishing up Viewing

  • Viewport transformation

Rasterization 光栅化

在做完观测矩阵以后,所有的物体都已经在(-1,1)的三次方这么一个空间中,下一步就是画在屏幕里,这一步就叫光栅化。几何数据经过一系列变换后最终转换为像素,从而呈现在显示设备上的过程。

Perspective Projection

  • 如何定义一个视锥(frustum)?
    在这里插入图片描述
    定义长宽比(r/t)和垂直可视角度(fovY),可以用这两个推出水平可视角度
    在这里插入图片描述

Canonical Cube to Screen

  • What is a screen?
    – An array of pixels(由像素组成的二维数组)
    – Size of the array: resolution
    – A typical kind of raster display(屏幕是一个经典的光栅化设备)
  • Raster == screen in German
    – Rasterize == drawing onto the screen
    光栅化的过程就是把东西画在屏幕上的过程
  • Pixel (FYI,short for “picture element”)
    – For now: A pixel is a little square with uniform color
    – Color is a mixture of (red, green, blue)
  • Defining the screen space
    在这里插入图片描述
    – 屏幕的左下角是原点,向右是x,向上是y
    – 像素的坐标是写成 (x, y)的。x和y都是整数
    – 如果一个屏幕的分辨率是 (width, height),那么所有的像素可以用 (0, 0)到 (width - 1, height - 1)来表示。
    – 像素实际的中心是 (x+0.5, y+0.5)
    – 整个屏幕空间可以覆盖 (0, 0)到 (width, height)范围
  • 我们现在要做的实际上就是从 [-1,1]的三次方到 (0, 0)×(width, height)这么一个屏幕空间的变换
    – 先不管z
    – 把xy从[-1,1]2变到[0,width] × [0,height]
    – 变换矩阵如下:(视口变换)
    在这里插入图片描述
  • 现在需要的是把图像打散变成像素,也就是光栅化。

Different raster displays 不同的光栅化设备

  • Oscilloscope 示波器
    阴极射线管 Cathode Ray Tube
    在这里插入图片描述
    隔行扫描(视频压缩也用过)但是高速运动会发生画面撕裂
  • 现在显示的图像就是内存中的一块区域
    在这里插入图片描述
  • 屏幕分辨率超过视网膜:视网膜屏幕
  • 显示器现在一般是LCD液晶显示器
    在这里插入图片描述
    液晶现实的原理:通过竖直的光栅再通过液晶的扭曲,把光渐渐的扭过来,再从水平光栅出去。
  • Electrophoretic (Electronic Ink) Display
    Kindle
    刷新率很低
    好处是看起来自然
    在这里插入图片描述

Rasterizing a triangle

为什么用三角形

用三角形表示面:

  • 最简单的多边形
  • 任何其他的多边形都可以被拆成三角形
  • 三角形内部一定是平面的
  • 三角形内外定义十分清楚,也可以用叉积判断
  • 给定三角形三个顶点的属性,三角形内部的属性也可以用渐变得到(插值)
如何用像素表示三角形(判断像素中心点与三角形位置关系)
  • 采样方法(Sampling a Function)
    – 采样就是把函数离散化的过程
    – 就是相当于某一个函数在不同像素中心的值是多少
    在这里插入图片描述
函数:inside(tri, x, y)
  • 判断像素是否在三角形内
    在这里插入图片描述
Evaluating inside(tri, x, y)

在这里插入图片描述

  • 如果在边界上,可以自己定义(比较牛的设定是落在上边和左边算三角形内,落在下边和右边不算三角形内)
Checking All Pixels on the Screen? Bounding Box

实际上三角形只是很小的区域,没必要遍历所有像素。
可以做一个包围盒 (Axis - Aligned Bounding Box)简称AABB
在这里插入图片描述

Faster

在这里插入图片描述

Real LCD Screen Pixels

在这里插入图片描述

Aliasing (Jaggies)

走样体现在:锯齿
原因:像素本身有一定体积
解决:抗锯齿、反走样

Occlusions and Visibility

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值