高级玩家

- 贡献度
- 9
- 金元
- 3437
- 积分
- 320
- 精华
- 0
- 注册时间
- 2009-3-29
|
话说GTA4要求的配置高之又高(废话)
为什么GTA4会要求高配置呢?
很多人以为是其画面(我以前也是)
其实不然,其实是由于R星的懒惰造成的。
一下沿用某论坛里某帖子(发表于发表于 2009-01-05)的原文:
(双引号表示首尾)“
以下延用3DM某高手的原话: 在技术上,目前正在做最后的稳定性处理和测试。相信很快可以全部完成。汉化补丁使用的是外挂式的方式,为何不使用运行更快的内核式方法? (春节前会正式发布) 答案:现在的各个版本的GTA4都不是Clean rip,而是采用补丁的方法破解,这使得静态分析不太可能。如果以后有了Clean rip,可以采用内核式方法。 为何GTA4 PC版要求高得离谱? 答案:GTA4 PC版根本没有经过任何优化,纯粹就是糊弄人的移植。不相信? 看看这段代码: SetRenderState(p,a,b) RenderState22 1 SetVertexShader(p,a) SetVertexShaderConstantF(p,a,b,c) SetPixelShader(p,a) SetTexture(p,a,b) SetSamplerState(p,a,b,c) SetSamplerState(p,a,b,c) SetSamplerState(p,a,b,c) SetSamplerState(p,a,b,c) SetVertexDeclaration(p,a) SetStreamSourceFreq(p,a,b) SetStreamSourceFreq(p,a,b) SetStreamSource(p,a,b,c,d) DrawPrimitive(p,a,b,c) FontIndex 1,D SetRenderState(p,a,b) RenderState22 1 SetVertexShaderConstantF(p,a,b,c) SetTexture(p,a,b) SetVertexDeclaration(p,a) SetStreamSourceFreq(p,a,b) SetStreamSourceFreq(p,a,b) SetStreamSource(p,a,b,c,d) DrawPrimitive(p,a,b,c) FontIndex 1,a SetRenderState(p,a,b) RenderState22 1 上面是游戏中的一段代码 这么多次调用,就是干了一件事:显示了一个“Dave is not coming.” 稍微懂行的人,就会知道,实际上这件事只用这么几行就行了: SetRenderState(p,a,b) SetVertexShaderConstantF(p,a,b,c) SetTexture(p,a,b) SetVertexDeclaration(p,a) SetStreamSourceFreq(p,a,b) SetStreamSourceFreq(p,a,b) SetStreamSource(p,a,b,c,d) DrawPrimitive(p,a,b,c) 不过还不算完,上面的代码竟然在一桢中重复了足足五次!也就是,平白无故的多了15*5*8=600次Directx调用。随便再NB的机器也跑不动。这还仅仅是显示几个字符,游戏程序其他地方的优化大家可以想象了.  ”
一想到我的电脑玩GTA4室外最多才25FPS,开快车的才16FPS,[em22] 就恨R星啊[em30] [em30]
但是这游戏毕竟又是它带给我们的,………………,这心情真是欲辨已忘言。。。。。 |
|