3DMGAME 3DM首页 新闻中心 前瞻 | 评测 游戏库 热门 | 最新 攻略中心 攻略 | 秘籍 下载中心 游戏 | 汉化 购买正版 论坛

注册 登录

QQ登录

只需一步,快速开始

楼主: me4cn
打印 上一主题 下一主题

[讨论] 大家觉得这次GTA4算不算硬件讹诈

[复制链接]

25

主题

1027

帖子

1227

积分

游戏狂人

Rank: 6Rank: 6

贡献度
124
金元
7312
积分
1227
精华
0
注册时间
2008-10-30
跳转到指定楼层
主题
发表于 2008-12-27 20:12 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
说实话,画质真的不怎么样,硬件要求却高的变态,个人觉得是纯粹的硬件讹诈,大家觉得呢。
再补充两句[em25]
大家发现没有XBOX360和PS3的硬件是N年不变的,上面出的游戏不存在硬件升级问题,而移植到PC的游戏却不停的对硬件提出新的要求,这正常嘛,
我想问题就出在移植游戏玩的人多,买的人少。厂商出的对策就是和硬件厂家联手,你不买游戏可以啊,升级硬件去
好了牢骚发完了,下载GTA4去了,也算是哥们对正版游戏的支持[em09]


引用一下“DogKarl “老大的一篇帖子:(下面兰字所示)
一些技术上的东西
在这里给大家一些信息。。当然,无视技术细节的人可以飘过。。。
第一:补丁使用的是外挂式的方式,为何不使用运行更快的内核式方法?
答案:现在的各个版本的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
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,v
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,e
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,i
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,s
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,n
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,o
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,t
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,c
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,o
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,m
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,i
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,n
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,g
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,.
这么多次调用,就是干了一件事:显示了一个“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的机器也跑不动。这还仅仅是显示几个字符,游戏程序其他地方的优化大家可以想象了
单选投票, 共有 0 人参与投票

投票已经结束

87.86% (181)
12.14% (25)
您所在的用户组没有投票权限
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|3DMGAME ( 京ICP备14006952号-1  沪公网安备 31011202006753号

GMT+8, 2026-5-17 13:13 , Processed in 0.032129 second(s), 19 queries , Memcached On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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