« 角色动作控制接口的设计 | 返回首页 | MMO 的排队系统 »

显卡还是 N 卡好啊

新来了个同事,用 Linux 做桌面的。这样也好,可以节省一套 Windows 的费用。买组装机即可,同样价钱可以比 DELL 的配置好上许多。

昨天装的机器,一开始遇到点小麻烦,Ubuntu 7.10 对板载网卡 RTL8111/8168B 支持有问题。显示是安装一切正常,但是就是网络不通。ip 包发出去似乎就消失了,收不到回应。奇怪的是,Ubuntu 7.04 下却一切正常。google 上没有找到解决方案,也懒得细查,抽屉里翻出块更老的网卡装上。btw, 上次装 Solaris 10 ,这块板载网卡也是不认的。

接下来是显卡的问题,板载的 Intel 945 的显式芯片,按道理 3d 性能还是不错的。可惜 3d 这部分,一半靠硬件,一半靠软件(驱动)。怎么折腾都没找到 Ubuntu 下的对应驱动。

Intel 的官方搜索 倒是找到一些似乎是提供给 Linux 的驱动,可那些是供 Red Hat 用的。Ubuntu 系统默认安装的是 Mesa 的 GL 驱动,对于现代 3d engine 来说,基本上啥都没实现(连 S3TC 压缩贴图的扩展都没有)。

这让我无限怀念 N 卡。

不说别的,就说人家 N 卡的人做软件的态度。各种平台的驱动一应具全。freeBSD 下,N 卡官方提供的驱动几乎是唯一完美支持 openGL 的。连 ports 里都是单独一支:放在 /usr/ports/x11/nvidia-driver 下。而别的厂商的显卡驱动则均无官方版本,挤在 /usr/ports/x11-drivers 里面。

A 卡则次点,不过还好,除了 Windows 驱动外,倒是给出了 linux 版的。不过我老是觉得 ati 被 amd 收购后,越来越不思进取了。市场份额越来越小

我们维护 3d engine 部分的同事对比两类显卡的驱动,举了个很有力的例子用来说明开发人员会更喜爱哪家公司:

A 卡每次发布新版驱动,都会在更新文档里列出,我们这次更新修复了哪些游戏中因驱动引起的 bug ;而 N 卡发布驱动新版本,更新文档则是列出针对哪个接口做了怎样的改进或修正。

嗯,我就不谈 Intel 的卡了,虽然它的市场占有率也不低。可恨的是,Intel 可以为 Mac OS 做出漂亮的驱动来,就是不给开源社区贡献一点东西。原本把 Intel 和 AMD 相比的时候,我还有无限好感(来源于我们可以免费从 Intel 开发网站上免费索取到详尽的开发文档,并在一周内从美国快递过来);在显卡驱动这块,好感立刻减了一半。

如果你是一个 3d 游戏开发人员,请选购 N 卡吧,因为它对开发人员的诚意。

如果你是一个 3d 游戏玩家,也请选购 N 卡,因为为你开发游戏的程序员都喜欢它。

Comments

感觉A卡挺好的,驱动也没啥不好的,两家都别妖魔化了。

对图形来说N卡兼容性比A卡好

我也在带一个团队,不过开发的是第三方品台的软件,面临计算机的购买选择,感觉直接买dell要省很多事情:
对于公司而言,成本比兼容机高不了多少,最重要是,dell给开增值税发票
同一型号跨度1年配置也一样,维护方便

通过sudo apt-get install xserver-xorg-video-intel是可以将945的显卡驱动装好的!

A卡的颜色与效果好。
N卡只有FPS可能会高些

比较郁闷的是,WOW中这个现象特别明显

Anonymous关于shader的一段话比较中肯的说

D3D的成功是有他的道理的,GL自1.4来就在开始变成D3D标准后面的跟屁虫了,事实上,同一档次的A卡的效果与效率比N卡有过之无及不及,N卡比A卡强的地方,就是通用性与易用性比A卡高。

战神等一些PS2游戏由于PS2用linux衍生操作系统,因此可能是用OPENGL,当然也不排除他自己搞一套的可能性
----------------
PS有自己的商業游戲開發工具,好像還是收購來的。但據說自己在PS3上裝Linux無法訪問其3D顯示硬件加速設備,只有命令行輸出。

最终幻想7是出过PC版的(连8也有过),相当的挑显卡,当时据说只有VOODOO和部分可跑,正版售价2xx元,盗版也要60(4CD,十几块一张)
战神等一些PS2游戏由于PS2用linux衍生操作系统,因此可能是用OPENGL,当然也不排除他自己搞一套的可能性
厉害的是Capcom,在PS2,PS3上都有跨平台引擎,比如鬼武者,鬼泣3都有PC版本,而最新的引擎是可以跨xbox360和ps3的,如失落的星球、鬼泣4等等
在现在的游戏机厂商中由于越来越多考虑跨多机种的问题,所以引擎问题也越来越严重

现代的 3d engine, 图形效果方面主要还是靠写 shader 。
--------------------------
图形效果的本质是算法,而shader只是算法的一部分,如果您这里的shader只得仅仅是在gpu上跑的一段代码,那这个结论就下得有点肤浅。个人认为对于游戏来说,图形效果取决于1. shading算法和引擎架构 2.相关工具和美术制作水平。
为什么引擎架构和shading算法是同等地位?因为很多时候尽管程序员了解某种shading的优点,可集成到引擎中涉及的改动太大,甚至会破会架构的严密性,最终不得不放弃。比如halo 3,lightmap存的不是luminance而是sh系数, 然后如何用这些sh系数大家都可能大概了解。可以想象一下要集成到现有的一个仅支持传统lightmap的引擎中,工作量又多大。
其次是美术和场景编辑,可能日系的游戏更重视这个。不过欧美也有画面效果过分依赖场景编辑的例子(例子还是halo 3)

我个人主持的项目做跨平台是为了项目本身的质量,个人相信,在没有特别好的标准衡量工程整体质量时,能否跨平台可以权做一个标准。
----------------------------------
有一定道理,不过我认为这个衡量仅仅限于代码角度,对于游戏来说,工程质量的范畴远比代码广。

AMD收購ATI之后,開源動作比以前好很多吶。雖然其Linux下的驅動目前還比不上N家,但其開放了一系列圖形芯片技術文檔給Xorg組織。A家未來的開源驅動很令人期待吶。
http://developers.solidot.org/article.pl?sid=08/02/24/0712222

云风大哥啊,天下贰的登陆程序出大问题啦,你帮分析分析啊。

我对跨平台的个人看法(不推荐):

不刻意花精力去做。

不为跨平台而跨平台。

我个人主持的项目做跨平台是为了项目本身的质量,个人相信,在没有特别好的标准衡量工程整体质量时,能否跨平台可以权做一个标准。

我们的项目主要是 port 到 windows 上(因为是网游), 开发人员喜欢用非 windows 环境做开发,那是个人的喜好。而且对公司也节省了一定的成本:不用购买 Windows 和 Windows 下的开发工具。

接着说,
总体上的看法就是游戏中研究和制作越来越独立, 研究是为了提供制作方法,具体地说是为了提供更便利的工具, 好的工具平台的作用越来越大.
游戏是实时性表现的, 类比, 影视动画是非实时表现, 影视制作的圈子里面有了太多成熟制作的工具, 从模型制作, 动画到后期, 正是因为有了工具上便利, 制作人更容易进入到纯粹的创造中, 影视制作才有了今天的成熟度.我觉得影视业就是游戏业的一个范本吧.

大概是我把这篇文章的评论引偏了, 本来是讨论显卡的, 我不合时宜地联想起了各种平台之争, 其实是想了解一下云风对"流行就是好的"或是"纯粹才是好的"看法.
个人来说, 我觉得现代游戏的开发难度越来越大,为了讨好玩家, 别的游戏能实现的, 自己的游戏最好也实现,但超越又谈何容易, 游戏越来越多是利用别人的平台, 购买成熟的游戏组件(谁又知道可不可靠呢), 尽管整合性现在的形势仍很乱, 但这也是趋势了.
前面你举过很多日式游戏的例子, 他们出精品游戏可是为了好的移植性(尽管这越来越需要考虑)? 也许他们一直在PS平台上非常熟悉积沾,有了平台上非常丰富的经验罢了.
个人较在意的是游戏编辑和界面交互这些上层内容, 一个为了强化内容制作, 一个为了增强用户体验.

Cloud,不好意思,不是我有意争论,我们还是在讨论3d,没错吧?

我的意思是没有必要吧时间浪费在平台的选择和比较上,毕竟你也做了几年技术了。我第一次在xwindow上跑ogl程序,再用些诸如nv_register_combiner之类的扩展,实现了等同于当时d3d的功能,那时的确很激动,但现在有了hlsl(不是MS HLSL),你难道真的觉得“难搞定的是Shader 语言的差异”?难道几个关键字的差别就能让你得出glsl > cg > ms hlsl的结论?另外,我估计你没有看过某些spec,特别是给hw设计者看的spec,严谨和远瞻性在这上面才可以得到体现,API和shader language spec? 我认为只有在需要用到它们时才有必要去看。 如果你读过这些spec,或者稍微了解一点这些spec是何时由谁制定的,我收回我说的话。

关于平台稳定性健壮性的问题,我始终说的都是3d部分,或许你在linux上碰到些问题(特别是和ogl扩展有关时),或者被“在win上打开debug runtime就能查出的低级错误”耽误1个小时,才能体会到些什么。不过也有可能nv的driver在任何时候都给你面子,况且这种情况也在IHV的努力下改变。

关于稳定性全方面的比较,我觉得我不够资格给出结论。或许你有,但那仅限于你的个人意见。

是不是要做游戏机上的游戏了?

似乎又看到了C++/C之争的影子.其实关于平台之争也可以用C++/C之争的观点来诠释.就是OS系统的定位不一样.Windows定位于大众,兼顾于各种应用需求和开发所以必须有些方面要折中(C++).某些OS是专有或或者比较专有平台,所以有更快的反应速度(包括针对开发人员的建议)和更集中的优化某些的处理(类似某种语言特有的语法糖)(C,Lisp,脚本)
所以针对不同的应用每个人心中都有标准,永远都不能争出结果.但是,谁都不能否认Windows在大众市场的占有率.
btw 云风认为自己的游戏或engine是阳春白雪,只给懂的人,欣赏的人慢慢品位.显然Windows大都是下里巴人用的.云风是否因为这个看不起Windows了呢(主观因素往往大于技术等客观因素).如果云风是CEO,我想网易新的游戏就不会推出Windows版了.呵呵,云风大哥,对吗?

但也相信你在技术上的嗅觉,
由此你如果能推动在其它平台上的游戏开发, 这种前景也是挺好的, 毕竟我们困在WINDOWS上太久了.

现代的 3d engine, 图形效果方面主要还是靠写 shader 。

由于硬件的差异,我们不可能像早期那样直接对各种显卡做 GPU 的汇编级控制了。所以必须有一套方便的跨平台(指跨不同显卡厂商)的 shader 语言。

从制定的规范方面,openGL 的 GLSL 要严谨且有远瞻性的多。而 D3D 的 HLSL 或是 NVidia 的 CG 则感觉差了一些。

3d api 的差异性(d3d/ogl ?)其实很容易搞定,难搞定的是 Shader 语言的差异(靠开发人员人力去堆?)。

Windows 真的适合游戏?回顾一下自己最近玩过的 10 款游戏,数数有几款是 Windows 专有版;或是 Windows 版的感觉超过其它平台版的。

可以降低标准说 Windows 适合跑游戏,但它不比别的平台更适合。

Windows 的不稳定和不健壮,是设计本身决定的,不是由于“测试压力和范围不一样”。

你可以说 Windows 一些不稳定因素是由不合格的驱动程序或不合格的应用程序导致的,但允许这些因素导致系统崩溃,就是操作系统设计的责任了。别的 OS 做的或许也不完美,但大多比 Windows 强。

btw, 网游现在面临的广泛的木马盗号问题,Windows 本身设计有脱不开的干系。

如果不做网游,使用OGL无疑是最好的选择;如果纯粹做游戏引擎,OGL也是最好的选择;如果要做最前沿的3D引擎,DX是个更简单的方式。
其实要写跨平台的3D引擎,DX、OGL并用最好,毕竟虽然看起来一大堆API,实际上我想很多商业3D游戏,用到图形库的API可能不到100个。

对于下面某些平台之争,我认为没有一个人的理由能站住脚,当然包括楼主的。搞3d的人,无非两种,researcher和游戏相关的开发,前者不在乎平台,他们可以没有用过windows或linux,后者中有很多人追求全平台或叛逆,有自己的坚持(比如只在linux下做),这很好也很正常。

但没有任何事实(至少这里的人没能给出)能够得出“Windows 至今不是个适合游戏的平台”的结论。拿几款精心挑选的 自己喜欢的游戏来做例子只能引起口水战。

btw, M$现在主导着3d硬件spec的制定,个人认为在调试工具和系统软件(DDI,runtime,driver verification等)的稳定/健壮性上比其他平台更好一些。别拿mac/linux“不”蓝屏说事,测试压力和范围不一样,得出的结论当然不一样。

“如果你是一个 3d 游戏玩家,也请选购 N 卡”
同意,目前来说,n卡在游戏中的性价比非常不错,特别是中高端(从8600GTS/9600GT 到 8800GT)

“如果你是一个 3d 游戏开发人员,请选购 N 卡吧”
不认同。我们在讨论3d不是吗?ati硬件设计有些地方还是可圈可点的,搞3d的同学们多少会对一些特别feature感兴趣吧?如果是,那么就没必要nvida only.

想问一下,xbox360的游戏在什么平台下开发?

我最近玩过的感觉不错的 3d 游戏,最终幻想 7 ,战神,都没有 windows 版。

最近几年曾玩的比较多的 PC 版 3d 游戏,魔兽世界,我的几个同事是在 Mac OS 上跑的。

可见,好的 3d 游戏几乎都不是 Windows 专享,甚至不出 Windows 版。

Windows 至今不是个适合游戏的平台,游戏开发人员何必在上面吊死。

因为实际上说来, 你认为你开发的引擎,比如说只是在表现力上, 超越unreal, cryEngine的可能性有多大, 或是要用多大的精力时间? 如果只是把这部分精力放在提高人机界面上面, 给美术策划用的编辑工具上, 又会有多大的提高, (似乎很多工程师对界面交互不屑, 但个人觉得这是一个大学问)

如果是技术上的原因, 比如说追求一切的可控性(操作系统,引擎, 脚本语言), 最终可能会发觉面对的问题的复杂性越来越难以控制.

应该是这样.
如果你是一个 3d 游戏玩家,请选购 windows吧,好玩的3D游戏都在这上面。

如果你是一个 3d 游戏开发人员,也请选购 windows吧,因为你的玩家都用它。

我觉得服务端无所谓, 何必自己折腾非得把客户端跨平台,优化3D程序很多就是平台相关的.

谁说开发人员都喜欢 windows 的?
我们这里好多人坚决不装 windows

我想这个世界上开发 3d 程序(包括 3d 游戏)的程序员很多不在 windows 上。

intel 集成显卡的问题今天弄明白了,不是驱动问题,是硬件本身支持的不够。intel 的显卡驱动,openGL 部分偷了点懒,直接用的 mesa 的,实现的其实还成。看硬件参数,至少要到 965 才能算块象样的 3d 显卡了。

btw, windows 对开发人员可是不够诚意的哟 :) 至少没有 open source 的 OS 有诚意。

还有一个
如果你是一个 3d 游戏开发人员,请选购 windows吧,因为它对开发人员的诚意。

如果你是一个 3d 游戏玩家,也请选购 windows吧,因为为你开发游戏的程序员都喜欢它。

装得这么麻烦还装干嘛

Intel集成显卡的驱动应该可以在xorg支持大部分3d api的,不过945G的芯片在xorg下好像默认使用的是i810作为驱动的,这个是xorg提供的,3d api支持不全,Intel自己提供的驱动名字就叫intel,这个全,apt安装一下xserver-xorg-video-intel就可以了。对于硬件厂商在开源领域的作为,Intel应该算是典范了,他们的硬件都有自己开发人员直接参与开源社区并提供驱动,硬件spec文档也都很全很规范,而nvidia和ATI则死都不敢发布开源的驱动,文档也是遮遮掩掩,不同点是nv发布官方二进制驱动比较快和勤奋一点而已,ATI口头决心往往比实际行动大。装nv和ATI的驱动都要加装restrict类的包,非源代码分发。

Linux 下估计是 3d 游戏太少(有也是固定几个 3d engine 弄出来的),所以除 N 卡外的 openGL 驱动不完善。

945的驱动,ubuntu 的确是装好的。但是用的 mesa 的。很多 openGL 特性都是软件实现,或根本没实现,只是留了个壳。

比如最基本的 S3TC 压缩贴图的扩展都没提供。(几乎所有的 3d 显卡硬件都实现了)就更别提现代 3d engine 必须用到的 GLSL 了。

大多数人用 linux 不觉得,是因为没有深度的 3d 应用在跑。平时能跑 X 桌面就够用了。

ATI 对 linux 支持的还可以,只是不如 Nvidia 而已。

我就是用linux做桌面
主板是690G
没觉得ATI的驱动哪里有问题了
compiz funsion也能正常工作
而且AMD/ATI不是刚刚说了要加强linux下的显卡支持

GMA 945的驱动,ubuntu里面应该默认就安装好的。
intel对linux的支持还是不错的。至少我用compiz funsion也不需要再安装新的驱动。
我的GMA945用debian也没有问题,何况是面向桌面的ubuntu。

RTL8111/8168B的问题也不算偏门的问题了。应该算是Windows下的网卡驱动做的坏事。可以去Realtek官方下个新的驱动回来编译一下,应该可以解决问题。

Intel的3D驱动不算太糟糕吧,在Linux上应该是N >> Intel > A,个人看法。在Ubuntu下是xserver-xorg-video-intel这个包。

做的不好就干脆开放了少少的spec让大众自己去折腾吧...ATI、Intel就这么干着,估计节省不少成本咯。

HP nx6330在FreeBSD下也只能用个radeohd的驱动,启动X.org就不错了OpenGL想都别想。

我不打游戏,所以我的本本上也是linux,不过是fedora,呵呵。

哈哈 自信源自能力和态度

Ubuntu的确不错。

“如果你是一个 3d 游戏玩家,也请选购 N 卡,因为为你开发游戏的程序员都喜欢它。”——
o(∩_∩)o...云风大哥自信满满啊!

Post a comment

非这个主题相关的留言请到:留言本