POPPUR爱换

 找回密码
 注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

搜索
查看: 3945|回复: 36
打印 上一主题 下一主题

作为一个业余游戏开发者,我不得不发发牢骚了

[复制链接]
跳转到指定楼层
1#
发表于 2008-12-8 12:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近半年
我几乎每个月都要斯巴达一次
每次都是因为NV和ATI这对冤家令人讨厌的行为所导致
我用的A卡是X550
N卡是7600GT
由于我被DX那5XXMB的sdk给震撼了
所以选择opengl
好吧
我承认是我自找的
我也承认我能力很烂
又没读过几本书
但是我是个活人
我有权利吐槽

首先是渲染到纹理
在A卡上渲染到纹理的时候,Alpha通道也会保留
但是同样的代码同样的程序
到了N卡上
Alpha通道就固定变成1.0了
搞得我还以为N卡不支持混合
当然Alpha通道我还是需要用,所以开始折腾FBO
这回N卡有Alpha通道了
A卡又没了
偏偏我又用FBO写了bloom
这下可好,只能砍了bloom保证兼容性
2个月的业余时间我只得到两次斯巴达,以及两个扯淡的教训


然后是shadowMAP
我用的是NV的Cg
开始的时候我还庆幸A卡能正常使用NV搞的东西
但是在做shadowMAP的时候我终于知道什么叫冤家
shadowMAP需要用深度纹理
直接渲染到纹理又是两家效果不同,这也就算了
我又不是搞专业开发的,老显卡我也不管了
深度纹理我也用FBO
这次更有趣了
我在N卡的机器上写代码
深度纹理用了24位的
在N卡上一切正常
到了A卡上提示FBO与加载的纹理格式不同
大概X550不支持
我换16位的
这次轮到N卡提示不支持
好吧
24位你支持了
16位你反而不支持
你干脆连深度渲染都给禁用了岂不更好
为了判断显卡是哪家的
我又折腾了1星期
深度纹理总算能出来
在shader里读深度纹理的时候
又出现有趣的事情
N卡能自动识别纹理格式
如果是“被规定使用的深度纹理格式”那么就可以自动实现一堆功能
“被规定使用的深度纹理格式”到底是什么东东
Cg编程手册里没说明白
我翻遍glew头文件里所有的适合用于渲染深度的纹理格式
没一个能用的
A卡相关资料完全没有,ATI向来官方资料少

无奈之下
只好改用浮点纹理渲染
稍微翻了一下资料
发现关于浮点纹理
NV和ATI在这方面是完全的冤家
而且我的X550没一个格式能用的……
最终
我想出一个纯粹脱裤子放屁的方法
把一个32位浮点数分成4个8位“浮点”数
不过shader是不支持位运算的
可想而知最终结果有多大的误差
结果就是:


至此
我已经不知道该说什么好了
当初DX和opengl都不存在的时候
图形API没有标准
各家显卡都不同
结果最终造就了Voodoo的神话
但是3DFX不开放自己的api
扑街了
换DX和opengl接班
的确现在PC游戏用opengl的比较少了
但是这不等于没人用opengl
像NV和ATI这样各自搞小动作
还不说明白
只有从dos时代过来的经验丰富的程序员面对这些烂事才能从容应对
我现在不得不担心
20年后老一辈开发人员都下岗之后
会不会也出现个“程序员能力危机”呢?
2#
发表于 2008-12-8 12:49 | 只看该作者
人材,人材,人材,
回复 支持 反对

使用道具 举报

3#
发表于 2008-12-8 12:50 | 只看该作者
gz的牛人真多
回复 支持 反对

使用道具 举报

4#
发表于 2008-12-8 12:53 | 只看该作者
程序员向来是长江后浪推前浪,楼主多虑了。
回复 支持 反对

使用道具 举报

头像被屏蔽
5#
发表于 2008-12-8 12:53 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

6#
发表于 2008-12-8 13:31 | 只看该作者
贴作品出来才是正道,为什么别人开发的可以搞好,而你搞不好呢?
回复 支持 反对

使用道具 举报

7#
发表于 2008-12-8 13:36 | 只看该作者
由于我被DX那5XXMB的sdk给震撼了
所以选择opengl
好吧
我承认是我自找的

知道原因了那还不快快用回D3D{biggrin:]
M$千秋万代,一统江湖!!
回复 支持 反对

使用道具 举报

8#
 楼主| 发表于 2008-12-8 13:36 | 只看该作者
原帖由 lisir2 于 2008-12-8 13:31 发表
贴作品出来才是正道,为什么别人开发的可以搞好,而你搞不好呢?

帖作品出来那就是发恶意广告了
我又不是专业人员
搞不好有什么奇怪的
回复 支持 反对

使用道具 举报

sarahaaa 该用户已被删除
9#
发表于 2008-12-8 13:37 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

10#
 楼主| 发表于 2008-12-8 13:38 | 只看该作者
原帖由 daniel_k 于 2008-12-8 13:36 发表

知道原因了那还不快快用回D3D{biggrin:]
M$千秋万代,一统江湖!!

DX教学全都是用VS
装VS也太麻烦了吧
opengl随便拽个IDE就能编译
甚至我可以把工程和ide都扔到U盘随身携带
回复 支持 反对

使用道具 举报

11#
发表于 2008-12-8 13:39 | 只看该作者
现在的游戏几乎都是DX一统江湖了,还考虑用OpenGL来开发游戏?那是给开源的Linux用的。
回复 支持 反对

使用道具 举报

12#
发表于 2008-12-8 13:47 | 只看该作者
这灰机,有雪风里JAM的味道
回复 支持 反对

使用道具 举报

13#
 楼主| 发表于 2008-12-8 13:51 | 只看该作者
坚决不用DX
用DX就要用VS
用VS就要看到MAC风格的错误提示
我宁可用DEV C++
最起码方便
回复 支持 反对

使用道具 举报

14#
发表于 2008-12-8 13:54 | 只看该作者
LZ不容易啊,被折腾的
回复 支持 反对

使用道具 举报

15#
发表于 2008-12-8 13:55 | 只看该作者
牛贴! 顶一顶我也牛!!
回复 支持 反对

使用道具 举报

16#
发表于 2008-12-8 13:57 | 只看该作者
相信两家对DX支持上的一致性肯定好于OpenGL,但也别抱太大希望:p
回复 支持 反对

使用道具 举报

17#
发表于 2008-12-8 14:12 | 只看该作者
写2个程序

运行前先判断是什么卡


哈哈哈哈哈哈和哈哈哈哈哈哈哈哈哈
回复 支持 反对

使用道具 举报

18#
发表于 2008-12-8 14:16 | 只看该作者
解决办法很简单,根据显卡厂商分别使用不同的实现方法。

虽然这个办法很傻。{victory:]
回复 支持 反对

使用道具 举报

Elensar 该用户已被删除
19#
发表于 2008-12-8 14:25 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

20#
 楼主| 发表于 2008-12-8 14:46 | 只看该作者
怎么什么地方都有认识我的人:sweatingbullets:
回复 支持 反对

使用道具 举报

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

本版积分规则

广告投放或合作|网站地图|处罚通告|

GMT+8, 2025-3-14 00:31

Powered by Discuz! X3.4

© 2001-2017 POPPUR.

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