游戏开发论坛

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

关于光照顶点法向量的问题!!谢谢各位大哥大姐了

[复制链接]

23

主题

68

帖子

68

积分

注册会员

Rank: 2

积分
68
发表于 2006-3-22 19:55:00 | 显示全部楼层 |阅读模式
void CLightMaterial::ComputeTriNormal(D3DXVECTOR3& v1, D3DXVECTOR3& v2, D3DXVECTOR3& v3,D3DVECTOR& normalVec){
        D3DXVECTOR3 tmpV1=v1-v2;
        D3DXVECTOR3 tmpV2=v1-v3;
        D3DXVECTOR3 tmpNormalVec;
        D3DXVec3Cross(&tmpNormalVec, &tmpV1, &tmpV2);
        D3DXVec3Normalize(&tmpNormalVec,&tmpNormalVec);
        normalVec=(D3DVECTOR)tmpNormalVec;
}

这段代码的参数 由一个循环传入!!但我很是不明白意思!!为什么用tmpV1=v1-v2和tmpV2=v1-v3;确定的2个向量来求 3角平面的法向量呢,为什么都用v1去减v2和v3,用v3去减不可以吗??还有那个什么左手判定 看了半天书也没搞懂!请高手给我详细的解释一下 小弟感激不尽,谢谢了.

14

主题

283

帖子

293

积分

中级会员

Rank: 3Rank: 3

积分
293
QQ
发表于 2006-3-22 21:08:00 | 显示全部楼层

Re:关于光照顶点法向量的问题!!谢谢各位大哥大姐了

左手判定就是顺时针渲染的三角面是正面咯,v1-v2叉乘v1-v3,得到的法线刚好是三角形的正面方向咯~

36

主题

1047

帖子

1147

积分

金牌会员

Rank: 6Rank: 6

积分
1147
发表于 2006-3-22 21:13:00 | 显示全部楼层

Re:关于光照顶点法向量的问题!!谢谢各位大哥大姐了

根据几何代数的知识,空间平面的法线可以通过任意两个在此平面的向量的差积求得,而这个函数通过将三角形的三个顶点传入进来,就可计算平面的法线,也可以用v3减去,只要在这个平面上就行了。左手判定是空间坐标的表示方式,左手坐标系是z轴朝屏幕里,右手坐标系是z轴向外。具体最好看一下线性代数方面的知识和计算机图形学方面的知识。

23

主题

68

帖子

68

积分

注册会员

Rank: 2

积分
68
 楼主| 发表于 2006-3-22 22:13:00 | 显示全部楼层

Re:关于光照顶点法向量的问题!!谢谢各位大哥大姐了

谢谢了 .朋友,就是还不太明白左手判定,书上说什么..食指和母指是向量方向,法线穿过手心,,!!是说通过法线的方向可以确定点的顺逆时针吗??再说了 我把左手手心向里或向外 都可以让食指和母指指向两个向量的方向呀??顺便在问一句 在载入.x文件的时候,还用得着左手判定吗??

36

主题

1047

帖子

1147

积分

金牌会员

Rank: 6Rank: 6

积分
1147
发表于 2006-3-23 09:23:00 | 显示全部楼层

Re:关于光照顶点法向量的问题!!谢谢各位大哥大姐了

directx3d 默认是左右。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-23 23:59

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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