游戏开发论坛

 找回密码
 立即注册
搜索
楼主: maphack

学做3d游戏地话,学opengl好呢还是学direct3d好呢?

[复制链接]

42

主题

334

帖子

344

积分

中级会员

Rank: 3Rank: 3

积分
344
发表于 2005-5-4 14:54:00 | 显示全部楼层

Re: 学做3d游戏地话,学opengl好呢还是学direct3d好呢?

    谈到3D编程序一直有个问题困扰着初学者,学3D编程是选Direct3D还是OpenGL好。甚至有人认为OpenGL是一种过时的技术。
    我们首先了解什么是3D API? API是英语“应用程序接口(Application Programming Interface)”的缩写,3D API就是3维图形应用程序接口了。
● Direct3D(D3D)
    Direct3D是基于微软的通用对象模式COM(Common Object Mode)的3D图形API。它是微软(Microsoft)树立的3D API规范,它所有的语法定义包含在微软提供的程序开发组件的帮助文件、源代码中。Direct3D是微软公司DirectX SDK集成开发包中的重要部分,适合多媒体、娱乐、即时3D动画等广泛和实用的3D图形计算。自1996年发布以来,Direct3D以其良好的硬件兼容性和友好的编程方式很快得到了广泛的认可,现在几乎所有的具有3D图形加速的主流显示卡都对Direct3D提供良好的支持。但它也有缺陷,由于是以COM接口形式提供的,所以较为复杂,稳定性差,另外,目前只在Windows平台上可用。
● OpenGL
    OpenGL也是一个3D API,它是开放的图形程序接口,英文全称是“Open Graphics Library”, OpenGL是跨平台的国际计算机工业标准应用程序接口,主要应用于专业设计领域。 OpenGL是与硬件无关的软件接口,只要操作系统使用了OpenGL适配器就可以达到相同的效果,它是一个开放图形库,目前在Windows、MacOS、OS/2、Unix/X-Windows等系统下均可使用,具有良好的可移植性,同时调用方法简洁明了,深受好评,应用广泛。OpenGL能在网络环境下以客户机/服务器模式工作,充分发挥集群运算的威力,是专业图形处理、科学计算等高端应用领域的标准图形库。
    目前3D图形领域,专业用户(CAD/CAM等) 3D绘图大部分利用OpenGL,而微软致力于推广家庭与个人市场的多媒体娱乐平台,DirectX几乎就是Game、CAI等应用软件的绘图标准接口。但是因为OpenGL较早完成,且技术层次洗练深受开发者和用户喜爱,甚至包含许多游戏开发者。但DirectX不只有绘图处理,还包含Video、Sound等多媒体影音处理,因此其涵盖面超过OpenGL,可以说是各有所长。
    现在多数商业游戏都选择了D3D和OpenGL双API方式。设计两个API的作用在于,你的显卡运行某个API出现贴图错误或者运行速度跟不上时,可以试着切换另一个API来运行。这已经是许多游戏玩家都知道的。
● 选择Direct3D还是OpenGL?
    现在的计算机的显示卡普遍具有的3D性能都很强大了,对OpenGL和Direct3D都能很好的支持。所以建议:可能的情况下,“Direct3D和OpenGL一个都不要少”。
    作为3维图形的初学者OpenGL的API调用方法简洁明了,似乎更好理解一些。 Direct3D的API由于是以COM接口形式提供的,对初学者来说使用较为复杂。重要的是我们不是在学OpenGL或Direct3D,是学习3维图形的处理方法,OpenGL或Direct3D只是一种3维图形的描述方法。

2

主题

85

帖子

85

积分

注册会员

Rank: 2

积分
85
发表于 2005-5-4 19:38:00 | 显示全部楼层

Re: Re:学做3d游戏地话,学opengl好呢还是学direct3d好呢?

用VS.NET开发和用.NET开发完全是两个不同的概念!VS.NET只是支持.NET的一个编译器,而.NET是一个框架,至少要托管才能说是用.NET开发。

HLSL不是微软整出来的难道还会使ARB? 凭借微软的编译器技术还要别的公司帮他写HLSL编译器?至于和NVidia等显卡厂商合作,那是为了更好地兼容主流显卡,软件需要硬件支撑的。哪像ARB的官僚们那样不管硬件厂商的意见,硬性推出一个GLSL搞得一大堆显卡都支持不了阿,哈哈。

VC6.0好像是97年的东西了吧,连标准C++都不能完全支持(那时候C++ISO都没出来),现在是2005年,早是个该淘汰的东西了。至于其他公司的编译器,如果按照ARB的做法,应该是这些编译器来支持DX9才对。就像ARB制定一个标准,不管你厂商愿不愿意都得硬性支持。

190

主题

1801

帖子

2096

积分

金牌会员

Rank: 6Rank: 6

积分
2096
QQ
发表于 2005-5-4 21:01:00 | 显示全部楼层

Re:学做3d游戏地话,学opengl好呢还是学direct3d好呢?

您说得太对了
正应该是可怜的编译器来支持dx9才对
从众多编译器对ogl和dx两者不同的支持力度中,我们真正可以看出ogl是一种多么地伟大的标准,而dx又是多么地不得人心的垃圾

2

主题

85

帖子

85

积分

注册会员

Rank: 2

积分
85
发表于 2005-5-4 21:59:00 | 显示全部楼层

Re:学做3d游戏地话,学opengl好呢还是学direct3d好呢?

得不得人心大家心里清楚。你看看显卡支持HLSL的多还是GLSL的多,用Pixel Shader这个名字多还是用Fragment Program的多。3dmax7.0一个重大的改进就是集成了相应的功能来支持HLSL而不是GLSL。显卡都用支持DX几点零来定级别。谁的技术先进厂商就跟着谁跑。就连各种著名的教材(GPU GEMS, SHADERX)甚至实事渲染的论文都要拿DX说事。

微软的DX定位是在多媒体和游戏方面,注重实时性和开发效率,集成了各种新技术和学术界的最新成果(PRT, Progressive Mesh, Animation, 各种格式纹理的加载) 。这点和OPENGL是不一样的。DX为什么最终不支持纯软件渲染,因为这根本不实用,CPU的速度无法达到这个层次。你见过谁用OPENGL的纯软件方式来玩DOOM3的?别说DOOM3,就连HALF-LIFE1这样的游戏,恐怕都玩不起。

每个人都有不同的偏好,但我不会说什么东西垃圾,OPENGL存在这么久,自然有它的好处在里面。我不会像某些人一样拿“DX只能用.NET开发”这种毫不成立的罪名来说DX是垃圾。我不知道以后的形势会怎么样,但现在OPENGL落后DX是不争的事实。

190

主题

1801

帖子

2096

积分

金牌会员

Rank: 6Rank: 6

积分
2096
QQ
发表于 2005-5-5 00:21:00 | 显示全部楼层

Re:学做3d游戏地话,学opengl好呢还是学direct3d好呢?

什么破玩意那么长?
你要能让dx 在我的机器上跑起来我立马投入dx的怀抱!
p41.4
gf440
debian linux

2

主题

85

帖子

85

积分

注册会员

Rank: 2

积分
85
发表于 2005-5-5 00:33:00 | 显示全部楼层

Re:学做3d游戏地话,学opengl好呢还是学direct3d好呢?

你那系统,你那配置,呵呵,随便拿个商业游戏也跑不了,dx干吗要迎合你的机器啊,还是早点扔了吧:)

190

主题

1801

帖子

2096

积分

金牌会员

Rank: 6Rank: 6

积分
2096
QQ
发表于 2005-5-5 00:40:00 | 显示全部楼层

Re:学做3d游戏地话,学opengl好呢还是学direct3d好呢?

还好,我们这种平民都是玩opengl的

2

主题

85

帖子

85

积分

注册会员

Rank: 2

积分
85
发表于 2005-5-5 00:41:00 | 显示全部楼层

Re:学做3d游戏地话,学opengl好呢还是学direct3d好呢?

呵呵,注意了,你的显卡不支持GLSL,opengl已经抛弃你了

190

主题

1801

帖子

2096

积分

金牌会员

Rank: 6Rank: 6

积分
2096
QQ
发表于 2005-5-5 00:49:00 | 显示全部楼层

Re:学做3d游戏地话,学opengl好呢还是学direct3d好呢?

知道以前ogl为什么没有shader吗
因为有跨平台的cg 的存在
我这儿实现室里的两个博士生都是用ogl+cg在做一个医学项目的
cg和hlsl差不多是一样的
glsl可算是它们的升级版本

190

主题

1801

帖子

2096

积分

金牌会员

Rank: 6Rank: 6

积分
2096
QQ
发表于 2005-5-5 00:53:00 | 显示全部楼层

Re:学做3d游戏地话,学opengl好呢还是学direct3d好呢?

还不快让你家微软的d3d去支持glsl?不然快落伍拉
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-7-20 01:13

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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