游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1901|回复: 5

渲染球体的困惑

[复制链接]

11

主题

80

帖子

146

积分

注册会员

Rank: 2

积分
146
发表于 2010-11-9 17:32:00 | 显示全部楼层 |阅读模式
int dwNumSphereRings =25;  //环数
int dwNumSphereSegments = 25;//段数
FLOAT fDeltaRingAngle = ( D3DX_PI / dwNumSphereRings );//这里为什么不是2.0f*D3DX_PI?
FLOAT fDeltaSegAngle  = ( 2.0f * D3DX_PI / dwNumSphereSegments );
m_nVerCount = 2 + (dwNumSphereRings - 1) * (dwNumSphereSegments + 1);//这是顶点的个数,这是怎么推出来的?
m_nFaces = dwNumSphereSegments * 2 + dwNumSphereSegments * (dwNumSphereRings - 2) * 2;//这是三角形个数?

以上几个问题,请高手解答下,这个球体用三角形列表渲染的。

11

主题

80

帖子

146

积分

注册会员

Rank: 2

积分
146
 楼主| 发表于 2010-11-9 17:53:00 | 显示全部楼层

Re: 渲染球体的困惑

哦,第1个问题,突然明白了,呵呵。

34

主题

844

帖子

1755

积分

金牌会员

Rank: 6Rank: 6

积分
1755
发表于 2010-11-9 19:05:00 | 显示全部楼层

Re:渲染球体的困惑

FLOAT fDeltaRingAngle = ( D3DX_PI / dwNumSphereRings );//这里为什么不是2.0f*D3DX_PI?
从球的底部到顶部,只是180度。横向才是360度。

m_nVerCount = 2 + (dwNumSphereRings - 1) * (dwNumSphereSegments + 1);//这是顶点的个数,这是怎么推出来的?
2=上下两个极点。
横向25段,垂直25段,那么是26条横线x26条竖线。去掉上下2个极点,(25+1)-2=24个横线,25+1=26个竖线。

m_nFaces = dwNumSphereSegments * 2 + dwNumSphereSegments * (dwNumSphereRings - 2) * 2;//这是三角形个数?
dwNumSphereSegments * 2 =上下两极的三角锥的面数。
dwNumSphereSegments * (dwNumSphereRings - 2) =除了两极三角锥以外的方块个数,一个方块=2个三角。

11

主题

80

帖子

146

积分

注册会员

Rank: 2

积分
146
 楼主| 发表于 2010-11-10 09:22:00 | 显示全部楼层

Re:渲染球体的困惑

亲爱的大蛇丸大人。 从第2个问题我就晕了啊。能不能借用你的蛇形鳞片图示一下你的忍术。呵呵

11

主题

80

帖子

146

积分

注册会员

Rank: 2

积分
146
 楼主| 发表于 2010-11-10 09:30:00 | 显示全部楼层

Re:渲染球体的困惑

哦,第2个问题也突然一下明白了。呵呵

11

主题

80

帖子

146

积分

注册会员

Rank: 2

积分
146
 楼主| 发表于 2010-11-10 10:02:00 | 显示全部楼层

Re:渲染球体的困惑

还是有点困惑。一环,两段就有2点; 2环,2段就是是个顶点。 那么应该就是环数乘以段数啊?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-5-30 12:03

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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