GEMINIGHT
📋注册(Register) | 📛登录(Login)
🎲
🎉欢迎您的大架光临!本站是以游戏、动漫、等ACG相关内容为主题20年的网站。ℹ本小站的SSL是免费附赠的,https访问不太稳定,为免错乱建议您用http访问。如果您的网用http访问会被电信商胡搞跳转,那就只能用https来访问了或设置国际正规DNS。

主站(Home) »  论坛(Forum)  » 程序编写(Program)
hwbnet
注册于:2007年1月22日
等级:注册会员
帖子数:30
积分:178
阅读权限:20
请问:怎样求法线及光照计算? 1楼
Tags引力关联贴
假设有这样一组顶点:
 d=-1;
 ff[d=d+1]=0.0f,ff[d=d+1]=0.0f,ff[d=d+1]=0.0f;
 for(i=0;i<9;i++)
 {
  f[0]=(2*D3DX_PI*i)/8;
  ff[d=d+1]=cosf(f[0])*3.0f,ff[d=d+1]=sinf(f[0])*3.0f,ff[d=d+1]=-10.0f;
 }
三角形索引为:
 d=-1;
 sy[d=d+1]=0,sy[d=d+1]=1,sy[d=d+1]=2;
 sy[d=d+1]=0,sy[d=d+1]=2,sy[d=d+1]=3;
 sy[d=d+1]=0,sy[d=d+1]=3,sy[d=d+1]=4;
 sy[d=d+1]=0,sy[d=d+1]=4,sy[d=d+1]=5;
 sy[d=d+1]=0,sy[d=d+1]=5,sy[d=d+1]=6;
 sy[d=d+1]=0,sy[d=d+1]=6,sy[d=d+1]=7;
 sy[d=d+1]=0,sy[d=d+1]=7,sy[d=d+1]=8;
 sy[d=d+1]=0,sy[d=d+1]=8,sy[d=d+1]=9;
请问:如何求这10个顶点的法线?
SIGNATURE
🗓2007-10-8 21:51(约17年前)  👁1084
Jeminai

自称:雙子騎士
注册于:2005年5月26日
等级:站长
帖子数:6436
积分:41816
阅读权限:200
2楼

你这代码可读性不怎么样啊,请把顶点用一个结构来表示(如下),最好画出草图(就10个点应该不麻烦,否则看的人烦,要是在GameRes都懒得回答你)。

struct FVF
{
 D3DXVECTOR3 pos;
 D3DXVECTOR3 nor;
};

你把你的每个三角形代入下面的公式就是了:

三角形法线计算公式:
  D3DXVECTOR3 v1 = Vertex[a].pos;
  D3DXVECTOR3 v2 = Vertex[b].pos;
  D3DXVECTOR3 v3 = Vertex[c].pos;
  D3DXVECTOR3 n;
  D3DXVec3Cross( &n,&(v2-v1), &(v3-v2));
  n=NorVec(n);//然后规格化一下

另外打听一下,我还不知道你是做什么游戏的?[em41]


🗓2007-10-9 08:48(约17年前)
hwbnet
注册于:2007年1月22日
等级:注册会员
帖子数:30
积分:178
阅读权限:20
3楼

这10个点是原点和一个圆构成一个圆锥体。

由于相临的三角形面有公共的顶点,这时法线如何计算?法线算出来后在光照中怎样计算?

主体类型是大富翁类型,内含俄罗斯方块,飞机等游戏。

SIGNATURE
🗓2007-10-9 10:04(约17年前)
Jeminai

自称:雙子騎士
注册于:2005年5月26日
等级:站长
帖子数:6436
积分:41816
阅读权限:200
4楼

把公共顶点的法线相加后在规格化一下。

至于光照计算记得GameRes上有我没有,你去找找看,主要是一些写Shade的人用的。

🗓2007-10-9 11:46(约17年前)
hwbnet
注册于:2007年1月22日
等级:注册会员
帖子数:30
积分:178
阅读权限:20
5楼
什么标题?
SIGNATURE
🗓2007-10-9 15:28(约17年前)
Jeminai

自称:雙子騎士
注册于:2005年5月26日
等级:站长
帖子数:6436
积分:41816
阅读权限:200
6楼

忘了

还有DX9SDK里也有,那个LightingVS例子。

🗓2007-10-9 19:34(约17年前)

标题(Title):
关键字标签(Tags):
路人:回贴可以不必登录

本站中所有图文均为原作方所有,所发表言论仅代表原作方的观点,不代表本站立场。
本站不对所提供的所有资讯正确性负责,若因资讯导致的任何损失本站概不负责(请参阅免责条款,自行斟酌),或者联系本站予以纠正。

『双子在线』ACG爱好网 GEMINIGHT.com © 2005-2025 ┃ 联系站长(Contact Webmaster) ┃ 本次页面执行速度:秒