游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2292|回复: 4

求助,怎么计算法相量??在DX中

[复制链接]

35

主题

59

帖子

65

积分

注册会员

Rank: 2

积分
65
发表于 2005-11-25 20:16:00 | 显示全部楼层 |阅读模式
大家好,我想问一下,一个平面的法相量,是乡里还是向外的?比如在一个正方体中,法相量应该是向外的吧,不过计算时,它有可能向内啊。。我是初学者,请指教

我做的很多方向都是反的,代码如下,想做一个正方体,结果出来,正方体的两个对立面都是亮的。。。。。。。
       
        D3DXVECTOR3 x[2];
        D3DXVECTOR3  nor;
        for(int i=0;i<6;i++)
        {
       
                x[0]=pVertices[i*6+2].position-pVertices[i*6+0].position;
                x[1]=pVertices[i*6+1].position-pVertices[i*6+0].position;
                D3DXVec3Cross(&nor,&x[0],&x[1]);
                D3DXVec3Normalize(&nor, &nor);
                pVertices[i*6+0].normal=nor;
                pVertices[i*6+1].normal=nor;
                pVertices[i*6+2].normal=nor;
                pVertices[i*6+3].normal=nor;
                pVertices[i*6+4].normal=nor;
                pVertices[i*6+5].normal=nor;



        }

12

主题

70

帖子

70

积分

注册会员

Rank: 2

积分
70
发表于 2005-11-25 21:44:00 | 显示全部楼层

Re:求助,怎么计算法相量??在DX中

你自己计算每个面的三角形的时候就应该先算法方向的阿,比如一个面由两个3角形构成,每个三角形的法线是什么方向呢?就是根据你的3个顶点的顺序来决定的,如果是顺时针决定的顶点坐标,那么这个面的法线就是朝外的,所有如果按顺时针顺序来说有4个点,1是左上角的点,2是右上角的点,3是左下角的点,4是右下角的点,那么第一个三角形的顶点定义就应该是123,第二个三角形的顺序就是3,2,4,这样每个面都按照这种方法来定义的话,所有的面就都是朝外的了

121

主题

2029

帖子

2034

积分

金牌会员

Rank: 6Rank: 6

积分
2034
QQ
发表于 2005-11-25 22:03:00 | 显示全部楼层

Re:求助,怎么计算法相量??在DX中

左手坐标系

33

主题

669

帖子

669

积分

高级会员

Rank: 4

积分
669
QQ
发表于 2005-11-26 09:37:00 | 显示全部楼层

Re:求助,怎么计算法相量??在DX中

用向量的计算公式就可以算出来了 , 是叉乘吧

35

主题

59

帖子

65

积分

注册会员

Rank: 2

积分
65
 楼主| 发表于 2005-11-27 15:55:00 | 显示全部楼层

Re:求助,怎么计算法相量??在DX中

谢谢grakiss和大家阿,我有些懂了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-22 18:37

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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