ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

2021-05-16

2021-05-16 13:02:52  阅读:224  来源: 互联网

标签:05 16 矩阵 u0 纹理 v0 2021 我们 坐标系


今天学习了《UnityShader入门精要》的第七章基础纹理 第二节:凹凸映射 -> 在世界坐标系下

在顶点着色器上用到了以下的写法:

看到 Ttow2  就懵了, 者是个什么矩阵?干啥用的?就继续往下看片元着色器:

哦,我悟了,接下来是不是应该是把我们存进去的值再取出来了:

写完看看书,“*********”, 全错了。

书上是这么解释的:

我们计算了世界空间下的顶点切线、副切线和法线矢量表示,并把他们按列摆放得到从切线空间到世界空间的变换矩阵。我们把该矩阵的每一行分别存储在Ttow0、Ttow1和Ttow2中,并把世界空间下的顶点位置的xyz分量分别存储在了这些变量的w中

.......(此处省略若干字)。最后,我们使用Ttow0、Ttow1、和Ttow2存储的变换矩阵把法线变换到世界空间下。

这是怎么变的?我百度了一下,发现一本书的  18.3 纹理/正切空间(https://www.doc88.com/p-2911793166791.html?r=1  ) 解释了这个问题 

我来说下我的理解:

我们在片元着色器中取出法线贴图的向量bump是基于纹理坐标系的,在片元着色器我们需要通过法线、光照方向、视角方向 来计算出片元着色器需要的高光、漫反射。只有这些值在同一个坐标系中我们才能得到正确的结果

但是:

我们从法线贴图中得到的法线是纹理坐标系(TBN)下, 光线、视角方向 却是基于世界坐标系或者物体坐标系的。

"凹凸映射 -> 在世界坐标系下" 中统一用的是世界坐标系

Ttow0、Ttow1、和Ttow2 就是用来把纹理坐标系坐标转换成世界坐标坐标的矩阵

为什么他们能转换?

我把 18.3 纹理/正切空间 讲述的TBN坐标系图中我们可以得到 在世界空间下:

e0向量(世界坐标系)  = T轴的单位向量T(表示t轴在世界坐标系下的坐标) *  T轴上的差值u0(纹理坐标系上的差值)  + B轴上的单位向量B(表示B轴在世界坐标系下的坐标) * B轴上的差值(b轴在纹理坐标系下的差值)

e1向量用的也是同样的方法

向量从纹理坐标转换为世界坐标的公式我们有了:

接下来我们要把它变换成矩阵

e0 = u0 * T + v0 * B

我们可以写作(因为u0方向和 T方向一致,转换公式中省略了cos):

(e0x, e0y, e0z) = u0 * (Tx, Ty, Tz) + v0* (Bx, By, Bz);

(e0x, e0y, e0z) = u0 * Tx + u0 * Ty + u0 * Tz + v0 * Bx + v0 * By + v0 * Bz 

(e0x, e0y, e0z) = (Tx + Ty + Tz) * u0 + (Bx + By + Bz) v0

这时我们再看下下面的矩阵:

如果我们把e1去掉 就变成了

展开之后就和我们上面的展开式一摸一样

由此我们知道: 我们通过纹理坐标系上T轴的单位向量和B轴的单位向量 在 世界坐标系中的坐标组成的矩阵就可以把纹理坐标转换为世界坐标

那么T轴和B轴在shader中表示的是什么呢?这就是我们的worldTangent(切线)、worldBinormal(副切线)这就是我们Ttow0和Ttow1和Ttow2值的来源.

不过还有个疑问,这里的worldNormal 和 bump.z的点乘又是做什么的?

 

标签:05,16,矩阵,u0,纹理,v0,2021,我们,坐标系
来源: https://blog.csdn.net/qq_24448219/article/details/116886632

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有