tangent space--切空间
来源:互联网 发布:网络视频会议摄像头 编辑:程序博客网 时间:2024/04/29 20:06
在做类似normal mapping的时候我们不可避免的要接触到tangent space--切空间;
需要在这个空间里面做光照计算;
自己经常被这些个概念混淆,试图在这篇blog里面弄清楚;
1,tangent space 与 model space
这是两个coordinate,存储normal map信息的时候是按照tangent space来存储;
model space就是一个物体所在的空间,tangent space对于3D object来说就是某一点的vertex的切平面;
而做光照计算的时候,光源是在model space,由于我们要得是夹角,所以可以把一个转换到另外一个中去;
2,转换:
tangent space象model space一样,用三个向量定义,对应x,y,z轴,名字叫tangent,normal,binormal
如果我们已知tangent,normal,binormal在model space中normalize后的值;
那么转换工作就可以通过构建3x3矩阵来实现,如果做向量变换的时候采用矩阵在右的乘法的话,
矩阵可以这样构建:|tx,nx,bx|
|ty,ny,by|
|tz,nz,bz|
意义也非常明显,假设vec(x,y,z)做矩阵乘法时候,那么第一项是dot(vec,float3(tx,ty,tz))
就是vec在tangent上的投影大小;
3,tangent matrix是orthogonal的
orthogonal矩阵就是它的转置是它的逆矩阵;
由于tangent,normal,binormal是正交的,而且normalize的,
所以无论推理还是验证都可以得到这个特点;
需要在这个空间里面做光照计算;
自己经常被这些个概念混淆,试图在这篇blog里面弄清楚;
1,tangent space 与 model space
这是两个coordinate,存储normal map信息的时候是按照tangent space来存储;
model space就是一个物体所在的空间,tangent space对于3D object来说就是某一点的vertex的切平面;
而做光照计算的时候,光源是在model space,由于我们要得是夹角,所以可以把一个转换到另外一个中去;
2,转换:
tangent space象model space一样,用三个向量定义,对应x,y,z轴,名字叫tangent,normal,binormal
如果我们已知tangent,normal,binormal在model space中normalize后的值;
那么转换工作就可以通过构建3x3矩阵来实现,如果做向量变换的时候采用矩阵在右的乘法的话,
矩阵可以这样构建:|tx,nx,bx|
|ty,ny,by|
|tz,nz,bz|
意义也非常明显,假设vec(x,y,z)做矩阵乘法时候,那么第一项是dot(vec,float3(tx,ty,tz))
就是vec在tangent上的投影大小;
3,tangent matrix是orthogonal的
orthogonal矩阵就是它的转置是它的逆矩阵;
由于tangent,normal,binormal是正交的,而且normalize的,
所以无论推理还是验证都可以得到这个特点;
- tangent space--切空间
- 切线空间(tangent space)
- 切线空间(Tangent space)详解
- 切线空间(Tangent space)详解
- normalMapping --- 切线空间 tangent space
- Bump map 和 Tangent space(切线空间)
- 切线空间(tangent space)&法线贴图(normal map)
- 切线空间(Tangent Space)法线映射(Normal Mapping)
- 【D3D11游戏编程】学习笔记二十四:切线空间(Tangent Space)
- 【D3D11游戏编程】学习笔记二十四:切线空间(Tangent Space)
- 3D数学 学习笔记(9) 凹凸映射(bump mapping)和切线空间(tangent space)
- Bump mapping所涉及的Tangent space
- 计算三角形网格的tangent space
- Tangent Space的基向量计算方法
- Tangent space normal mapping with GLSL
- Tangent Space的基向量计算方法
- Normal bundle Tangent bundle Tangent space Affine space Vector field Vector calculus Dual bundle
- tangent
- 编程技巧搜集(2)
- 黯然无题
- 脚本系统
- 使用 Rational XDE for .net建模和设计数据库
- SQL Server连接中的四个最常见错误
- tangent space--切空间
- "集群(Cluster)"
- Interface与Object之间的关系问题
- Debian/Linux学习笔记 - 安装、网络、图形、中文
- 在gdb中显示unicode等几则调试技巧
- 让员工更具活力的八大激励模式
- 张老师提出的问题解答 关于IO
- 可爱的WebService
- SCA V1.0 装配规范体系结构的组成