找回密码
 立即注册
搜索
楼主: pig_10

索饭们,愤恨吧!

[复制链接]
     
发表于 2008-8-2 13:50 | 显示全部楼层
人家说的是硬件机能,不是三红,你们懂不懂机能啥意思?

再说了HALF LIFE明明更猎奇。比卡马克的游戏吓人多了。
回复

使用道具 举报

     
发表于 2008-8-2 13:58 | 显示全部楼层
原帖由 G.W.尼米兹 于 2008-8-1 21:11 发表

卡马克是程序员的神,口味重的可以在玩《沙耶之歌》时吃红色果冻:awkward:


C语言是卡马克发明的?计算机程序是卡马克发明的?神?
回复

使用道具 举报

发表于 2008-8-2 15:08 | 显示全部楼层
原帖由 qieyifonger 于 2008-8-2 13:58 发表


C语言是卡马克发明的?计算机程序是卡马克发明的?神?

你问问2狗卡马克干过什么
回复

使用道具 举报

     
发表于 2008-8-2 15:19 | 显示全部楼层
胆敢质疑John Carmack的都给我背书去!

http://www.fs2you.com/zh-cn/file ... -b8a7-0014221f3995/

:mad:
回复

使用道具 举报

发表于 2008-8-2 15:21 | 显示全部楼层
原帖由 qieyifonger 于 2008-8-2 13:58 发表


C语言是卡马克发明的?计算机程序是卡马克发明的?神?

我只知道quake3是历史上第一个不支持软件加速的FPS,能用来进行显卡测评,卡克是神倒是从别人那听来的(耸肩)
原帖由 chenke 于 2008-8-2 15:19 发表
胆敢质疑John Carmack的都给我背书去!

http://www.fs2you.com/zh-cn/file ... -b8a7-0014221f3995/

:mad:

还真翻出来了:o

[ 本帖最后由 G.W.尼米兹 于 2008-8-2 15:22 编辑 ]
回复

使用道具 举报

     
发表于 2008-8-2 15:25 | 显示全部楼层
原帖由 qieyifonger 于 2008-8-2 13:58 发表


C语言是卡马克发明的?计算机程序是卡马克发明的?神?

无论哪个神话里都有几个大神,一堆小神。您佬别要求太高。
回复

使用道具 举报

     
发表于 2008-8-2 15:31 | 显示全部楼层
为什么卡马克是神

请程序员们读完下面这篇论文就知道了

:sleep:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复

使用道具 举报

     
发表于 2008-8-2 15:36 | 显示全部楼层
John Carmark 密码:0x5f3759df


有人在Quake III的源代码里面发现这么一段用来求平方根的代码:

/*================SquareRootFloat================*/

float SquareRootFloat(float number) {
    long i;
    float x, y;
    const float f = 1.5F;
    x = number * 0.5F;
    y  = number;
    i  = * ( long * ) &y;
    i  = 0x5f3759df - ( i >> 1 );  //注意这一行
    y  = * ( float * ) &i;
    y  = y * ( f - ( x * y * y ) );
    y  = y * ( f - ( x * y * y ) );
    return number * y;
}

0x5f3759df? 这是个什么东西? 学过数值分析就知道,算法里面求平方根一般采用
的是无限逼近的方法,比如牛顿迭代法,抱歉当年我数值分析学的太烂,也讲不清楚
。简单来说比如求5的平方根,选一个猜测值比如2,那么我们可以这么算

5/2 = 2.5; 2.5+2/2 = 2.25; 5/2.25 = xxx; 2.25+xxx/2 = xxxx ...
这样反复迭代下去,结果必定收敛于sqrt(5),没错,一般的求平方根都是这么算的
。而卡马克的不同之处在于,他选择了一个神秘的猜测值0x5f3759df作为起始,使得
整个逼近过程收敛速度暴涨,对于Quake III所要求的精度10的负三次方,只需要一
次迭代就能够得到结果。

好吧,如果这还不算牛b,接着看。

普渡大学的数学家Chris Lomont看了以后觉得有趣,决定要研究一下卡马克弄出来的
这个猜测值有什么奥秘。Lomont也是个牛人,在精心研究之后从理论上也推导出一个
最佳猜测值,和卡马克的数字非常接近, 0x5f37642f。卡马克真牛,他是外星人吗?


传奇并没有在这里结束。Lomont计算出结果以后非常满意,于是拿自己计算出的起始
值和卡马克的神秘数字做比赛,看看谁的数字能够更快更精确的求得平方根。结果是
卡马克赢了... 谁也不知道卡马克是怎么找到这个数字的。

最后Lomont怒了,采用暴力方法一个数字一个数字试过来,终于找到一个比卡马克数
字要好上那么一丁点的数字,虽然实际上这两个数字所产生的结果非常近似,这个暴
力得出的数字是0x5f375a86。

Lomont为此写下一篇论文,\"Fast Inverse Square Root\"。

我把这个函数用C#就行了一下改写:
1using System;
2using System.Collections.Generic;
3using System.Text;
4
5namespace ConsoleApplication1
6{
7    class Program
8    {
9        static void Main(string[] args)
10        {
11            Console.WriteLine(\"Carmark\'s method:\");
12            Console.WriteLine(SquareRootFloat(3.0f).ToString());
13            Console.WriteLine(\"Use Math.Sqrt() method:\");
14            Console.WriteLine(((float)Math.Sqrt(3.0)).ToString());
15            Console.Read();
16        }
17
18        private static float SquareRootFloat(float number)
19        {
20
21            long i;
22            float x, y;
23            const float f = 1.5F;
24            x = number * 0.5F;
25            y  = number;
26            unsafe
27            {
28                i  = * ( long * ) &y;
29                i  = 0x5f3759df - ( i >> 1 );  //注意这一行
30                y  = * ( float * ) &i;
31            }
32            y  = y * ( f - ( x * y * y ) );
33            y  = y * ( f - ( x * y * y ) );
34            return number * y;
35        }
36    }
37}
38

第32、33行用了两次牛顿迭代法,以达到一定的精度,当然你也可以自己控制精度,求出来的是y的平方根的倒数,所以最后返回为number*y.

SquareRootFloat函数最关键的一句就是 i=0x5f3759df-(i>>1);  
以下是对它的部分解释:

牛顿迭代法最关键的地方在于估计第一个近似根。如果该近似根与真根足够靠近的话,那么只需要少数几次迭代,就可以得到满意的解。

接着,我们要设法估计第一个近似根。这也是上面的函数最神奇的地方。它通过某种方法算出了一个与真根非常接近的近似根,因此它只需要使用一次迭代过程就获得了较满意的解。它是怎样做到的呢?所有的奥妙就在于这一行:

i = 0x5f3759df - (i >> 1);        // 计算第一个近似根

超级莫名其妙的语句,不是吗?但仔细想一下的话,还是可以理解的:float类型的数据在32位系统上是这样表示的。

bits:31 30 ... 0
31:符号位
30-23:共8位,保存指数(E)
22-0:共23位,保存尾数(M)

所以,32位的浮点数用十进制实数表示就是:M*2^E。开根然后倒数就是:M^(-1/2)*2^(-E/2)。现在就十分清晰了。语句i>>1其工作就是将指数除以2,实现2^(E/2)的部分。而前面用一个常数减去它,目的就是得到M^(1/2)同时反转所有指数的符号。
回复

使用道具 举报

发表于 2008-8-2 15:39 | 显示全部楼层
这楼越发的神棍,不,专业了:sleep:
回复

使用道具 举报

发表于 2008-8-2 15:43 | 显示全部楼层
原帖由 chenke 于 2008-8-2 15:36 发表
John Carmark 密码:0x5f3759df


有人在Quake III的源代码里面发现这么一段用来求平方根的代码:

/*================SquareRootFloat================*/

float SquareRootFloat(float number) {
    long i;
  ...

果然又给翻出来了
:cruel:
听说这个算法在linux下速度比math.h更慢
回复

使用道具 举报

     
发表于 2008-8-2 15:47 | 显示全部楼层
翻到一篇旧新闻,现在看很有意思

Doom 3 Super Edition for PS3

By James Orry - 26/09/2005 - 11:49am GMT

John Carmack has said he would like to make a Doom 3 super edition for the PlayStation 3.

Speaking to US magazine GameInformer, Carmack said of an idea to bring Doom 3 to the PlayStation 3: \"One idea we\'ve been sort of tossing around that is just a random idea is possibly doing some kind of super edition of the Doom 3 stuff for the PS3.\"

Carmack didn\'t exactly give any details as to what a \"Super Edition\" of the game would entail, but we assume he means something more than bundling the game with a bonus DVD of behind the scenes footage. Despite these comments, Carmack told the magazine that he prefers developing on the Xbox 360, much like Tomonobu Itagaki, head of Team Ninja has said.

http://www.videogamer.com/news/0-0-2007-1534.html

:awkward:
回复

使用道具 举报

发表于 2008-8-2 15:50 | 显示全部楼层
原帖由 chenke 于 2008-8-2 15:47 发表
翻到一篇旧新闻,现在看很有意思

Doom 3 Super Edition for PS3

By James Orry - 26/09/2005 - 11:49am GMT

John Carmack has said he would like to make a Doom 3 super edition for the PlayStation 3.

Speakin ...

这是什么:o

英文无能,大意为啥?
回复

使用道具 举报

头像被屏蔽
发表于 2008-8-2 16:38 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

发表于 2008-8-2 18:00 | 显示全部楼层
原帖由 MARK2 于 2008-8-2 00:07 发表

荣誉勋章、半死不活的爹也是他

使命召唤1用的也是Q3A改良引擎
回复

使用道具 举报

发表于 2008-8-2 18:10 | 显示全部楼层
原帖由 jinyuangungun 于 2008-8-2 08:56 发表
求原文
老卡向来只用opengl
怎么可能喷出这种话


doom3开始就用d3d了
回复

使用道具 举报

发表于 2008-8-2 18:55 | 显示全部楼层
原帖由 vhf 于 2008-8-2 16:38 发表
意思就是纸里不住火,任你当时把机能吹得多高,时间一长就露馅了。

原来卡克也是PC党,一句话就把家用机战翻了:P
回复

使用道具 举报

头像被屏蔽
发表于 2008-8-2 18:57 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

发表于 2008-8-2 19:07 | 显示全部楼层
原帖由 vhf 于 2008-8-2 18:57 发表
PS3代表不了家用机

他有肯定xo360和任地狱么:o

再者,哪个家用机没吹嘘过机能(好吧,也许掌机没有)

[ 本帖最后由 G.W.尼米兹 于 2008-8-2 19:08 编辑 ]
回复

使用道具 举报

发表于 2008-8-2 19:12 | 显示全部楼层
奶粉公主吹机能n64级别
回复

使用道具 举报

头像被屏蔽
发表于 2008-8-2 19:13 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

发表于 2008-8-2 19:27 | 显示全部楼层
话说s1有卡克的戏服么:awkward:
回复

使用道具 举报

头像被屏蔽
发表于 2008-8-2 19:32 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

     
发表于 2008-8-2 20:04 | 显示全部楼层
卡马克几个成就:

1、386时代实现媲美超任的卷轴效果(指挥官基恩)
2、提出引擎概念。然后出现了引擎授权这种营业模式(指挥官基恩)
3、参与设计了第一人称射击这种新的游戏模式(wolf3d)
4、电子竞技和电子竞技大赛的推动者(doom)
5、真实3d实现,将opengl加速带入游戏业(quake)
6、各种真实渲染效果(quake-现在)
7、20岁出头成为百万富翁
8、30出头入选互动艺术与科学名人堂
9、喷d3d,某种程度上促进了3d api的发展...
回复

使用道具 举报

     
发表于 2008-8-2 20:08 | 显示全部楼层
再补2条

10、官方支持mod设计(doom)
11、公开关卡编辑器,公开游戏源代码(doom-现在)
回复

使用道具 举报

     
发表于 2008-8-2 20:08 | 显示全部楼层
用CG来代替的机能的家用机又不是一天两天的事了:smoke:
回复

使用道具 举报

     
发表于 2008-8-2 21:07 | 显示全部楼层
看了这个神神叨叨的帖子让俺想起了以前一个十足90后脑残发布的所谓十大天才程序员排名,哈哈哈哈,完全无视诸多计算机界的先驱,建立了计算机软件理论基础的不是神?卡马克是神!开发了第一个计算机操作系统的不是神?卡马克是神!编写了第一个游戏的不是神?卡马克是神!

以上~~~
回复

使用道具 举报

     
发表于 2008-8-2 21:22 | 显示全部楼层
建立计算机软件理论基础(谁和我讲讲这是什么)也好,开发了第一个计算机操作系统也好,编写了第一个游戏也好,大众才不关心

就好像没人关心第一个做指南针的家伙是谁一样
回复

使用道具 举报

头像被屏蔽
发表于 2008-8-2 21:32 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

发表于 2008-8-2 21:49 | 显示全部楼层
这年头卡马克都被人喷了。Doom启示录在大陆没销路?
回复

使用道具 举报

头像被屏蔽
发表于 2008-8-2 22:04 | 显示全部楼层
提示: 该帖被管理员或版主屏蔽
回复

使用道具 举报

     
发表于 2008-8-2 22:09 | 显示全部楼层
程序员索青:~( 泪流满面
回复

使用道具 举报

头像被屏蔽
发表于 2008-8-2 22:10 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

     
发表于 2008-8-2 22:13 | 显示全部楼层
原帖由 bbceve 于 2008-8-2 21:49 发表
这年头卡马克都被人喷了。Doom启示录在大陆没销路?

中文正版叫doom启世录,谢谢。
回复

使用道具 举报

头像被屏蔽
发表于 2008-8-2 22:15 | 显示全部楼层
提示: 该帖被管理员或版主屏蔽
回复

使用道具 举报

头像被屏蔽
发表于 2008-8-2 22:18 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

发表于 2008-8-2 22:21 | 显示全部楼层
我就这意思
38的cs销量赶不上128的厕所3的零头
回复

使用道具 举报

     
发表于 2008-8-2 22:23 | 显示全部楼层
原帖由 酒多是我爹 于 2008-8-2 17:10 发表


doom3开始就用d3d了


只是声音API部分用了DX9
回复

使用道具 举报

发表于 2008-8-2 22:43 | 显示全部楼层
83年:猫叔的的超级玛丽
92年:铃木的vr赛车
93年:卡神的doom
:mask:
回复

使用道具 举报

头像被屏蔽
     
发表于 2008-8-2 22:44 | 显示全部楼层
提示: 该帖被管理员或版主屏蔽
回复

使用道具 举报

头像被屏蔽
发表于 2008-8-2 22:53 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|上海互联网违法和不良信息举报中心|网上有害信息举报专区|962110 反电信诈骗|举报电话 021-62035905|Stage1st ( 沪ICP备13020230号-1|沪公网安备 31010702007642号 )

GMT+8, 2025-9-21 22:09 , Processed in 0.318244 second(s), 6 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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