真实感渲染:三角函数、向量和矩阵
大家好~本课程为“真实感渲染”的线上课程,从0开始,介绍相关的图形学算法和数学基础,给出详细的数学推导、伪代码和实现代码,最终带领大家开发出基于物理的渲染器
线上课程资料:
加QQ群,获得ppt等资料,与群主交流讨论:106047770
本系列文章为线上课程的复盘,每上完一节课就会同步发布对应的文章
本课程系列文章可进入索引查看:
真实感渲染系列文章索引
为什么要学习本课
- 如何在几何上表示向量的加法?
- 如何在代数上计算向量的加法?
- 三角函数、向量、矩阵在图形学中有哪些应用?
主问题:什么是三角函数
-
对直角三角形而言,下面的三角函数的值分别是多少?
- sinθ
- cosθ
- tanθ
- cotθ
-
对任意三角形而言呢?
-
三角函数在图形学中有哪些应用?
- 已知三角函数的值后,可以计算出角度:(arcsinfrac{1}{2} = 30^o)
- 已知直角三角形的一边和一个角度,可以计算另外一边
主问题:什么是向量
-
用什么符号表示向量?
答:使用(overrightarrow{a})或者粗体a表示;
或者用起点和终点表示:(overrightarrow{AB} = B - A) -
向量有什么特性?
答:具有方向和长度;
没有绝对的起点; -
如何用代数表示向量?
答:
-
用什么符号表示向量的长度?
答:(Vert{overrightarrow{a}}Vert) -
什么是单位向量?
答:长度为1的向量 -
如何计算一个向量的单位向量(向量正交化)?
答:(widehat{a}=frac{overrightarrow{a}} {Vert{overrightarrow{a}}Vert}) -
如何应用单位向量?
答:用来表示方向,如法线 -
如何计算向量的加法?
-
几何上
答: -
代数上
答:略
-
-
向量的点积的定义是什么?
答:
-
对于两个单位向量,点积是多少?
答:(widehat{a} cdot widehat{{b}} = cos heta) -
点积满足什么运算法则?
答: -
如何进行点积的代数运算?
答: -
点积在图形学中有哪些应用?
- 计算两个向量的夹角
答:通过“两个单位向量的点积”,得到(cos heta),然后就可以得到夹角。这可以应用于计算光源方向和表面法线的夹角 - 计算一个向量到另一个向量的投影
答:
- 分解一个向量
答: - 决定向量的前/后关系
答:
如上图所示,如果两个向量都在一个半圆内,则它们属于“前”关系(如(overrightarrow{a},overrightarrow{b}));否则,则它们属于“后”关系(如(overrightarrow{a},overrightarrow{c}))
如果两个向量点积大于0,则(cos heta>0),所以( heta in [0, frac{pi}{2})),它们属于“前”关系;否则,它们属于“后”关系
- 计算两个向量的夹角
-
向量的叉积的定义是什么?
答:
-
叉积满足什么运算法则?
答: -
如何进行叉积的代数运算?
答: -
叉积在图形学中有哪些应用?
- 构建坐标系
答:
右手坐标系:
如上图所示,通过两个正交的单位向量的叉积来构建坐标系第三维的向量 - 决定向量的左/右关系
答:
如上图所示,假设(overrightarrow{a}, overrightarrow{b})在xy平面,如果(overrightarrow{a} imes overrightarrow{b} = +overrightarrow{z}),则(overrightarrow{b}在overrightarrow{a})的左侧;否则在右侧 - 判断一个点是否在三角形内
答:
分别判断上图的AB和AP、BC和BP、CA和CP,如果它们叉乘的结果同号,则点在三角形内。
- 构建坐标系
结学
- 什么是向量?
- 向量有什么特性?
- 点积在图形学中有哪些应用?
- 叉积在图形学中有哪些应用?
主问题:什么是矩阵
-
在图形学中,矩阵有哪些应用?
答:用于坐标变换,如位移、旋转、缩放 -
什么是矩阵?
答:可以看成是一个包含数字的数组
-
如何进行矩阵与标量相乘的代数计算?
答:矩阵的每个元素乘以该标量 -
“矩阵与矩阵”相乘有什么约束?
答: -
如何进行矩阵与矩阵相乘的代数计算?
答:
乘积中的第(i, j)个元素=第一个矩阵的第i行与第二个矩阵的第j列的点积 -
矩阵与矩阵相乘满足什么运算法则?
答:不满足交换律;
满足结合律和分配律:
-
“矩阵与向量”相乘有什么约束?
答:矩阵(mxn)乘以向量(nx1) -
如何进行矩阵与向量相乘的代数计算?
-
“矩阵与向量相乘”在图形学中有哪些应用?
- 变换一个点
答:如将一个点沿y轴镜像变换:
- 变换一个点
-
什么是矩阵转置?
答: -
矩阵转置满足什么运算法则?
答: -
什么是单位矩阵?
答: -
什么是逆矩阵?
答: -
如何用矩阵表示向量的点积?
答: -
如何用矩阵表示向量的叉积?
答:
结学
- 什么是矩阵?
- “矩阵与向量相乘”在图形学中有哪些应用?
总结
- 回答开始的问题?
参考资料
相关文章
- 【技术种草】cdn+轻量服务器+hugo=让博客“云原生”一下
- CLB运维&运营最佳实践 ---访问日志大洞察
- vnc方式登陆服务器
- 轻松学排序算法:眼睛直观感受几种常用排序算法
- 十二个经典的大数据项目
- 为什么使用 CDN 内容分发网络?
- 大数据——大数据默认端口号列表
- Weld 1.1.5.Final,JSR-299 的框架
- JavaFX 2012:彻底开源
- 提升as3程序性能的十大要点
- 通过凸面几何学进行独立于边际的在线多类学习
- 利用行动影响的规律性和部分已知的模型进行离线强化学习
- ModelLight:基于模型的交通信号控制的元强化学习
- 浅谈Visual Source Safe项目分支
- 基于先验知识的递归卡尔曼滤波的代理人联合状态和输入估计
- 结合网络结构和非线性恢复来提高声誉评估的性能
- 最佳实践丨云开发CloudBase多环境管理实践
- TimeVAE:用于生成多变量时间序列的变异自动编码器
- 具有线性阈值激活的神经网络:结构和算法
- 内网渗透之横向移动 -- 从域外向域内进行密码喷洒攻击