首页 > 其他分享 >04 games101-变换(模型、视图、投影)

04 games101-变换(模型、视图、投影)

时间:2024-03-14 13:03:54浏览次数:24  
标签:04 变换 视图 像素 height width 屏幕 games101

04 变换(模型、视图、投影)

MVP变换

MVP变换用来描述视图变换的任务,即将虚拟世界中的三维物体映射(变换)到二维坐标中。

MVP变换分为三步:

●模型变换(model tranformation):将模型空间转换到世界空间(找个好的地方,把所有人集合在一起,摆个pose)

●摄像机变换(view tranformation):将世界空间转换到观察空间(找到一个放相机的位置,往某一个角度去看)

●投影变换(projection tranformation):将观察空间转换到裁剪空间(茄子!)

在这之后,还有一个视口变换。

视图变换(View)

视图变换的目的是变换Camera位置到原点,上方为Y,观察方向为-Z,即

image-20240312103331957

定义Camera:

  • Camera位置 e
  • 观察方向 g
  • 视点上方向 t

规定:

  • Camera的y轴正方向向上,z轴方向是 -x 叉乘 y(右手系)
  • 对物体进行运动,摄像机会跟随着一起运动保持相对位置不变。

步骤

变换Camera位置到原点,上方为Y,观察方向为-Z:

image-20240312103626404

模型变换和视图变换经常被一起叫作模型视图变换(ModelView Translation)即

image-20240312103752885

投影变换(Projection)

投影变换分为两种:

  • 正交投影变换:透视线平行
  • 透视投影变换:透视线相交,近大远小

img

正交投影

image-20240312103854395

透视投影

image-20240312103928171

image-20240312104021671

image-20240312104214061

image-20240312104227798

视口变换

视口变换
将处于标准平面映射到屏幕分辨率范围之内,即[-1,1]^2->[0,width]*[0,height], 其中width和height指屏幕分辨率大小

视锥

视锥表示看起来像顶部切割后平行于底部的金字塔的实体形状。这是透视摄像机可以看到和渲染的区域的形状。

image-20240312104920152

定义视锥:

  • 长宽比 Aspect
  • 垂直的角度 FovY

img

利用视锥得到物体长宽高:
img

屏幕(Screen)

  • 二维数组,数组元素为像素
  • 典型的光栅成像设备

光栅(Raster)

  • 德语中的屏幕
  • 画在屏幕上

像素(Pixel <- PIcture element)

  • 像素是一个颜色均匀的小正方形
  • 颜色混合而成(红、绿、蓝)

屏幕空间

认为屏幕左下角是原点,向右是x,向上是y
img
规定:

  • 像素坐标(Pixel’s indices)是(x, y)形式,x, y都是整数。
  • 所有的像素都在(0, 0)到(width-1, height-1)之间
  • 像素的中心:(x+0.5, y+0.5)
  • 整个屏幕覆盖(0,0)to(width,height)

视口变换

中…(img-bRwKXua0-1710211927718)]

屏幕(Screen)

  • 二维数组,数组元素为像素
  • 典型的光栅成像设备

光栅(Raster)

  • 德语中的屏幕
  • 画在屏幕上

像素(Pixel <- PIcture element)

  • 像素是一个颜色均匀的小正方形
  • 颜色混合而成(红、绿、蓝)

屏幕空间

认为屏幕左下角是原点,向右是x,向上是y
[外链图片转存中…(img-X0B8gGMR-1710211927718)]
规定:

  • 像素坐标(Pixel’s indices)是(x, y)形式,x, y都是整数。
  • 所有的像素都在(0, 0)到(width-1, height-1)之间
  • 像素的中心:(x+0.5, y+0.5)
  • 整个屏幕覆盖(0,0)to(width,height)

视口变换

image-20240312105041961

标签:04,变换,视图,像素,height,width,屏幕,games101
From: https://blog.csdn.net/zgynbnbnb/article/details/136645240

相关文章

  • 06 games101-光栅化(深度测试与抗锯齿)
    06光栅化(深度测试与抗锯齿)从采样分析走样采样的对象:●在位置上采样——照片●在时间上采样——视频以下副标题均是在时域上分析。采样的瑕疵(Artifacts)Artifacts(Erros/Mistakes/Inaccuracies)●锯齿●摩尔纹●车轮效应●…走样的原因信号频率太快,采样太......
  • 05 games101-光栅化(三角形的离散化)
    05光栅化(三角形的离散化)三角形三角形的性质和优点:●最基础的多边形●其他图形可以拆解为三角形●三角形内一定是平面●内外的定义很明确●定义三个顶点后,三角形内可以插值光栅化(Rasterization)光栅化关键:判断一个像素和三角形的位置关系(像素中心点与三角形的位......
  • 【趣味学算法】04_与谁结婚(逻辑推断|条件组合)
    注:本系列仅为个人学习笔记,学习内容为《算法小讲堂》(视频传送门),通俗易懂适合编程入门小白,需要具备python语言基础,本人小白,如内容有误感谢您的批评指正有三对情侣要结婚,假设三位靓仔分别为A、B、C,三位小仙女为X、Y、Z。他们三对情侣比较皮,准备让吃瓜路小由鱼来猜!小由鱼......
  • P5304 [GXOI/GZOI2019] 旅行者
    Mikuuu准备投身于ACM的潮流中,失踪人口回归啦!这个题目的思路还是非常有趣的,因为我们可以注意到,两个可能成为答案兴趣点之间的最短路不应该经过了第三个点,如果经过了,显然和第三个点之间的最短路会更小,则原来的两个点之间不应该成为答案。考虑到这一点,我们可以想到建枚举每一条边,......
  • 04_C++字符串_vector使用
    1.初始化vector vector<int>v1;默认初始化vector<int>v2(10);10个int类型的元素,初始化值为-1vector<string>v3{"a","bb","ccc"};列表初始化,包括三个元素2.向vector添加元素#include<iostream>#include<string>#include<vector>......
  • CG-04 雨量传感器 翻斗式雨量计 防汛哨兵 洪灾水库雨情实时测报
    产品概述CG-04型翻斗式雨量传感器是一种水文、气象仪器,用于测量自然界降雨量,同时将降雨量转换为以开关量形式表示的数字信息量输出,以满足信息传输、处理、记录和显示等的需要。本仪器由承雨器部件和计量部件等组成。承雨口采用口径Φ200mm。计量组件是一个翻斗式机械双稳态秤......
  • 杂项04
    个人项目用到的知识:增删改查,分页,高级查询,Vue+elementUI,Hutool工具包,登录功能,session跨域问题解决,登录拦截…一、后端项目构建1.后端环境搭建构建项目:个人项目是一个基于Springboot+Vue的前后端分离的项目建父项目,父项目是一个空项目,子模......
  • 904. 水果成篮c
    typedefstructnode{intfruit;intlastindex;}node;inttotalFruit(int*fruits,intfruitsSize){nodef[2];f[0].fruit=-1,f[1].fruit=-1;intmax=0,sum=0;inttail=0;while(tail<fruitsSize){inti=0;for(;......
  • LM2904DT运算放大器中文资料规格书PDF数据手册引脚图参数图片功能概述
    产品概述:该电路由两个独立的高增益运算放大器(运算放大器)组成,内部实现了频率补偿。它们专为汽车和工业控制系统而设计。该电路采用单电源供电,工作电压范围很广。低功耗与电源电压的大小无关。应用领域包括传感器放大器、直流增益模块和所有传统的运算放大器电路,这些电路现在可......
  • L1-049 天梯赛座位分配
    测试点1提交了好多次,都没过去。找网上那些测试点输出结果是一样的,但就是过不去。然后认真思考了一番,自己可能没理解好这道题。我的理解错误在于,认为在最大的时候,号码应该是这一队的上一个人号码加上2。实际上,只有上一个号码和他在同一队的时候,才这么干。如果不是同一队,依旧是加......