游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2353|回复: 8

加载MS3D时,顶点和法向量的变换矩阵问题

[复制链接]

35

主题

141

帖子

157

积分

注册会员

Rank: 2

积分
157
发表于 2009-5-3 22:47:00 | 显示全部楼层 |阅读模式
大家好,又来麻烦大家了,我最近在看<<foucs on 3d models>>的MS3D文件的时候遇到一个问题,一般在进行变换时是用
顶点 * M    来做 (M是变换局阵)
法线 * M的逆的转置   
得到正确的变换    (应该是这样的吧,请大家先给证实下)


但是它的MS3D的代码中在把顶点和其他的一些信息加载完后,它使用Setup()对矩阵进行了一些设置,它的顶点的变换时不是用 顶点 * M,而是好象是用的 M的逆,法线也是  法线 * M的逆,请问这是怎么回事啊,谢谢了

19

主题

638

帖子

638

积分

高级会员

Rank: 4

积分
638
发表于 2009-5-3 23:29:00 | 显示全部楼层

Re:加载MS3D时,顶点和法向量的变换矩阵问题

应该是转置,不是逆

35

主题

141

帖子

157

积分

注册会员

Rank: 2

积分
157
 楼主| 发表于 2009-5-4 12:31:00 | 显示全部楼层

Re:加载MS3D时,顶点和法向量的变换矩阵问题

可以认为是转置啊,因为对于只包含  旋转和 平移的 矩阵就是正交的,所以他的转置和逆是一样的啊,但是还是没有对啊,应该是
        顶点 * M
        法向量 * M的转置的逆

请大家赐教

59

主题

984

帖子

1200

积分

金牌会员

Rank: 6Rank: 6

积分
1200
发表于 2009-5-4 14:53:00 | 显示全部楼层

Re:加载MS3D时,顶点和法向量的变换矩阵问题

如果没有对模型做非均匀缩放
那么法线也可以用m变换
包含非均匀变换则必须用m的逆转置

19

主题

638

帖子

638

积分

高级会员

Rank: 4

积分
638
发表于 2009-5-4 15:51:00 | 显示全部楼层

Re: Re:加载MS3D时,顶点和法向量的变换矩阵问题

限之极: Re:加载MS3D时,顶点和法向量的变换矩阵问题

可以认为是转置啊,因为对于只包含  旋转和 平移的 矩阵就是正交的,所以他的转置和逆是一样的啊,但是还是...


包含平移的矩阵,其转置不等于逆。有些资料上转置和逆的符号会混淆。MS3D用的GL矩阵、Y上右手系,而你列的公式像行矩阵的,所以估计应该是转置,而不是逆。

设M为列矩阵,则公式如下:
M * 位置
(float3x3)M * 法向

若将M转置得到行矩阵Mt,则变换公式如下:
位置 * Mt
法向 * (float3x3)Mt      (去掉位移部分)

35

主题

141

帖子

157

积分

注册会员

Rank: 2

积分
157
 楼主| 发表于 2009-5-4 15:56:00 | 显示全部楼层

Re:加载MS3D时,顶点和法向量的变换矩阵问题

但是为什么<<foucs on 3d models>>上是这样变换
        顶点 * M的逆
        法向量 * M的逆

顶点多了个逆,法线又没有转置,难道是书错了,还是MS3D有什么特别的地方吗

59

主题

984

帖子

1200

积分

金牌会员

Rank: 6Rank: 6

积分
1200
发表于 2009-5-4 16:47:00 | 显示全部楼层

Re:加载MS3D时,顶点和法向量的变换矩阵问题

如果模型最初有默认的bind pose
那么要先乘bind pose变换的逆,变换回原点

35

主题

141

帖子

157

积分

注册会员

Rank: 2

积分
157
 楼主| 发表于 2009-5-4 17:30:00 | 显示全部楼层

Re:加载MS3D时,顶点和法向量的变换矩阵问题

问一下,这个会不会和行向量和列向量有关啊,因为是正交,用逆来把行向量转成列的

35

主题

141

帖子

157

积分

注册会员

Rank: 2

积分
157
 楼主| 发表于 2009-5-4 17:35:00 | 显示全部楼层

Re:加载MS3D时,顶点和法向量的变换矩阵问题

哦,那如果是这样的话就对了,它的顶点和向量都乘以一个逆 变换为原行,然后因为正交,所以M的逆的转置等于它本身,是这样的吗
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-12-20 11:07

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表