Home › Forums › GAMES在线课程(现代计算机图形学入门)讨论区 › 作业三 关于bump凹凸纹理的问题
- This topic has 10 replies, 6 voices, and was last updated 5 years, 6 months ago by
dzy.
-
AuthorPosts
-
-
是u+1.0/w,而不是(u+1.0)/w,你要注意这相当于是在求微分,是让u或者v加上一个很小的值
-
能请问一下,注释中的tbn矩阵实际代表什么吗,为什么求得的法线要经过这个矩阵变换?
-
t、b、n分别是切线、副切线和法线,这个可能是老师上课说的局部坐标系吧(t、b、n分别是局部坐标系的三个轴,有些资料里把这个坐标系空间称为“切线空间”),是为了把用微分求出来的法线从局部坐标系转换到模型空间(因为是用的局部的du和dv在局部坐标系下求得的新的法线,所以刚求出来的法线也就是框架里的ln是在局部坐标系的,至于为什么要转换到模型空间,这个查阅的资料里是这么写的,具体我们的框架是怎么样的我还没仔细看,这个你可以看看源码哈),实际上模型空间->切线空间的转换矩阵就是[t,b,n](第一行是t.x,t.y,t.z,以此类推),所以切线空间->模型空间的转换矩阵就是[t,b,n]的逆,而它又恰恰是正交矩阵,所以求[t,b,n]就是求它的转置,因此我们的框架里才会用到[t b n](第一列分别是t.x,t.y,t.z)
参考资料:
http://www.opengl-tutorial.org/intermediate-tutorials/tutorial-13-normal-mapping/
This post has received 2 votes up.-
谢谢大佬!
-
求教一下大佬:那如果世界坐标系到局部坐标系的映射是[x,y,z]->[b,n,t]这样子可不可以呢?这样组合的话局部坐标还是满足右手系的吧。映射成[t,b,n]是一种约定还是有更深的含义呀?感谢!
This post has received 1 vote down.-
这样的话,你求出来的法线应该会和按作业框架来而求出来的不一样,但是局部坐标系只是暂时用的,只是用来方便利用切线求微分而已,最后把这个法线应用到顶点上还是需要通过逆矩阵转换回原坐标系,所以本质上应该是一样的吧,怎么取应该都可以(这里我指的是逆矩阵,而不是矩阵的转置是因为一开始我不知道这样在满足右手系的情况下调换顺序会不会导致这个转换矩阵不再是正交矩阵,但是我刚才随便举了个例子算了下,正交矩阵在调换顺序之后仍然满足正交矩阵的性质,所以应该来说你这样只要满足右手系,随便怎么换顺序都是可以用转换矩阵的转置来得到逆转换矩阵)
(当然了,如果说的宽泛一点的话,其实不满足右手系也可以,只要你转换回原坐标系时保证用的是转换矩阵的逆矩阵即可) -
dzy
Participant肯定不能改顺序啊,否则ln里面顺序也要跟着改
-
-
-
-
-
夏莉莉
Participant好的,我去修改一下
-
ln是新的向量需要归一化成单位向量
-
AuthorPosts
- You must be logged in to reply to this topic.