Quake3游戏引擎中平方根相关算法

本文深入探讨了Quake3游戏引擎中用于优化性能的平方根算法,包括快速平方根逆运算和平方根倒数的实现方法。通过详细分析,揭示了这些算法背后的数学原理和优化策略,为开发者提供高效处理数学运算的实践指南。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Quake3游戏引擎中平方根相关算法

参考链接【知乎】有哪些算法惊艳到了你?
http://www.zhihu.com/question/26934313

1. 平方根

float InvSqrt (float x)
{ 
    float xhalf = 0.5f*x; 
    int i = *(int*)&x; 
    i = 0x5f3759df - (i>>1); 
    x = *(float*)&i; 
    x = x*(1.5f - xhalf*x*x); 
    return x; 
}

作者:覃超
链接:http://www.zhihu.com/question/26934313/answer/37594577
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

其中magic number 0x5f3759df的来源,这里有文章专门探讨了取值的原因。

2. 平方根倒数

double sqrt( double x ) 
{ 
    float y; 
    float delta; 
    float maxError; 
    if ( x <= 0 ) 
    { 
        return 0; 
    } 

    // initial guess 
    y = x / 2; 

    // refine 
    maxError = x * 0.001; 
    do { 
        delta = ( y * y ) - x; 
    } while ( delta > maxError || delta < -maxError );

    return y; 
    }

作者:覃超
链接:http://www.zhihu.com/question/26934313/answer/37594577
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值