游戏开发论坛

 找回密码
 立即注册
搜索
123
返回列表 发新帖
楼主: acefighter

我用D3D写的三维游戏,画面挺卡,但CPU占用率不到20%,内

[复制链接]

201

主题

1437

帖子

1963

积分

金牌会员

Rank: 6Rank: 6

积分
1963
QQ
发表于 2007-3-24 13:28:00 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

201

主题

1437

帖子

1963

积分

金牌会员

Rank: 6Rank: 6

积分
1963
QQ
发表于 2007-3-24 13:33:00 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

31

主题

249

帖子

259

积分

中级会员

Rank: 3Rank: 3

积分
259
发表于 2007-3-24 16:36:00 | 显示全部楼层

Re:我用D3D写的三维游戏,画面挺卡,但CPU占用率不到20%,

可能是DrawPrimitive()函数里一次传递的三角形太多了,尽量减少不必要传递的三角形

1

主题

18

帖子

18

积分

新手上路

Rank: 1

积分
18
 楼主| 发表于 2007-3-24 22:28:00 | 显示全部楼层

Re: Re:我用D3D写的三维游戏,画面挺卡,但CPU占用率不到20

niexuchina: Re:我用D3D写的三维游戏,画面挺卡,但CPU占用率不到20%,内存占用不到100MB,想知道原因和解决方法

建议用一个性能检测的东西。
搞一个机制,监测函数调用前后的时间间隔,查一下。


这个很容易的啊,win的API函数“timeGetTime()”就可以获得当前时间,只要将两次猎取的时间做个差就知道用时间是多少了,不过这个函数本身的误差有10毫秒左右,要想更多精确的话可以用D3D自带的攻取时间函数,精确度是和你CPU的石英振精一样的,一般游戏里计算帧数都要用到这个函数

1

主题

18

帖子

18

积分

新手上路

Rank: 1

积分
18
 楼主| 发表于 2007-3-24 22:32:00 | 显示全部楼层

Re: Re:我用D3D写的三维游戏,画面挺卡,但CPU占用率不到20

EziaSolsky: Re:我用D3D写的三维游戏,画面挺卡,但CPU占用率不到20%,内存占用不到100MB,想知道原因和解决方法

可能是DrawPrimitive()函数里一次传递的三角形太多了,尽量减少不必要传递的三角形

这也正是我关心的,模型简化后,速度肯定是快的,我个我昨天刚做过,把不必要的细节都去年掉了,但问题是如果一味的去减少面片游戏的逼真度是要被制约的,况产不优化的话,20K的面片也不能算多啊

45

主题

1163

帖子

1165

积分

金牌会员

Rank: 6Rank: 6

积分
1165
发表于 2007-3-25 10:46:00 | 显示全部楼层

Re:我用D3D写的三维游戏,画面挺卡,但CPU占用率不到20%,

作飞机游戏引擎不考虑物理问题不行啊! 拿一个最简单的问题来说,一个飞机突然向上方向飞,会造成失速尾旋!飞机会突然失去控制。
还有怎么把初始化D3D的函数搞到WinMain()里了?建议另外写一个OnInit( HWND hWnd ) 并在WM_CREATE消息里调用。

1

主题

18

帖子

18

积分

新手上路

Rank: 1

积分
18
 楼主| 发表于 2007-3-25 13:00:00 | 显示全部楼层

Re: Re:我用D3D写的三维游戏,画面挺卡,但CPU占用率不到20

小小C: Re:我用D3D写的三维游戏,画面挺卡,但CPU占用率不到20%,内存占用不到100MB,想知道原因和解决方法

作飞机游戏引擎不考虑物理问题不行啊! 拿一个最简单的问题来说,一个飞机突然向上方向飞,会造成失速尾旋!...



哈哈,这个就要看游戏的设计初衷啦!
如果是要设计成一款飞行射击类的游戏,比如<皇牌空战>和<二战空骑兵:炽天使>,那就没必要在空气动力学和流体力学上下功夫了,只要有射击的快感就好。
但如果要做一款飞行模拟类的游戏,比如<IL-2,1946>,嘿嘿,想办法找几个战斗机飞行员给你当顾问吧!

其实做为游戏开发者,要解决的问题是如何让战机按照你的想法去做动作,要去设置坐标变换阵和旋转变换矩阵,你必须把线性代数和C++玩的团转才行。、
至于战机在什么情况下该怎样运动,这就不是游戏开发者的工作了,会有专业的飞行员给你提建议的,比如<IL-2>的开发团队里就有很多是二战的老牌飞行员。

1

主题

18

帖子

18

积分

新手上路

Rank: 1

积分
18
 楼主| 发表于 2007-3-25 13:17:00 | 显示全部楼层

Re: Re:我用D3D写的三维游戏,画面挺卡,但CPU占用率不到20

小小C: Re:我用D3D写的三维游戏,画面挺卡,但CPU占用率不到20%,内存占用不到100MB,想知道原因和解决方法

作飞机游戏引擎不考虑物理问题不行啊! 拿一个最简单的问题来说,一个飞机突然向上方向飞,会造成失速尾旋!...


顺便再纠正你一个小小的错误,
[em2]
“一个飞机突然向上方向飞,会造成失速尾旋!”这是不严谨滴,只有当飞机低于一定速度时才会这样,高于这个速度肯定没问题的。其实也不是突然向上飞,只要速度不够高,飞行员做出突然向后带杆的动作都会造成失速的。因此操作的时候一定要轻柔,“要向对待女人一样去对待你的飞机”(二战一英国飞行员语)

实际上有很情况是要飞机突然向上飞的,比如俯冲轰炸之后需快速将飞机拉起,要不然就撞地啦,但这个时候飞机的速度往往都很快(刚俯冲完嘛,重力势能已经化为动能了)。
还有一个就是二战时常用的B&Z战术(俯冲-打击-爬升逃跑),战机一般从高于敌机的位置俯冲下来,以高速冲进敌机编队打闪击,而后不管是否得手都要立刻爬升(不能与敌机缠斗,那样自已的动能很快就没了),重新将自己的速度优势换成高度优势,而不用担心后面的敌机会追上来,因为 它们的速度比你慢。这就是为什么经常在二战的空战片里看到双方只要一现对方就先爬升来要高度。这种战术最适合那些加速性好但缠斗性一般的战机,比如德国的FW-190D9和美国的P-51,因为它们面对的对手是英国的喷火和日本的零式战斗机,而后者都是强于低空缠斗的。

其实现代空战中也有采用这种战术的,比如苏联的MIG-25和中国的歼-8-2,和美机相比它们拼的就是速度:和F-18缠斗是要吃亏的(转弯慢啊),那我们就从高空下来打游击,打完就跑,跑完再打,打完再跑。。。 [em4]。91年海湾战争的时候傻大木的一架米格机就是这样敲掉美国的F18的
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-26 19:12

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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