【Notes_4】现代图形学入门——光栅化、离散化三角形、深度测试与抗锯齿
光栅化
Viewport Transform(视口变换)
将经过MVP变换后得到的单位空间模型变换到屏幕上,屏幕左边是左下角为原点。

所以视口变换的矩阵
\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{pmatrix}\]
Rasterization:Draw to Raster Displays
主要是将已经经过视口变换的模型画在屏幕空间上。
主要过程有:
(1) 采样
(2) 判断像素中心的位置与三角形的关系
采样
因为屏幕空间本身分辨率已经给出,所以像素点的数量也已经确认了,但是对我们可以通过以下方法提高效率,将可能有用的像素点选取出来:
1.Bounding Box

2.Incremental Triangle Traversal

判断像素中心的位置与三角形的关系
主要应用的原理是利用向量的叉乘判断点是否在三角形内。
伪代码如下
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)
反走样与深度缓冲
Artifacts(瑕疵) in Computer Graphics
产生Artifacts的分类和原因
(1) Jaggies(Staircase Pattern)
原因:空间采样产生的锯齿
(2) Mpire
原因:图片欠采样
(3) Wagon Wheel Effect
原因:时间上采样产生
解决办法
(1) 提高采样率:不实用
(2) 反走样
反走样
反锯齿的思路是先模糊,后采样,顺序不可以调换。
走样的原因:采样频率满足奈奎斯特采样定律,即采样频率高于二倍的最高频率。
滤波
频率图:越靠近中心点,表示的频率越低
滤波器的种类大致分为四类:
(1) 低通滤波:应用的效果是模糊
(2) 高通滤波:应用效果是提取边缘信息
(3) 带通滤波:也可以绘制出图像的边缘信息
卷积定理
时域卷积、频域相乘
时域卷积,频率图向两边拓展。

MSAA
通过MSAA方法可以首先模糊的效果。
步骤如下:
(1) 将每个像素点再进行细分
(2) 判断一个像素点里有几个细分的点在三角形内
(3) 将像素点根据在三角星内部细分点不同程度的着色,表示已经模糊。
上述过程的流程图如下:


上述过程在频率上的过程相当于低通滤波

Z-Buffer深度缓冲
每个像素都有一个z值代表像素点的深度、z值越大,说明该点越远。
Z-Buffer 算法伪代码
Initalize depth buffer to \(\infty\)
for(each trangle T)
for(each sample(x,y,z) in T)
if(z<zbuffer[x,y]) //closeet samnple so far
zbuffer[x,y]=z; //update color
framebuffer[x,y]=rgb; //update depth
【Notes_4】现代图形学入门——光栅化、离散化三角形、深度测试与抗锯齿的更多相关文章
- [计算机图形学]光栅化算法:DDA和Bresenham算法
目录 一.DDA 二.Bresenham 三.绘制图形 1. 绘制直线 2. 绘制圆 3. 绘制椭圆 一.DDA DDA算法是最简单的直线绘制算法.主要思想是利用直线的斜截式:\(y=kx+b\) 对 ...
- 【Notes】现代图形学入门_02
跟着闫令琪老师的课程学习,总结自己学习到的知识点 课程网址GAMES101 B站课程地址GAMES101 课程资料百度网盘[提取码:0000] 光栅化 着色(Shading) 在图形学中,着色的定义可 ...
- 【Notes】现代图形学入门_01
跟着闫令琪老师的课程学习,总结自己学习到的知识点 课程网址GAMES101 B站课程地址GAMES101 课程资料百度网盘[提取码:0000] 计算机图形学概述 计算机图形学是一门将模型转化到屏幕上图 ...
- OpenGL ES 3.0 图元组合和光栅化(三)
图元是能够被OpenGL ES 绘制的几何物体,如三角形.线条或者精灵.在图元组合过程 中,对每个图元必须判断是否位于投影 截体内,如果图元不完全在平截体内部,将被视图平截体剪贴,如果完全在平截体外, ...
- 光栅化规则(Rasterization Rules)
光栅化规则不是唯一的,只要能满足在扫描线填充过程中,对于一条分割线两边的像素能够被不重复不遗漏地填充即可. 在gdi3d中目前使用的是下面光栅化规则: xLeft_int=ceil(xLeft-0.5 ...
- DirectX11 With Windows SDK--07 添加光照与常用几何模型、光栅化状态
原文:DirectX11 With Windows SDK--07 添加光照与常用几何模型.光栅化状态 前言 对于3D游戏来说,合理的光照可以让游戏显得更加真实.接下来会介绍光照的各种分量,以及常见的 ...
- 【Notes_1】现代图形学入门——计算机图形学概述
跟着闫令琪老师的课程学习,总结自己学习到的知识点 课程网址GAMES101 B站课程地址GAMES101 课程资料百度网盘[提取码:0000] 计算机图形学概述 计算机图形学是一门将模型转化到屏幕上图 ...
- 【Notes_9】现代图形学入门——光线追踪(基本原理)
跟着闫令琪老师的课程学习,总结自己学习到的知识点 课程网址GAMES101 B站课程地址GAMES101 课程资料百度网盘[提取码:0000] 目录 光线追踪 为什么要光线追踪 soft shadow ...
- 基于显卡的光栅化渲染器Gaius计划
决定实现一个基于显卡的光栅化渲染器,能将一些基于显卡的新算法融入其中.
随机推荐
- sql 工具类function
--判断是否为整数 create or replace function is_number(param VARCHAR2) return NUMBER is v_num NUMBER; begin ...
- 真正云原生的智能运维体系,阿里云发布ECS自动化运维套件
云计算的发展,推动了自动化运维.DevOps.AIOps 等趋势的兴起,在业务快速变化的今天,企业希望通过一套自动化运维的专家系统提高运维效率,为业务提供支撑. 传统的方式下,打造一套成熟的 DevO ...
- Eureka详解系列(三)--探索Eureka强大的配置体系
简介 通过前面的两篇博客,我们知道了:什么是 Eureka?为什么使用 Eureka?如何适用 Eureka?今天,我们开始来研究 Eureka 的源码,先从配置部分的源码开始看,其他部分后面再补充. ...
- [ZJOI2007]仓库建设(斜率dp优化)
前言 纪念一下我做的第二道斜率优化$dp$题,终于自己能把代码敲出来了,然而有很智障的$bug$,把$i$写成$q[i]$,找了半天QAQ.然后写$dp$公式并优化的能力稍微强了一点(自我感觉良好), ...
- 2019 Multi-University Training Contest 1 Path(最短路+最小割)
题意:给你n个点 m条边 现在你能够堵住一些路 问怎样能让花费最少且让1~n走的路比最短路的长度要长 思路:先跑一边最短路 建一个最短路图 然后我们跑一边最大流求一下最小割即可 #include &l ...
- 【noi 2.6_6252】带通配符的字符串匹配(DP)
题意:给出一个带有通配符("?"可以代替一个字符,"*"可以代替零个或多个字符)的a字符串和一个不带通配符的b字符串,判断他们是否能够匹配. 解法:f[i][j ...
- CodeForces - 1201B Zero Array
You are given an array a1,a2,-,ana1,a2,-,an. In one operation you can choose two elements aiai and a ...
- 牛客编程巅峰赛S1第11场 - 黄金&钻石 A.牛牛的01游戏 (模拟栈)
题意:有一个\(01\)串,两个相邻的\(0\)可以变成一个\(1\),两个相邻的\(1\)可以直接消除,问操作后的字符串. 题解:数组模拟栈直接撸,上代码吧. 代码: class Solution ...
- SPU与SKU概念
1. 什么是SPU SPU 是商品信息聚合的最小单位,是一组可复用.易检索的标准化信息的集合,该集合描述了一个产品的特性.即:某一款商铺的公共属性. 通俗点讲,属性值.特性相同的货品就可以称为一个 S ...
- Linux CentOS7.x 升级内核的方法
一.概述 在数据中心基础环境中,Linux系统使用很普遍,但是有时候会遇到应用程序需要运行在高版本的内核上或者有时候系统自身要求需要升级内核,我们要综合考虑升级内核的风险. 二.升级内核的方法 1.查 ...