《real-timerendering》第四版学习笔记——chapter4transforms

董小虫 董小虫     2022-12-08     174

关键词:

引言

线性变换:保持向量加法和缩放操作:
f ( x ) + f ( y ) = f ( x + y ) , k f ( x ) = f ( k x ) \\mathbf f(\\mathbf x)+\\mathbf f(\\mathbf y)=\\mathbff(\\mathbf x+\\mathbf y),\\\\ k\\mathbf f(\\mathbf x)=\\mathbf f(k\\mathbf x) f(x)+f(y)=f(x+y),kf(x)=f(kx)

旋转和缩放变换都是对三维向量的线性变换,可以表示为 3 × 3 3\\times3 3×3矩阵。

平移变换是对一个向量执行加上另一个向量的操作; 3 × 3 3\\times3 3×3矩阵无法满足移动变换的表示。

仿射变换(affine transform)通过 4 × 4 4\\times4 4×4矩阵将平移变换与旋转、缩放变换结合起来。使用齐次(homogeneous)标记来表示思维向量:

  • 方向向量: v = ( v x v y v z 0 ) T \\mathbf v=(v_x\\quad v_y\\quad v_z\\quad 0)^T v=(vxvyvz0)T
  • 点: v = ( v x v y v z 1 ) T \\mathbf v=(v_x\\quad v_y\\quad v_z\\quad 1)^T v=(vxvyvz1)T

平移、旋转、缩放、反射、切变矩阵都是放射矩阵。仿射矩阵点特点就是保持线的平行性,但不保持长度和角度。仿射变换也可以表示为任意单独的仿射变换的串联。

一、基础变换

下表是大部分基础变换的汇总:

标记 名称 特点 T ( t ) 平 移 矩 阵 移 动 一 个 点 , 仿 射 R x ( ρ ) 旋 转 矩 阵 围 绕 x 轴 旋 转 ρ 弧 度 。 正 交 、 仿 射 S ( s ) 缩 放 矩 阵 根 据 s 沿 着 个 坐 标 轴 缩 放 。 仿 射 H i j ( s ) 切 变 矩 阵 将 i 分 量 进 行 为 s 倍 数 的 依 据 j 分 量 的 切 变 操 作 。 仿 射 E ( h , p , r ) 欧 拉 变 换 以 欧 拉 角 形 式 表 示 的 指 向 矩 阵 。 正 交 、 仿 射 P o ( s ) 正 交 投 影 向 平 面 或 空 间 内 进 行 平 行 投 影 。 仿 射 P p ( s ) 透 视 投 影 向 平 面 或 空 间 内 进 行 符 合 透 视 规 则 的 投 影 s l e r p ( q ^ , r ^ , t ) 球 面 线 性 插 值 根 据 四 元 数 q ^ 和 r ^ 以 及 参 数 t 来 创 建 插 值 的 四 元 数 \\beginarrayc|c|c \\textbf标记 & \\textbf名称 & \\textbf特点 \\\\ \\hline \\mathbf T(\\mathbf t) & 平移矩阵 & 移动一个点,仿射 \\\\ \\mathbf R_x(\\rho) & 旋转矩阵 & 围绕x轴旋转\\rho弧度。正交、仿射 \\\\ \\mathbf S(\\mathbf s) & 缩放矩阵 & 根据\\mathbf s 沿着个坐标轴缩放。仿射 \\\\ \\mathbf H_ij(s) & 切变矩阵 & 将i 分量进行为s倍数的依据j分量的切变操作。 仿射 \\\\ \\mathbf E(h,p,r) & 欧拉变换 & 以欧拉角形式表示的指向矩阵。正交、仿射\\\\ \\mathbf P_o(s) & 正交投影 & 向平面或空间内进行平行投影。仿射\\\\ \\mathbf P_p(s) & 透视投影 & 向平面或空间内进行符合透视规则的投影\\\\ \\mathrmslerp(\\mathbf\\hat q,\\mathbf\\hat r,t) & 球面线性插值 & 根据四元数\\mathbf\\hat q和\\mathbf\\hat r以及参数t来创建插值的四元数 \\endarray 标记T(t)Rx(ρ)S(s)Hij(s)E(h,p,r)Po(s)Pp(s)slerp(q^,r^,t)名称线特点仿xρ仿s沿仿isj仿仿仿q^r^t

1.1 平移

将一个实体沿着向量 v = ( t x , t y , t z ) \\mathbf v=(t_x,t_y,t_z) v=(tx,ty,tz)平移的变换矩阵可以表示为:
T ( t ) = T ( t x , t y , t z ) = ( 1 0 0 t x 0 1 0 t y 0 0 1 t z 0 0 0 1 ) \\mathbf T(\\mathbf t) = \\mathbf T(t_x,t_y,t_z) = \\beginpmatrix1 & 0 & 0 & t_x\\\\ 0 & 1 & 0 & t_y\\\\ 0 & 0 & 1 & t_z\\\\ 0 & 0 & 0 & 1 \\endpmatrix T(t)=T(tx,ty,tz)=100001000010txtytz1
需要注意的是,平移变换对向量 v = ( v x , v y , v z , 0 ) \\mathbf v=(v_x,v_y,v_z,0) v=(vx,vy,vz《real-timerendering》第四版学习笔记——chapter9physicallybasedshading

上接文章:《Real-TimeRendering》第四版学习笔记——Chapter9PhysicallyBasedShading(一)六、微观几何每个可见的表面点都包含了很多为表面的法线,每个法线都会将光反射到不同方向。因为这些方向都是随机的,所... 查看详情

《real-timerendering》第四版学习笔记——chapter5shadingbasics

上半部分:《Real-TimeRendering》第四版学习笔记——Chapter5ShadingBasics(一)四、走样和反走样最原始的显示方式是,当一个三角形覆盖了一个像素的中心,那么该像素就进行着色;否则就不进行着色。这种情... 查看详情

《real-timerendering》第四版学习笔记——chapter4transforms

引言线性变换:保持向量加法和缩放操作:f(x)+f(y)=f(x+y),kf(x)=f(kx)\\mathbff(\\mathbfx)+\\mathbff(\\mathbfy)=\\mathbff(\\mathbfx+\\mathbfy),\\\\k\\mathbff(\\mathbfx)=\\mathbf 查看详情

《real-timerendering》第四版学习笔记——chapter8lightandcolor

一、光的单位用精确的方法量化光,是基于物理渲染的第一步。辐射度量学(Radiometry):关注点为光的物理传播光度学(Photometry):处理根据人眼敏感度加权的光的值色度学(Colorimetry):... 查看详情

《real-timerendering》第四版学习笔记——chapter1introduction

引言实时渲染关注的是在计算机上快速生成图像。高度交互情景需要这种实时渲染。实时渲染的主要评判标准:图像生成速率,用FPS(framespersecond)或Hz(Hertz)来表示,影响交互性;三维图像的交互能力;图像质量... 查看详情

《real-timerendering》第四版学习笔记——chapter3thegraphicsprocessingunit

引言GPU设计的初衷是为了图形加速,而且GPU对CPU的唯一优势就是图形计算速度。GPU通过专注于高度并行的少量任务来获取高速度。GPU会专门提供定制化的芯片来实现深度缓冲、快速访问纹理图像、查找三角形覆盖像素等等。... 查看详情

《real-timerendering》第四版学习笔记——chapter2thegraphicsrenderingpipeline

引言渲染管线的主要功能是在给定一个虚拟相机、三维物体、光源以及其他条件的基础上,生成一个二维的图像。物体在图像中的位置和形状取决于它们的几何特征、环境特征和相机在环境的位置,而物体的外表则取决... 查看详情

《real-timerendering》第四版学习笔记——chapter5shadingbasics

上半部分:《Real-TimeRendering》第四版学习笔记——Chapter5ShadingBasics(一)四、走样和反走样最原始的显示方式是,当一个三角形覆盖了一个像素的中心,那么该像素就进行着色;否则就不进行着色。这种情... 查看详情

《real-timerendering》第四版学习笔记——chapter9physicallybasedshading

上接文章:《Real-TimeRendering》第四版学习笔记——Chapter9PhysicallyBasedShading(一)六、微观几何每个可见的表面点都包含了很多为表面的法线,每个法线都会将光反射到不同方向。因为这些方向都是随机的,所... 查看详情

《real-timerendering》第四版学习笔记——chapter5shadingbasics(代码片段)

引言着色模型根据应用可以主要分为两大类:写实风格(photorealism)和风格化外观(stylizedappearance)。一、着色模型着色模型描述了物体的颜色对于各种因素(如表面方向、视角、光照等)应该如何产... 查看详情

《real-timerendering》第四版学习笔记——chapter9physicallybasedshading

一、光的物理特性光与物体的交互形成了基于物理着色的基础。在物理层面上,光的模型为电磁横波。每个波都有一个单一的波长λ\\lambdaλ。具有单一波长的光叫单色光(monochromaticlight),如下图所示;实际... 查看详情

《real-timerendering》第四版学习笔记——chapter3thegraphicsprocessingunit

引言GPU设计的初衷是为了图形加速,而且GPU对CPU的唯一优势就是图形计算速度。GPU通过专注于高度并行的少量任务来获取高速度。GPU会专门提供定制化的芯片来实现深度缓冲、快速访问纹理图像、查找三角形覆盖像素等等。... 查看详情

算法第四版学习笔记之快速排序quicksort

软件:DrJava参考书:算法(第四版)章节:2.3快速排序(以下截图是算法配套视频所讲内容截图)1:快速排序2: 查看详情

《算法-第四版》学习资源

1.作者网站(可下载全部源码和课后答案)  http://algs4.cs.princeton.edu/home/2.网络公开课(Coursera非常好的网站,有中文App了,比网易云课堂好太多了!!!)  https://www.coursera.org/learn/introduction-to-algorithms/home/info 查看详情

《javascript高级程序设计(第四版)》学习笔记第3章(代码片段)

《JavaScript高级程序设计(第四版)》学习笔记(二)第3章📢大家好,我是小丞同学,最近在刷红宝书,这是一篇学习笔记📢愿你我一起在这肆意生活里大放光彩这是阅读《JavaScript高级程序设... 查看详情

《javascript高级程序设计(第四版)》学习笔记第3章(代码片段)

《JavaScript高级程序设计(第四版)》学习笔记(二)第3章📢大家好,我是小丞同学,最近在刷红宝书,这是一篇学习笔记📢愿你我一起在这肆意生活里大放光彩这是阅读《JavaScript高级程序设... 查看详情

读书随笔图像处理单元gpu:《real-timerendering》fourtheditionchapter3

本文总结了Real-TimeRendering(第四版)中第三章的内容这里仅总结在书中自己认为或者不懂的要点并结合实际工作学习所需,若内容讲解不详细还请谅解 随着市场对计算机图形渲染的需求越来越大,图像处理单元GPU产生了。因为... 查看详情

算法(第四版)学习笔记——归并排序

归并排序 MERGE-SORT时间复杂度:空间复杂度: 一、原地归并排序步骤:将两个已有序数组组合到一个数组中并排好序。1#include<stdio.h>2#include<malloc.h>3int*c;4voidmerge(int*a,int*b,intm,intn);5intmain()6{7intn,m,sum,i;8scanf("%d",&a 查看详情