现在的位置: 首页 > 综合 > 正文

关于骨骼动画和BUMP贴图的聊天记录

2013年09月02日 ⁄ 综合 ⁄ 共 2242字 ⁄ 字号 评论关闭

请问有没有朋友做过骨骼动画结合BUMP贴图的?
是不是我遥再顶点着色器中
对世界矩阵求逆矩阵
再对每个骨骼矩阵求逆矩阵
然后更具这些矩阵求出光源相对于对模型空间的位置
然后再转换导切线空间,
把光源转换导BUMP贴图空间的方向
然后把这个空间传送导像素着色器。

你看是不是要做这么多

自作聪明(517377672) 21:32:22
shader步骤:
1,求出mesh每个顶点世界坐标。
2,根据顶点世界坐标和纹理坐标求出纹理空间基在世界空间中的表示。
3,把光线变换到bump空间中
4,求光照
自作聪明(517377672) 21:34:15
1,求出mesh每个顶点世界坐标。
static mesh 和skeletal emsh就这步骤有区别
 
自作聪明(517377672) 21:34:24
其他的一样的
 (249974072) 21:35:06
对于骨骼动画,计算出变换的顶点后和静态的没有区别了。。。

阿鲁锋(20024675) 21:35:13
“把光线变换到bump空间中”
这个如何变呢,是不是很复杂,要对每个骨骼做逆矩阵
 如果在GPU中做骨骼变化稍微麻烦点,如果在CPU下就很简单了。和普通的静态模型没有什么趋避。。
自作聪明(517377672) 21:36:28
关键是求出bump空间的基
 (249974072) 21:36:50
U,V,N就能确定他的旋转矩阵。。。
阿鲁锋(20024675) 21:36:05
“把光线变换到bump空间中”
那这部应该如何做
阿鲁锋(20024675) 21:38:17
U,V,N是要用原始模型的点来做,还是要用经过世界变换和骨骼混合后的点做呢?
自作聪明(517377672)  21:36:28
关键是求出bump空间的基

如果这个空间的基求出了,可以直接得出变换矩阵,然后光线乘以这个矩阵的梨
 (249974072) 21:39:11
知道法线(n),切线(t),副法线(bn)的向量。。
将光线变换到这空间的旋转矩阵构造就是
t.x ,t.y, t.z
n.x, n.y, n.z
bn.x,bn.y, bn.z
 (249974072) 21:39:18
希望我没说错。。

 日期:2010-1-8
自作聪明(517377672) 21:39:25
阿鲁锋(20024675)  21:38:17
U,V,N是要用原始模型的点来做,还是要用经过世界变换和骨骼混合后的点做呢?

世界变换不会改变u,v,n的坐标
 (249974072) 21:41:24
这里说的,U,V,N不是说纹理坐标,法线,而是他本地坐标空间的3个坐标轴的向量。。。

 (249974072) 21:42:39
反下就是刚好知道本地坐标转到世界坐标的旋转操作。。具体参照大学图形学课程中。。。
 (249974072) 21:43:06
U,V,N必须要单位化的,这点很重要~
 (249974072) 21:43:38
如果研究过物理引擎的实现,你们将对这些东西非常熟悉。。。~
 (249974072) 21:44:59
你们是做次时代游戏的???
阿鲁锋(20024675) 21:45:10
这个理论我不是很清楚,不过我可以参考书上的代码把U,V,N算出来。
现在我就是想知道,如果不用CPU混合骨骼,是不是能在顶点着色器中算出光线相对于贴图的正确的方向?
自作聪明(517377672) 21:46:02

 (249974072) 21:47:12
那样将不可能。。。

因为顶点的相对位置会被修改,同事法线,副法线的计算需要在面中才能计算。。。
 (249974072) 21:47:38
可以参照法线,副法线的计算过程就知道了。。。
阿鲁锋(20024675) 21:48:10
是不是如果要用BUMP贴图,就必须再CPU中混合骨骼
 (249974072) 21:48:42
算了,等下吧,我思考清楚来,不想随便说出口误人误己~
自作聪明(517377672) 21:48:53
可以的啊

阿鲁锋(20024675) 21:49:46
如何可以呢,我现在想把光源转换导顶点的空间坐标都很困难
 (249974072) 21:50:11
也可以,但是有点点问题,我在想。。。
 我们可以进行混合的时候,也将预处理好的切线,副法线同顶点样进行混合处理,但是效果如何我就不太清楚了。。可以去尝试下。。
阿鲁锋(20024675) 21:51:05
就是我现在不考虑BUMP贴图了
我想在着色器中计算光源 相对于 顶点在原始模型中的位置
阿鲁锋(20024675) 21:51:05
就是我现在不考虑BUMP贴图了
我想在着色器中计算光源 相对于 顶点在原始模型中的位置
 (249974072) 21:52:07
就是说blend的时候需要操作的有(vpos, normal, tangent, bnormal)~
 (249974072) 21:52:47
没尝试过,效果估计让人担心。。。。

阿鲁锋
tangent, bnormal
是不是这两也要做骨骼混合
 (249974072) 21:53:54
恩~

说实话,我感觉这些拿去blend有点让人觉得怪怪的。。~
自作聪明(517377672) 21:54:15
阿鲁锋(20024675)  21:51:05
就是我现在不考虑BUMP贴图了
我想在着色器中计算光源 相对于 顶点在原始模型中的位置

tangent, bnormal可以根据顶点坐标和纹理坐标计算出来
 (249974072) 21:54:56
我现在的处理是在CPU下计算出静态的模型,然后重新计算normal,bn,t来,然后和静态模型一样渲染

抱歉!评论已关闭.