游戏开发论坛

 找回密码
 立即注册
搜索
查看: 7880|回复: 21

binormal=tangent*normal?真的吗?高手帮忙~

[复制链接]

36

主题

197

帖子

197

积分

注册会员

Rank: 2

积分
197
发表于 2008-1-10 16:06:00 | 显示全部楼层 |阅读模式
我在给人物制作normal map的时候,发现binormal并不等于tangent*normal

注意: 这里的人物是通过镜像制作出来的

问题就来了,我发现人物身上的normal map只有半边是正确的,另一半是错误的

我把程序修改后放在rendermonkey中,也是一样

这之前,我都是使用 tangent * normal来的到binormal,因为网上所有文章都这样写,所以没有丝毫怀疑这个公式的正确性

移植到rendermonkey上后,我发现rendermonkey可以自动提供binormal,所以,我尝试使用rendermonkey提供的binormal,问题解决了,结果正确无误

这非常令我困惑,很明显rendermonkey提供的binormal 不等于 tangent * normal!

也就是说binormal<>tangent*normal!

同样的测试,我在max下的shader接口进行,得到同样的结论。

但是我使用的引擎没有提供计算binormal的函数

望高手指教 [em4]

32

主题

1259

帖子

1351

积分

金牌会员

Rank: 6Rank: 6

积分
1351
发表于 2008-1-10 16:33:00 | 显示全部楼层

Re:binormal=tangent*normal?真的吗?高手帮忙~

* 是叉积哦。

36

主题

197

帖子

197

积分

注册会员

Rank: 2

积分
197
 楼主| 发表于 2008-1-10 16:54:00 | 显示全部楼层

Re:binormal=tangent*normal?真的吗?高手帮忙~

cross啊,怎么了?

3

主题

121

帖子

121

积分

注册会员

Rank: 2

积分
121
QQ
发表于 2008-1-10 20:23:00 | 显示全部楼层

Re:binormal=tangent*normal?真的吗?高手帮忙~

tangent*normal与normal*tangent方向是相反的.

59

主题

984

帖子

1200

积分

金牌会员

Rank: 6Rank: 6

积分
1200
发表于 2008-1-10 21:18:00 | 显示全部楼层

Re:binormal=tangent*normal?真的吗?高手帮忙~

公式是没有错的,在正交空间下,两个正交的矢量做叉积就能得到垂直于这两个矢量的第三个矢量。
你的模型出错,问题在于模型的另一半是镜像出来的。
镜像的时候,法线和纹理坐标都有可能变为负值,导致计算结果不对。
特别是对于一些通过纹理坐标来计算切线,法线的算法,在纹理坐标的不连续处都有可能出现问题。

35

主题

1735

帖子

1739

积分

金牌会员

Rank: 6Rank: 6

积分
1739
QQ
发表于 2008-1-10 22:05:00 | 显示全部楼层

Re:binormal=tangent*normal?真的吗?高手帮忙~

恩,楼上颇有见解。

36

主题

197

帖子

197

积分

注册会员

Rank: 2

积分
197
 楼主| 发表于 2008-1-11 01:20:00 | 显示全部楼层

Re: Re:binormal=tangent*normal?真的吗?高手帮忙~

踏魔狼: Re:binormal=tangent*normal?真的吗?高手帮忙~

tangent*normal与normal*tangent方向是相反的.

这2个区别仅仅是正确的半边和错误的半边交换而已。

36

主题

197

帖子

197

积分

注册会员

Rank: 2

积分
197
 楼主| 发表于 2008-1-11 01:22:00 | 显示全部楼层

Re:binormal=tangent*normal?真的吗?高手帮忙~

clayman: Re:binormal=tangent*normal?真的吗?高手帮忙~

公式是没有错的,在正交空间下,两个正交的矢量做叉积就能得到垂直于这两个矢量的第三个矢量。
你的模型出...

可是问题是rendermonkey和max都可以根据这个模型计算出binormal,为什么我算出来的就不对呢?
如果是模型有问题,那这2个软件怎么会算出正确的值呢?

2

主题

28

帖子

28

积分

注册会员

Rank: 2

积分
28
发表于 2008-1-11 01:47:00 | 显示全部楼层

Re:binormal=tangent*normal?真的吗?高手帮忙~

关注↓

36

主题

197

帖子

197

积分

注册会员

Rank: 2

积分
197
 楼主| 发表于 2008-1-14 09:32:00 | 显示全部楼层

Re:binormal=tangent*normal?真的吗?高手帮忙~

自己顶一下
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-12-20 04:32

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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