游戏开发论坛

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

求助:次法线的物理含义什么?应该如何计算得到?

[复制链接]

42

主题

418

帖子

418

积分

中级会员

Rank: 3Rank: 3

积分
418
发表于 2005-8-18 11:39:00 | 显示全部楼层 |阅读模式
如题

139

主题

2005

帖子

2057

积分

金牌会员

Rank: 6Rank: 6

积分
2057
QQ
发表于 2005-8-18 12:21:00 | 显示全部楼层

Re:求助:次法线的物理含义什么?应该如何计算得到?

切空间

15

主题

1268

帖子

1268

积分

金牌会员

Rank: 6Rank: 6

积分
1268
发表于 2005-8-18 13:01:00 | 显示全部楼层

Re:求助:次法线的物理含义什么?应该如何计算得到?

完全不懂,haha

42

主题

418

帖子

418

积分

中级会员

Rank: 3Rank: 3

积分
418
 楼主| 发表于 2005-8-18 14:00:00 | 显示全部楼层

Re:求助:次法线的物理含义什么?应该如何计算得到?

看了 SDK 中的例子,次法线可以通过切线叉乘主法线得到,可是切线又怎么求啊?-_-!

139

主题

2005

帖子

2057

积分

金牌会员

Rank: 6Rank: 6

积分
2057
QQ
发表于 2005-8-18 14:45:00 | 显示全部楼层

Re:求助:次法线的物理含义什么?应该如何计算得到?

解析几何

42

主题

418

帖子

418

积分

中级会员

Rank: 3Rank: 3

积分
418
 楼主| 发表于 2005-8-18 15:46:00 | 显示全部楼层

Re: Re:求助:次法线的物理含义什么?应该如何计算得到?

♂樱♀: Re:求助:次法线的物理含义什么?应该如何计算得到?

解析几何

[em4]俺不干了,5555555。。。。。

46

主题

281

帖子

313

积分

中级会员

Rank: 3Rank: 3

积分
313
QQ
发表于 2005-8-18 22:21:00 | 显示全部楼层

Re:求助:次法线的物理含义什么?应该如何计算得到?

楼主这几天太惨了。。。。我贴点有用的吧,连原理都有了,慢慢看


        //let P = v1 - v0
        D3DXVECTOR3 P = v1.pos - v0.pos;
        //let Q = v2 - v0
        D3DXVECTOR3 Q = v2.pos - v0.pos;
        float s1 = v1.s - v0.s;
        float t1 = v1.t - v0.t;
        float s2 = v2.s - v0.s;
        float t2 = v2.t - v0.t;


        //we need to solve the equation
        // P = s1*T + t1*B
        // Q = s2*T + t2*B
        // for T and B


        //this is a linear system with six unknowns and six equatinos, for TxTyTz BxByBz
        //[px,py,pz] = [s1,t1] * [Tx,Ty,Tz]
        // qx,qy,qz     s2,t2     Bx,By,Bz

        //multiplying both sides by the inverse of the s,t matrix gives
        //[Tx,Ty,Tz] = 1/(s1t2-s2t1) *  [t2,-t1] * [px,py,pz]
        // Bx,By,Bz                      -s2,s1            qx,qy,qz  

        //solve this for the unormalized T and B to get from tangent to object space

       
        float tmp = 0.0f;
        if(fabsf(s1*t2 - s2*t1) <= 0.0001f)
        {
                tmp = 1.0f;
        }
        else
        {
                tmp = 1.0f/(s1*t2 - s2*t1 );
        }
       
        tangent.x = (t2*P.x - t1*Q.x);
        tangent.y = (t2*P.y - t1*Q.y);
        tangent.z = (t2*P.z - t1*Q.z);
       
        tangent = tmp * tangent;

        binormal.x = (s1*Q.x - s2*P.x);
        binormal.y = (s1*Q.y - s2*P.y);
        binormal.z = (s1*Q.z - s2*P.z);

        binormal = tmp * binormal;

42

主题

418

帖子

418

积分

中级会员

Rank: 3Rank: 3

积分
418
 楼主| 发表于 2005-8-19 09:39:00 | 显示全部楼层

Re:求助:次法线的物理含义什么?应该如何计算得到?

有些地方原来是方程推导,刚看的时候以为是代码,我说怎么那么奇怪-_-!
谢谢 Liker 兄,也谢谢♂樱♀和Civilian。^_^

89

主题

4036

帖子

4132

积分

论坛元老

Rank: 8Rank: 8

积分
4132
发表于 2005-8-19 09:44:00 | 显示全部楼层

Re:求助:次法线的物理含义什么?应该如何计算得到?

切线自己定义。
怎么方便怎么定义。但是要和表面相切(当然,不想切问题也不太大)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-12-27 11:50

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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