游戏开发论坛

 找回密码
 立即注册
搜索
查看: 4266|回复: 12

新人请教,关于图形引擎的效率问题

[复制链接]

20

主题

222

帖子

276

积分

中级会员

Rank: 3Rank: 3

积分
276
发表于 2007-3-23 00:49:00 | 显示全部楼层 |阅读模式
  最近看ogre,对于大量用string做key感到很不适应,就觉得太奢侈了,之前一直在玩opgl,win32 api,对HANDLE之类的long型key都用得爽 ,一下子满屏的string实在难以适应,我就想不清楚,连个render target也搞个string的name有必要么?就像给thread起名字一样,有个handle ID就可以辫识了,并且thread就根本不需要显示名称什要名字做什么?
有高人告之:图形引擎的性能瓶颈,永远都出现在图形算法和显卡性能上面,CPU运行的C++和STL都可以忽略性能损失。言下之一意是不是,我的引擎不会慢,慢的是你的机器,客户程序啊?,可能俺就脑筋死点,看着满屏幕string就是不舒服,干得没积极性啊,小弟我见识少,是不是现在的引擎都这样以人为本了?论坛各位给点意见? [em22]

15

主题

363

帖子

390

积分

中级会员

Rank: 3Rank: 3

积分
390
发表于 2007-3-23 08:59:00 | 显示全部楼层

Re:新人请教,关于图形引擎的效率问题

习惯不同吧,我习惯用Handle表,很多引擎也都使用Handle表的。

而且现在OGRE也对很多关键资源使用HashMap了,HashMap的效率就与Handle表基本类似了。对于明知道数量不大,或者仅发生于载入时的资源,仍用Map以获得更高的灵活度。毕竟Handle表是静态表,灵活度的问题一直没有解决。

OGRE的设计可以用来参考,不一定要什么都OGRE化。对自己而言,对目标最好的,就是最好的。只要是高效的数据结构,再普通也都可以用。 ^_^


另外OGL的Handle和Win32的Handle不一样:
OGL的Handle是你说的Long型Key,也就是我说的Handle表。
Win32的Handle是Void*,实际上指的是内核对象的内存地址。

6

主题

307

帖子

309

积分

中级会员

Rank: 3Rank: 3

积分
309
发表于 2007-3-23 09:05:00 | 显示全部楼层

Re:新人请教,关于图形引擎的效率问题

很多事情都要按实际情况平衡处理的,不能简单就全部string或者全部ID

决定使用什么要根据实际的访问方式和频度来决定

2万

主题

2万

帖子

6万

积分

论坛元老

Rank: 8Rank: 8

积分
66494
QQ
发表于 2007-3-23 09:49:00 | 显示全部楼层

Re:新人请教,关于图形引擎的效率问题

用String做ID确实是慢,但现在必境不是200MHz CPU的时代。

6

主题

307

帖子

309

积分

中级会员

Rank: 3Rank: 3

积分
309
发表于 2007-3-23 11:32:00 | 显示全部楼层

Re: Re:新人请教,关于图形引擎的效率问题

hyzboy: Re:新人请教,关于图形引擎的效率问题

用String做ID确实是慢,但现在必境不是200MHz CPU的时代。


CPU要干很多事的

8

主题

390

帖子

390

积分

中级会员

Rank: 3Rank: 3

积分
390
发表于 2007-3-23 13:33:00 | 显示全部楼层

Re:新人请教,关于图形引擎的效率问题

ogre中创建几万个节点时,用名称string当hash的散列效果非常差,好多都是同一hash值,ogre这点确实是比较“笨”,不过对于开源引擎用来教学教学,关系也不大。

36

主题

1047

帖子

1147

积分

金牌会员

Rank: 6Rank: 6

积分
1147
发表于 2007-3-23 17:54:00 | 显示全部楼层

Re:新人请教,关于图形引擎的效率问题

用指针来做 ID。

20

主题

222

帖子

276

积分

中级会员

Rank: 3Rank: 3

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

Re:新人请教,关于图形引擎的效率问题

哦哦,感谢各位赐教,这下有方向了,看来确实不能照搬ogre,改成用dword做key,虽说有string的key调试方便,但一路win32+c过来的人也不是那么娇贵的

to noslopforever:你说的handle表是不是静态数组?
to congy:用指针做id需要用到网络传输时会出问题的啊?

罗嗦点,各位见谅啊,个人觉得改代码比写代码头大

6

主题

74

帖子

100

积分

注册会员

Rank: 2

积分
100
发表于 2007-3-24 10:33:00 | 显示全部楼层

Re: 新人请教,关于图形引擎的效率问题

  Ogre 虽然功能很多,也很前卫,但它是不太注重执行期效率的,我见的好多开源引擎都不注意执行期效率,像那个irrlicht全是用Draw..Up函数。

34

主题

629

帖子

629

积分

高级会员

Rank: 4

积分
629
发表于 2007-3-24 11:09:00 | 显示全部楼层

Re:新人请教,关于图形引擎的效率问题

很多时候用string做key还是很有必要的
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-4-13 00:36

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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