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

目录

  • GAMES101-现代计算机图形学入门-闫令琪——Lecture 05 Rasterization 1 (Triangles)
    • Finishing up Viewing
    • Rasterization 光栅化
      • Perspective Projection
      • Canonical Cube to Screen
      • Different raster displays 不同的光栅化设备
      • Rasterizing a triangle
        • 为什么用三角形
        • 如何用像素表示三角形(判断像素中心点与三角形位置关系)
          • 函数:inside(tri, x, y)
          • Evaluating inside(tri, x, y)
          • Checking All Pixels on the Screen? **Bounding Box**
          • Faster
      • Real LCD Screen Pixels
      • Aliasing (Jaggies)
    • Occlusions and Visibility

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

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

  1. GAMES101-现代计算机图形学入门-闫令琪——Lecture 19 Cameras and Lenses 学习笔记

    Lecture 19 Cameras and Lenses 一.Camera 1.Pinhole Image Formation 最早的相机是从小孔成像开始的. 2.Important Parts ( ...

  2. 现代计算机图形学入门-闫令琪 17课基本材质

    日出效果:尘埃分解光线画面.水柱之间有透明渐变和表面起伏反射.洞穴中间的聚光线发生的反射.飘起的头发发生的反射.布料材质反射的光线不同.蝴蝶的鳞片起伏反射.光晕的效果是中间灰两边亮.鱼片的表面的次反射 ...

  3. GAMES101-现代计算机图形学入门-闫令琪 - lecture15 光线追踪3 - 辐射度量学、渲染方程(Ray Tracing 3) - 课后笔记

    光线追踪3 - 辐射度量学.渲染方程和全局光照 内容: 辐射度量学 光线传输(Light transport) 反射方程(The reflection equation) 渲染方程(The rende ...

  4. GAMES101-现代计算机图形学入门-闫令琪 - lecture13 光线追踪1(Ray Tracing 1 - Whitted-Style Ray Tracing) - 课后笔记

    光线追踪1 (Ray Tracing 1 - Whitted-Style Ray Tracing) 课程一共分为四个大的板块,目前已经学习了光栅化和几何,可以实现图1和2的效果,下面要来学习第三个大的 ...

  5. GAMES101-现代计算机图形学入门-闫令琪 - lecture9 着色3(Shading 3) - 课后笔记

    着色3(Shading 3) 重心坐标 纹理查询 纹理应用 插值 - 重心坐标 (Barycentric Coordinates) 为什么要插值? 能够获得三角形三个固定顶点的属性,但是不知道三角形内 ...

  6. GAMES101-现代计算机图形学入门-闫令琪 - lecture14 光线追踪2 - 加速结构(Ray Tracing 2 - Acceleration) - 课后笔记

    光线追踪2 - 加速结构(Ray Tracing 2 - Acceleration) 对AABB结构优化来加速光线追踪的速度 均匀网格(Uniform grids) 空间划分(Spatial part ...

  7. 一篇学完:GAMES101:现代计算机图形学入门 学习笔记

    文章首发于lengyueling.cn 欢迎访问交流! PDF版本已经附在lengyueling.cn文章末尾,需要自取. 导论 图形学应用场景 电子游戏: PBR:之狼 卡通渲染:无主之地 电影:黑 ...

  8. GAMES101现代计算机图形学入门-第一节-图形学导论

    最近在为之后找工作面试做准备,所以把大二学习的计算机图形学又拿出来重新学起来了,也推荐大家一起看闫大神的课!!! 然后笔记是在lengyueling大佬的版本上进行的修改,总体还是大佬的模板. 希望大 ...

  9. GAMES101现代计算机图形学入门——几何表示之曲线与曲面

    此为个人学习笔记,总结内容来源于网络各个平台,如有错误欢迎指摘 几何表示 曲线与曲面 本节附加资料: Making things with Maths (acko.net) 游戏开发技术杂谈2:理解插 ...

最新文章

  1. hdu 2295 Radar 重复覆盖+二分
  2. 安装交叉工具链arm-linux-gcc
  3. 关于读构建之法后的疑惑
  4. ubuntu查看系统位数,版本号——百度
  5. 剑指offer——最小的K个数和数组中第K大的元素
  6. 【BZOJ1923】外星千足虫,高斯消元解xor方程组
  7. XML入门经典(第4版)pdf
  8. 【TSP问题】基于人工鱼群算法求解TSP问题matlab 源码
  9. 万能地图下载器标绘线的参数说明
  10. Skyline软件二次开发初级——1如何在web页面中添加控件和加载三维地图数据
  11. 后端+数据库(pycharm+mysql):使用 “flask”制作的调查量表/问卷
  12. 使用Windows系统的几个好的习惯
  13. LeetCode通关:听说链表是门槛,这就抬脚跨门而入
  14. Springboot+Vue实现仿课堂派
  15. 立创开源 | 恒温加热台
  16. std::vector介绍
  17. 计算机专业C语言编程学习重点:指针化难为易
  18. Codeforces1509 B. TMT Document(思维)
  19. JavaScript一键换肤
  20. CRM系统能给企业带来什么? CRM系统推荐

热门文章

  1. 计算机病毒清除软件属于什么软件,發现计算机病毒后,比较彻底的清除方式是()A用杀毒软件处理B删除磁盘文件C用查病毒软件处理D格式化磁盘...
  2. Raptor-博客进展(持续记录)
  3. 互联网公司时尚穿搭指南
  4. 【程序员修炼之道】你的知识资产
  5. 江阴市高中计算机会考知识点,明天高考考点能看啦!时间安排在...
  6. DAVINCI DM3730开发攻略——DVSDK4_03和双核CODEC机制介绍
  7. 红警维修—华为Nova7 SE泡水不开机,屏灯闪烁,5G手机开修了
  8. 如何查看计算机的cpu型号,怎么看电脑处理器型号
  9. FISCO BCOS 联盟链Max搭建
  10. 爬虫小练习01—获取网站源码