平民程序 - linghuye's blog

天下风云出我辈,一入江湖岁月催。皇图霸业谈笑中,不胜人生一场醉。提剑跨骑挥鬼雨,白骨如山鸟惊飞。尘事如潮人如水,只笑江湖几人回。

随笔 - 221, 文章 - 0, 评论 - 680, 引用 - 0
数据加载中……

3D程序员的痛苦

做个3D程序,痛苦的不是做不出那些复杂绚丽的画面效果,最痛苦的莫过于面对无奇不有的玩家机器运行环境,不同的显卡,不同的驱动程序,还有那不同的木马病毒,不同的杀毒软件.有一天你的程序不幸阵亡了,我们可爱的玩家到论坛上骂一句,合理地表达一下他愤怒的心情,说那个程序躺尸躺的很是恶心,然后挥挥手不留下一片云彩,只留下我在那里红着脸,低着头,绞尽脑汁地在代码里检讨自己可能的错误. 由于无法重现这个邪恶的Bug,而且自己周围的机器都表现的很善良,所以剩下的技术手段就是纯粹靠猜.于是变得格外多疑敏感和恶心,怀疑这个API有问题,怀疑那个驱动程序版本有问题,怀疑代码里这个优化太过分,那个地方不够兼容,整天神经兮兮.

绝大多数的国内游戏玩家是不知道怎么安装显卡驱动程序的,你请他安装驱动程序,他是会直接把游戏删除的,得罪不起.所以即使驱动程序有差误,程序也应当兼容错误,嗯,这个要求的难度相当高.

我非常的憎恨ATI的显卡,因为几乎所有的问题都出在ATI显卡上.喜欢MyWarcraftStudio的朋友请以后购买显卡时优先考虑Nvidia的,当我在公司红着脸时,我很想回家在MyWarCraftStudio里加上拒绝运行在ATI显卡上以示报复,我自己的程序我想不支持那个显卡我就不支持,比微软都牛:). 我看WoWModelViewer的作者大部分时间也都在解决各种各样的和显卡有关的Bug,有段时间都不想在搞下去了,确实写这种非官方程序只是图个乐,自己happy,大家happy,太多的责任最后就很厌倦了.

以前我相信这种论调,说DirectX对显卡兼容性比OpenGL好,现在我觉得DirectX的兼容性比OpenGL乱.DirectX是有标准,但在Intel 845G集成显卡的操作系统上安装了DirectX9,不等于它就支持了DirectX 9.有时那些Caps也是乱七八遭,如在有的ATI显卡上,caps参数显示支持抗锯齿,可一旦打开抗拒齿,崩溃的崩溃,花屏的花屏. DirectX的那个设备丢失最恶心了,Resize一下窗口设备都会丢失,分明是个架构设计上的Bug,死活不改,还搞出个对付DeviceLost的专题来,每个对象再来个OnDeviceLost接口,奇丑无比.

我一直希望NVIDIA或ATI能出个能模拟各种显卡的驱动程序,这样能稍微缓解一下测试问题.有时我也跑到网吧去测试程序,不过现在网吧的显卡配置都高,而且型号统一,都是主流显卡,以后得找个比较破的野店才行.

做3D,安全第一.

posted on 2007-02-15 20:52 linghuye 阅读(6081) 评论(8)  编辑 收藏 引用 所属分类: 3D图形学研究颓废与激进

评论

# re: 3D程序员的痛苦  回复  更多评论   


我曾经做过几年驱动软件……咳咳……做驱动是比较难。

流传的一些说法,比如DirectX比OpenGL好、更兼容等等,基本都是……只要读读DirectX DDK和OpenGL DDK的代码,可能就不会这样想了。OpenGL毕竟是经过历史千锤百炼出来的东西,当然DirectX也是千吹百托出来的东西。

说道nVidia,它的开发人员很多来自3D的先驱sgi,他们的经验的确是比较丰富。






2007-02-19 21:20 | count0

# re: 3D程序员的痛苦  回复  更多评论   

深有同感,游戏3d程序员到游戏后期的一个工作就是对付那些兼容性问题。
2007-03-03 11:28 |

# re: 3D程序员的痛苦  回复  更多评论   

支持老大. 你的工具真的非常好用. 哈哈.我是做游戏角色的. 有时看看WOW中的模型,长进不小, 多谢谢了.
2007-03-10 11:30 | x9d

# re: 3D程序员的痛苦  回复  更多评论   

深有同感, 哎, 做程序, 难啊
2007-04-17 21:36 | sheds

# re: 3D程序员的痛苦  回复  更多评论   

所以公司买机器,显卡都要买不一样,N,A,intel和其他板载显卡都要有.
比如上次建个pbuffer,不同卡对宽高限制都不一样,麻烦的很.
2007-04-29 17:35 | filx

# re: 3D程序员的痛苦  回复  更多评论   

搞这东西,就是尽量用成熟的技术,尽量用稳定的东西.不过众口难调,咋整都会有些卡搞野.别以为NV就没问题,上回整文字FX 5200就跟我耍了把,用点渲染全部字都出现怪异现象,得用线性过滤才会显示正常,可是一用线性其他卡都糊了 - -#
2009-12-15 15:21 | 无名剑

# re: 3D程序员的痛苦  回复  更多评论   

同感,我写的3D程序,我在的N卡机子上跑得好好的,拿到A卡上测试有时就通不过,相当郁闷。
比如楼上说的pBuffer,我也存在同样的问题。
买卡还是买N卡
2010-06-22 16:26 | linminquan#sina.com

# re: 3D程序员的痛苦  回复  更多评论   

DeviceLost 呵呵 是很扯淡
最把握的方法还是从新create device ....
opengl 就不用操心
2010-07-28 11:22 | wl
只有注册用户登录后才能发表评论。