Games101学习笔记 -光栅化
光栅化
经过MVP矩阵和视口变换后,我们就可以从相机的角度看到一个和屏幕大小一致的二维平面。
那么把这个看到的二维平面应用到我们的屏幕上的过程就是光栅化。
在这儿我们需要补充一个概念-像素:
像素:
一个二位数组,数组中每个单位代表一个像素,如1920*1080,简单理解为一个一个的小方块,每个方块内颜色是一样的,是屏幕最小的单位。(方便理解这样记录,实际远远比这复杂)
对于光栅化我们可以大概的氛围两部分,采样,深度缓冲
采样
把构成物体的三角形或其他图形的所有点,离散的对应到屏幕的像素上。
简单例子:
比如视口变换后,得到的是一个三角形,然后每个点判断是否在三角形内,在的话进行采样信息。

简单做法我们可以遍历所有的像素点,然后判断点是否在我们得到的这个三角形内(叉乘)。

上述计算直接计算后,会出现如下图,因为我们默认的像素内的颜色都是相同的:

这种现象就是我们说的锯齿,抗锯齿处理的话可以如下处理:
先把原图就行模糊处理,然后再逐像素率(把像素划分更小单位判断)采样:(MSAA)
模糊处理原理每个像素取被覆盖面的平均值。

深度缓冲
到目前位置我们只是考虑了二维平面的直接映射,但是二维平面的物体可能会有先后顺序造成的遮挡覆盖
等的情况,那么我们当然也需要对这部分进行处理,达到我们能看到正确的遮挡先后关系的效果,这部分
操作就是深度缓冲。
事件复杂度 O(N)
在生成图像的时候会生成两个图。一个是成品图,一个是每个像素对应的深度值。
计算方法:
1.所有像素的深度值,默认无限远。
2.每个像素采样的时候拿到采样到的深度和当前像素记录的深度作比较,小的话覆盖之前存贮的。并且把新的像素信息画上去。

相关文章:
Games101学习笔记 -光栅化
光栅化 经过MVP矩阵和视口变换后,我们就可以从相机的角度看到一个和屏幕大小一致的二维平面。 那么把这个看到的二维平面应用到我们的屏幕上的过程就是光栅化。在这儿我们需要补充一个概念-像素: 像素: 一个二位数组,数组中每个…...
Pytorch量化之Post Train Static Quantization(训练后静态量化)
使用Pytorch训练出的模型权重为fp32,部署时,为了加快速度,一般会将模型量化至int8。与fp32相比,int8模型的大小为原来的1/4, 速度为2~4倍。 Pytorch支持三种量化方式: 动态量化(Dynamic Quantization&…...
Sql奇技淫巧之EXIST实现分层过滤
在这样一个场景,我 left join 了很多张表,用这些表的不同列来过滤,看起来非常合理 但是出现的问题是 left join 其中一张或多张表出现了笛卡尔积,且无法消除 FUNCTION fun_get_xxx_helper(v_param_1 VARCHAR2,v_param_2 VARCHAR2…...
Linux下升级jdk1.8小版本
先输入java -version 查看是否安装了jdk java -version (1)如果没有返回值,直接安装新的jdk即可。 (2)如果有返回值,例如: java version "1.8.0_251" Java(TM) SE Runtime Enviro…...
【Mysql】数据库基础与基本操作
🌇个人主页:平凡的小苏 📚学习格言:命运给你一个低的起点,是想看你精彩的翻盘,而不是让你自甘堕落,脚下的路虽然难走,但我还能走,比起向阳而生,我更想尝试逆风…...
87 | Python人工智能篇 —— 机器学习算法 决策树
本教程将深入探讨决策树的基本原理,包括特征选择方法、树的构建过程以及剪枝技术,旨在帮助读者全面理解决策树算法的工作机制。同时,我们将使用 Python 和 scikit-learn 库演示如何轻松地实现和应用决策树,以及如何对结果进行可视化。无论您是初学者还是有一定机器学习经验…...
【计算机视觉】干货分享:Segmentation model PyTorch(快速搭建图像分割网络)
一、前言 如何快速搭建图像分割网络? 要手写把backbone ,手写decoder 吗? 介绍一个分割神器,分分钟搭建一个分割网络。 仓库的地址: https://github.com/qubvel/segmentation_models.pytorch该库的主要特点是&#…...
解析湖仓一体的支撑技术及实践路径
自2021年“湖仓一体”首次写入Gartner数据管理领域成熟度模型报告以来,随着企业数字化转型的不断深入,“湖仓一体”作为新型的技术受到了前所未有的关注,越来越多的企业视“湖仓一体” 为数字化转型的重要基础设施。 01 数据平台的发展历程…...
40.利用欧拉法求解微分方程组(matlab程序)
1.简述 求解微分方程的时候,如果不能将求出结果的表达式,则可以对利用数值积分对微分方程求解,获取数值解。欧拉方法是最简单的一种数值解法。前面介绍过MATLAB实例讲解欧拉法求解微分方程,今天实例讲解欧拉法求解一阶微分方程组。…...
OpenAI-Translator 实战总结
最近在极客时间学习《AI 大模型应用开发实战营》,自己一边跟着学一边开发了一个进阶版本的 OpenAI-Translator,在这里简单记录下开发过程和心得体会,供有兴趣的同学参考 功能概览 通过openai的chat API,实现一个pdf翻译器实现一个…...
【工业机器人】用于轨迹规划和执行器分析的机械手和移动机器人模型(MatlabSimulink)
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...
开源在线文档服务OnlyOffice
开源在线文档服务OnlyOffice应用启动与示例运行 - 掘金 ONLYOFFICE API 文档 - Example - IDEA运行Java示例 | ONLYOFFICE中文网 NEXTCLOUDonlyoffice的搭建和使用_nextcloud onlyoffice_莫冲的博客-CSDN博客 OnlyOffice java 部署使用,文件流方式 预览文件 | 言曌博…...
汽车基本常识
目录 电源KL30KL15 零部件简称 电源 KL30 KL15 零部件简称 VCU:整车控制器 直接网络管理节点 CDU:充电系统控制器 MCU:电机控制器 TCU:变速箱控制器 ABS:防抱死系统 EPS:助力转向 T-Box:远程…...
百度资深PMO阚洁受邀为第十二届中国PMO大会演讲嘉宾
百度在线网络技术(北京)有限公司资深PMO阚洁女士受邀为由PMO评论主办的2023第十二届中国PMO大会演讲嘉宾,演讲议题:运筹于股掌之间,决胜于千里之外 —— 360斡旋项目干系人。大会将于8月12-13日在北京举办,…...
为什么C++有多种整型?
C中有多种整型是为了满足不同的需求,提供更灵活和高效的整数表示方式。不同的整型具有不同的字节大小、范围和精度,可以根据应用的需求选择合适的整型类型。以下是一些原因解释为什么C有多种整型: 内存和性能优化:不同的整型在内存…...
玩一玩通义千问Qwen开源版,Win11 RTX3060本地安装记录!
大概在两天前,阿里做了一件大事儿。 就是开源了一个低配版的通义千问模型--通义千问-7B-Chat。 这应该是国内第一个大厂开源的大语言模型吧。 虽然是低配版,但是在各类测试里面都非常能打。 官方介绍: Qwen-7B是基于Transformer的大语言模…...
oracle积累增量和差异增量
积累增量和差异增量: 对于 RMAN 来说,积累增量备份和差异增量备份都是增量备份的一种形式,它们之间的区别在于备份的范围和备份集的方式。 积累增量备份:在进行积累增量备份时,RMAN 会备份自最后一次完全备份或增量备…...
利用C++nlohmann库解析json文件
json文件示例: 代码运行环境VS2019 一、git下载nlohmann库文件源代码 源代码文件目录 二、利用VS2019新建工程,并配置项目属性 配置VC目录---包含目录 三、项目源代码 #include <iostream> #include <fstream> #include <nlohmann/jso…...
OpenCV 中的光流 (C++/Python)
什么是光流? 光流是一项视频中两个连续帧之间每像素运动估计的任务。基本上,光流任务意味着计算像素的位移矢量作为两个相邻图像之间的对象位移差。光流的主要思想是估计物体由其运动或相机运动引起的位移矢量。 理论基础 假设我们有一个灰度图像——具有像素强度的矩阵。我…...
第9集丨Vue 江湖 —— 监测数据原理
目录 一、修改数据时的一个问题1.1 现象一1.2 现象二 二、Vue监测数据原理2.1 模拟一个数据监测2.2 数据劫持2.3 Vue.set()/vm.$set()2.4 基本原理2.4.1 如何监测对象中的数据?2.4.2 如何监测数组中的数据?2.4.3 修改数组中的某个元素 2.5 案例2.5.1 需求功能2.5.2 实现 一、…...
深度定制夜之城:赛博朋克2077存档编辑器完全指南
深度定制夜之城:赛博朋克2077存档编辑器完全指南 【免费下载链接】CyberpunkSaveEditor A tool to edit Cyberpunk 2077 sav.dat files 项目地址: https://gitcode.com/gh_mirrors/cy/CyberpunkSaveEditor 想要彻底掌控《赛博朋克2077》的游戏体验吗…...
Qt 树模型(Tree Model)的增删改查实战解析
1. Qt树模型基础概念解析 第一次接触Qt的树模型时,我完全被那些抽象概念绕晕了。直到做了几个实际项目后才明白,Tree Model本质上就是个数据管家,它帮我们管理树形结构的数据,并让这些数据能通过Qt的视图组件(比如QTre…...
终极 Vue.draggable.next 迁移指南:从 Vue 2 到 Vue 3 的无缝升级方案
终极 Vue.draggable.next 迁移指南:从 Vue 2 到 Vue 3 的无缝升级方案 【免费下载链接】vue.draggable.next Vue 3 compatible drag-and-drop component based on Sortable.js 项目地址: https://gitcode.com/gh_mirrors/vu/vue.draggable.next Vue.draggabl…...
Text2Image深度解析:基于注意力的文本到图像生成架构揭秘与实践指南
Text2Image深度解析:基于注意力的文本到图像生成架构揭秘与实践指南 【免费下载链接】text2image Generating Images from Captions with Attention 项目地址: https://gitcode.com/gh_mirrors/te/text2image 问题:文本描述如何精准转化为视觉图像…...
Nebula Console深度探索:解决图数据库交互效率瓶颈的技术实践
Nebula Console深度探索:解决图数据库交互效率瓶颈的技术实践 【免费下载链接】nebula-console Command line interface for the Nebula Graph service 项目地址: https://gitcode.com/gh_mirrors/ne/nebula-console 你是一个文章写手,你负责为开…...
AI写教材必备!专业技巧大公开,低查重教材不是梦
教材初稿修改难题与 AI 工具的出现 教材初稿刚刚完成,但接下来的修改过程真是让人费心!逐篇通读查找逻辑上的漏洞和知识点的错误,这往往需要耗费大量的时间与精力。调整某一章节的结构时,往往会牵扯到后面多个部分,这…...
2025.04.15【技术前沿】| scran:解锁单细胞RNA测序数据潜能的瑞士军刀
1. scran:单细胞数据分析的瑞士军刀 第一次接触单细胞RNA测序数据时,我被海量的基因表达矩阵弄得晕头转向。直到实验室的师兄推荐了scran,这个R包彻底改变了我的分析体验。就像瑞士军刀一样,scran把二十多种常用工具集成在一个包里…...
WuliArt Qwen-Image Turbo快速体验:输入提示词,几秒获得1024高清大作
WuliArt Qwen-Image Turbo快速体验:输入提示词,几秒获得1024高清大作 1. 引言:从想法到画面的极速通道 你有没有过这样的经历?脑子里突然冒出一个绝妙的画面,想把它变成一张图片,结果要么被复杂的AI绘画工…...
Gemma-3-12B-IT部署教程:防火墙/端口/日志排查常见问题解决手册
Gemma-3-12B-IT部署教程:防火墙/端口/日志排查常见问题解决手册 1. 项目简介与核心价值 如果你正在寻找一个性能强劲、部署友好,并且能通过网页直接对话的开源大语言模型,那么Gemma-3-12B-IT绝对值得你花时间了解一下。简单来说,…...
OpenClaw+优云智算Coding Plan:从灵感到成文,再到发布的全流程AI自动化稍
1.安装环境准备 1.1.查看物理内存 [rootaiserver ~]# free -m 1.2.操作系统版本 [rootaiserver ~]# cat /etc/redhat-release 1.3.操作系统内存 [rootaiserver ~]# df -h /dev/shm/ 1.4.磁盘空间 [rootaiserver ~]# df -TH [rootaiserver ~]# df -h /tmp/ [rootaiserver ~]# d…...
