游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3328|回复: 9

[讨论] 问路哈! 有关DOOM3 SDK 的math.h 高手指路啊.....:)

[复制链接]

2

主题

3

帖子

9

积分

新手上路

Rank: 1

积分
9
发表于 2006-9-14 21:49:00 | 显示全部楼层 |阅读模式
    前段时间我有幸接触游戏引擎,下载了DOOM3的SDK ,对其中的底层算法加速部分非常有兴趣,Carmack在math.h中使用了大量的浮点加速算法,包括早已被人熟知的InvSqrt( )和0x5f3759df这个MagicNum . 我经过数个月的改进测试,将math.h的大部分算法加速了,有除法,平方根倒数,立方根和高次方根的快速精确计算,另还有常用的SIn16(x),Cos(x),Tan(x),这些比Carmack用的算法快3~10倍不等.
    算法是出来了,老师也比较满意,他给我的推荐是发文章出来,但我觉得这样时间会拖的比较长,3D图像技术发展如此之快,不知等这些算法出来的时候已是什么样了. 请各位高手帮我小弟呐拿拿主意,不甚感激.........!!!!

9

主题

198

帖子

198

积分

注册会员

Rank: 2

积分
198
发表于 2006-9-14 22:37:00 | 显示全部楼层

Re:问路哈! 有关DOOM3 SDK 的math.h 高手指路啊.....:)

你可以在google上作一些research。

33

主题

544

帖子

554

积分

高级会员

Rank: 4

积分
554
发表于 2006-9-14 22:51:00 | 显示全部楼层

Re:问路哈! 有关DOOM3 SDK 的math.h 高手指路啊.....:)

DOOM3的SDK在哪儿弄到的呀?
楼主在现有的条件下居然能够在几个月内将基本运算的速度提高3-5倍,ORZ~~~~~
.............orz....orz....orz....orz....orz....orz

71

主题

399

帖子

405

积分

中级会员

Rank: 3Rank: 3

积分
405
发表于 2006-9-15 03:02:00 | 显示全部楼层

Re:问路哈! 有关DOOM3 SDK 的math.h 高手指路啊.....:)

楼上的,是3~10倍!
我被打击了。

154

主题

4567

帖子

4579

积分

论坛元老

Rank: 8Rank: 8

积分
4579
QQ
发表于 2006-9-15 10:48:00 | 显示全部楼层

Re:问路哈! 有关DOOM3 SDK 的math.h 高手指路啊.....:)

貌似和策划没有关系。。。

54

主题

2918

帖子

3765

积分

论坛元老

Rank: 8Rank: 8

积分
3765
QQ
发表于 2006-9-15 12:36:00 | 显示全部楼层

Re: Re:问路哈! 有关DOOM3 SDK 的math.h 高手指路啊.....:)

大树懒: Re:问路哈! 有关DOOM3 SDK 的math.h  高手指路啊.....

DOOM3的SDK在哪儿弄到的呀?
楼主在现有的条件下居然能够在几个月内将基本运算的速度提高3-5倍,ORZ~~~~~
....

http://games.sina.com.cn/downgames/edit/pcgames/2004/10/2580478.shtml

122

主题

2758

帖子

3151

积分

论坛元老

Rank: 8Rank: 8

积分
3151
发表于 2006-9-15 16:13:00 | 显示全部楼层

Re:问路哈! 有关DOOM3 SDK 的math.h 高手指路啊.....:)

好象发错坛子了吧.....
真的那么神?

52

主题

979

帖子

1066

积分

金牌会员

Rank: 6Rank: 6

积分
1066
QQ
发表于 2006-9-16 02:08:00 | 显示全部楼层

Re:问路哈! 有关DOOM3 SDK 的math.h 高手指路啊.....:)

呃,,,并非是怀疑....

有时候代码的简化并不能仅仅在单一模块内做考虑....

不过不管怎么样,,,,偶也非常佩服楼主!

2

主题

3

帖子

9

积分

新手上路

Rank: 1

积分
9
 楼主| 发表于 2006-9-16 19:13:00 | 显示全部楼层

Re: 问路哈! 有关DOOM3 SDK 的math.h 高手指路啊.....:)

以下是DOOM3里的Math.h,在Quake4里也是这些加速算法,若有兴趣可深入研究,这是现在最出名的一段,

ID_INLINE float idMath::RSqrt( float x ) {
        long i;
        float y, r;

        y = x * 0.5f;
        i = *reinterpret_cast<long *>( &x );
        i = 0x5f3759df - ( i >> 1 );
        r = *reinterpret_cast<float *>( &i );
        r = r * ( 1.5f - r * r * y );
        return r;
}
就是Quake3里的Q_rsqrt

sf_2006916191254.rar

5.17 KB, 下载次数:

71

主题

399

帖子

405

积分

中级会员

Rank: 3Rank: 3

积分
405
发表于 2006-9-16 23:01:00 | 显示全部楼层

Re:问路哈! 有关DOOM3 SDK 的math.h 高手指路啊.....:)

  晚上没事做,找了两个链接。
  http://lordcongou.spaces.live.com/blog/
  4/25/2006

  http://www.math.purdue.edu/~clomont/Math/Papers/2003/InvSqrt.pdf
  
  别人没事做就做研究,我没事做看别人的研究,难道这就是差距?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-4-28 00:02

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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