视频 &图片来源:【B站】GAMES101-现代计算机图形学入门-闫令琪

目录

  • 1. 正交投影-续
    • 1.1 宽高比与垂直可视角
    • 1.2 显示
  • 2. 光栅化
    • 2.1 三角形
    • 2.2 采样
    • 2.3 实际屏幕的光栅化

1. 正交投影-续

1.1 宽高比与垂直可视角

  • 宽高比 aspect ratio
  • 垂直可视角度 vertical field of view:与上沿重心连线,和与下沿中心连线之间的夹角(图里两条红色虚线的夹角)。影响视锥(frustum)的开口(角度越小,越趋近于正交投影)。


一个例子:上图为从侧面观察
引出:通常情况下,我们定义一个视锥,只需要定义①垂直可视角度;②宽高比,其他的参数可以自动转化到定义正交投影的概念上。

1.2 显示

什么是屏幕(screen)

  • (图形学上说是)像素的数组
  • 分辨率:定义数组的大小
  • 一种典型的光栅显示

什么是光栅(raster)

  • 把图像画在屏幕上的过程

什么是像素(pixel)

  • 一个颜色统一的小方块(方块内颜色没变化)
  • 一个像素内的颜色可以由RGB表示

什么是屏幕空间

  • 像素的坐标(index)由(x,y)(x,y)(x,y)表示
  • 每个像素由一个整数坐标来描述
  • 像素的下标范围:(0,0)→(0,0)\to(0,0)→(width−1,height−1)(width-1,height-1)(width−1,height−1)
  • 虽然用整数描述,像素中心在(x+0.5,y+0.5)(x+0.5,y+0.5)(x+0.5,y+0.5)
  • 整个屏幕的范围:(0,0)→(width,height)(0,0)\to(width,height)(0,0)→(width,height)

视口转换矩阵:Mviewpoint=(width200width20height20height200100001)M_{viewpoint}=\left(\begin{matrix}\frac{width}{2}&0&0&\frac{width}{2}\\0&\frac{height}{2}&0&\frac{height}{2}\\0&0&1&0\\0&0&0&1\end{matrix}\right)Mviewpoint​=⎝⎜⎜⎛​2width​000​02height​00​0010​2width​2height​01​⎠⎟⎟⎞​
核心:先缩放再移动。3×33\times33×3对角阵-缩放。

2. 光栅化

2.1 三角形

为什么要用三角形?

  • 三角形是最基础的多边形
  • 任何多边形都可以拆成三角形
  • 三角形内部一定是平面的
  • 三角形内外定义的非常清晰
  • 定义三角形三个顶点不同的属性,能够得到一个渐变的效果(在三角形内部插值)

2.2 采样

采样:离散化函数的过程。

定义二元函数:inside(t,x,y)={1点(x,y)在三角形t内0其他inside(t,x,y)=\begin{cases}1& \text{点(x,y)在三角形t内}\\0&\text{其他}\end{cases}inside(t,x,y)={10​点(x,y)在三角形t内其他​

//采样
//遍历整个屏幕
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);


蓝色区域:包围盒(Bounding Box),光栅化只考虑区域内的像素。

另一种加速方法:找每一行的最左像素和最右像素。适用于窄长的三角形。

2.3 实际屏幕的光栅化

实际LCD屏幕上的像素

三星的钻石排列(bayer pattern)使用了更多的绿色像素→人眼对绿色更敏感

【Games101】Lecture05 光栅化 笔记相关推荐

  1. GAMES101笔记_Lec05~06_光栅化 Rasterization

    1 视口变换-从裁剪空间到屏幕空间 Canonical Cube to Screen 1.1 什么是屏幕 What is a screen? 在图形学中,抽象的认为屏幕是一个二维数组,数组中每一个元素 ...

  2. 图形学基础笔记II:多边形光栅化算法和显卡三角形光栅算法

    为什么三角形就够了 实际对于 3D 来说肯定全是基于三角形的 geometry - OpenGL: Is it more efficient to use GL_QUADS or GL_TRIANGL ...

  3. Game101课程笔记_lecture06_光栅化2

    Game101课程笔记_lecture06_光栅化2 1 Antialiasing 反走样 1 采样理论 1 Artifacts:错误,瑕疵.(in Graphics) 2 antialiasing ...

  4. 图形学学习笔记2——点阵图形光栅化

    点阵图形光栅化 将参数描述的图形转化为点阵的算法,评价指标有:精度.时间复杂度.空间复杂度.对实时性要求高的实时渲染场景比如游戏动画,应该需要更快的转化为点阵.类似制作动画片的离线渲染就对精度要求更高 ...

  5. Games101计算机图形学入门基础之二:光栅化

    Games101计算机图形学入门基础之二:光栅化 引言 三角形的离散化 采样 走样 走样带来的瑕疵 反走样 先模糊再采样 傅里叶变换 低通滤波 卷积 多重采样抗锯齿(超采样) 深度缓存 可见性与遮挡( ...

  6. 计算机图形学【GAMES-101】2、光栅化(反走样、傅里叶变换、卷积)

    快速跳转: 1.矩阵变换原理Transform(旋转.位移.缩放.正交投影.透视投影) 2.光栅化(反走样.傅里叶变换.卷积) 3.着色计算(深度缓存.着色模型.着色频率) 4.纹理映射(重心坐标插值 ...

  7. 图形学笔记(五)光栅化——屏幕、像素、屏幕空间、视口变换、基础图元与三角形、采样、包围盒、锯齿或走样

    图形学笔记(四)变换--三维变换(三维旋转与欧拉角).MVP变换.视图变换.投影变换(正交投影与透视投影) 图形学笔记(六)光栅化2 -- Artifacts.时域与频域.滤波.卷积定理.超采样.MS ...

  8. GAMES101复习:光栅化

    MVP变换之后该做什么?自然是将变换好的视图映射到屏幕空间上. 最终会把映射到屏幕空间上去. 当所有的三角形都已经屏幕上,这时就要把三角形画出来,这个过程就叫光栅化. 利用像素的中心(是否在三角形内) ...

  9. 【计算机图形学入门】笔记5:光栅化(三角形的离散化)

    目录 05光栅化(三角形的离散化) 1.Canonical Cube to Screen 从标准立方体到屏幕 1.屏幕是什么?What is a screen? 2.光栅化是什么?Raster == ...

  10. 计算机图形学笔记五:光栅化(消隐算法)和 前几节内容总结

    消隐算法和前几节内容总结 1.消隐算法 1.1画家算法(Painter's Algorithm) 1.2 Z-Buffer算法 2.前几节内容总结 1.消隐算法 1.1画家算法(Painter's A ...

最新文章

  1. rollback 最后判断成功_面试自我介绍随便说说就行?注意3忌2套路帮你提升50%成功率...
  2. SQL Server 2005:你应该知道的13件事情
  3. Shell echo-使用echo实现更复杂的输出格式控制
  4. 现共收到 5 个分组,其目的地址分别为: (1) 128.96.40.10 (2) 128.96.41.12 (3) 128.96.41.151 (4) 192.4.123.17 (5) 192.4.
  5. 临时开启PHP错误提示
  6. html怎么防止扒站点,扒站工具-扒取站点js css的工具
  7. multisim 9013、8050免费下载
  8. Leetcode 1284 Minimum Number of Flips to Convert Binary Matrix to Zero Matrix
  9. LUA学习--Hotfix
  10. 2021-09-14TL431与LM317的区别
  11. Exchange Server 2013 VS 2016
  12. 世界上最大的问题,就是最大的商业机会
  13. arcgis标注转为注记后,如何批量修改注记及牵引线颜色
  14. 【quartus】packed unpacked array
  15. 分布式协调系统ZooKeeper的安装
  16. 东北电力计算机考研分数线,东北电力大学考研分数线_2021考研国家分数线什么时候出来...
  17. 为什么都开始搞研发效能?
  18. 一个NB-IoT/4G模组的AT拨号联网流程
  19. C语言单元测试框架详解:第一篇
  20. php 图片视频模糊处理,视频图像模糊处理

热门文章

  1. 世预赛:12强赛首战国足0-3不敌澳大利亚,下一场面对日本队国足会如何调整?
  2. 如何构建企业TPM管理体系?
  3. mstar v56几路hdmi_TCL MStar常用升级方法图文教程
  4. 阿里云服务器遭ddos攻击防御案例
  5. 2018-2019赛季多校联合新生训练赛第四场题解与补题(中石油)
  6. Unity3D制作平面FlappyBird小游戏
  7. XShell VIM 粘贴
  8. 先睹为快,Go2 Error 的挣扎之路
  9. c++无法启动程序,系统找不到指定文件的处理方法
  10. 人生就是一场与自己的较量,社科院杜兰金融硕士项目引领你走得更远