当前位置: 首页 > news >正文

games101-(5/6)

光栅化

投影完成之后,视图区域被确定在从[-1,1]的单位矩阵中,下一步就是光栅化

长宽比:ratio

垂直的可视角度:fild-of-view 可以看到的y 轴的范围,角度越小 越接近正交投影

屏幕坐标系

将多边形转化成像素

显示器的成像:隔行扫描(每次仅仅绘制奇数行或偶数行)

三角形

像素和三角形的位置关系:像素的中心点和三角形的位置关系如何确定

采样

判断像素的中心点是否在三角形内

如何实现一个点是否在三角形内?

使用叉乘:p1p2 与p1q 叉乘 ,使用右手螺旋定则,z朝外,q 在p1 p2 的左侧

同理:q 在p2p0的右侧

q在p0 p1 的左侧;

因此 q 在三角形外侧

包围盒:bounding box ;不需要考虑所有的像素;考虑 三角形顶点的最大最小值

实际中会有锯齿,光栅化采样会导致该问题

反走样

通过判断像素点中心是否在三角形中,获取该像素点的值

实际得到:

期望得到:

实际上不期望出现锯齿

采样产生的现象:

(1)锯齿:jaggies

(2)摩尔纹

通过删除奇数行列后放大到和原图像尺寸

频域

高频信息:

对应图像的边界

卷积

时域卷积= 频域乘积

采样频率过低会导致频谱混叠,无法恢复,采样频率>= f

处理

(1)增加采样率:显示器分辨率高,像素和像素之间的间隔小,采样率高,更清楚

(2)反走样:先做模糊处理(低通滤波,过滤掉高频信息),再采样,相当于降低了原来频谱的对应的T,这样低的采样率不容易造成频谱混叠,无法过滤出原来的频谱

计算平均像素值:

MSAA

通过对像素内的多个位置进行采样并取其平均值来近似 1 像素盒式滤波器的效果

原本的效果:

第一步:使用2x2的像素点代替原来的像素点 

如蓝色区域,有75%的像素点在三角形内 

深度缓冲 Z-buffer

Painter‘s Algorithm

先画远处,再画近处

解决不了环形覆盖的问题

Z-Buffer

右图记录深度,深度越小,颜色越重

算法

如果当前三角形点的z 值小于 zbuffer中维护的z值,则重新赋值;

并且更新该点中的z值

http://www.lryc.cn/news/528191.html

相关文章:

  • 人工智能在计算机视觉中的应用与创新发展研究
  • 1-2 飞机大战游戏场景
  • Mac Electron 应用签名(signature)和公证(notarization)
  • Sklearn 中的逻辑回归
  • 【阅读笔记】New Edge Diected Interpolation,NEDI算法,待续
  • 编程题-最长的回文子串(中等)
  • Versal - 基础3(AXI NoC 专题+仿真+QoS)
  • 知识库建设对提升团队协作与创新能力的影响分析
  • Java 实现Excel转HTML、或HTML转Excel
  • stack 和 queue容器的介绍和使用
  • 云计算与虚拟化技术讲解视频分享
  • python flask 使用 redis写一个例子
  • 深入解析 Linux 内核内存管理核心:mm/memory.c
  • 跟我学C++中级篇——64位的处理
  • 指针的介绍2后
  • Linux 学习笔记__Day3
  • Ubuntu x64下交叉编译ffmpeg、sdl2到目标架构为aarch64架构的系统(生成ffmpeg、ffprobe、ffplay)
  • 【时时三省】(C语言基础)文件的随机读写
  • HPO3:提升模型性能的高效超参数优化工具
  • 【Docker】Docker入门了解
  • AIGC(生成式AI)试用 19 -- AI Agent
  • LeetCode:70. 爬楼梯
  • 《Trustzone/TEE/安全从入门到精通-标准版》
  • 2025神奇的数字—新年快乐
  • 第一个3D程序!
  • Hive:内部表和外部表,内外转换
  • 2024收尾工作
  • 能说说MyBatis的工作原理吗?
  • 简单的SQL语句的快速复习
  • Spring MVC 综合案例