查看: 11191|回复: 30
  

学习游戏开发,先学OpenGL再学Direct3D还是直接学习Direct3D? [复制链接]

   
臨風輕嘆

飞骑尉(从六品)

注册时间
2012-10-22
积分
60
  • 串个门
  • 加好友
  • 打招呼
  • 发消息
电梯直达

1#

 发表于 2012-10-22 22:30:01 |只看该作者 |倒序浏览

学习游戏开发,先学OpenGL再学Direct3D还是直接学习Direct3D?

本人为在校大学生,刚刚开始学习Direct3D,但是发现Direct3D网上的教程远没有OpenGL多(主要现在学习遇到瓶颈,周围没人帮解答),然而从事游戏开发方面,在游戏上又是Direct3D的天下,想请教下各位大大们。是先学OpenGL再学Direct3D还是直接学习Direct3D。

如果是先学OpenGL再学Direct3D,那opengl学到什么程度再学Direct3D?

对了现在学习Direct3D正在看《DirectX 9.0 3D游戏开发编程基础》...

分享0收藏100
 

使用道具 举报

   
mayax

上轻车都尉(正四品)

注册时间
2010-5-11
积分
2338
  • 串个门
  • 加好友
  • 打招呼
  • 发消息
2#

 发表于 2012-10-22 22:50:56 |只看该作者

先读好书,同学。。。
 
 

使用道具 举报

   
thor_lzl

上骑都尉(正五品)

注册时间
2012-6-19
积分
747
  • 串个门
  • 加好友
  • 打招呼
  • 发消息
3#

 发表于 2012-10-22 23:32:04 |只看该作者

opengl和Directx学一个就可以了,DX的资料还是很多的啊。但是现在在游戏公司直接使用DX的机会很少,感觉CODING能力才是关键。
 
 

使用道具 举报

   
goteet

骁骑尉(正六品)

注册时间
2012-7-5
积分
172
  • 串个门
  • 加好友
  • 打招呼
  • 发消息
4#

 发表于 2012-10-24 15:22:37 |只看该作者

本帖最后由 goteet 于 2012-10-24 15:25 编辑

使用dx 写起程序来,只要看完sdk的文档,基本都能写出来。
使用gl 你对着wiki一模一样的代码你都不一定能出效果。

包括一些比较基础的变换,管线的内容,dx的文档都有介绍,不用单独去找,我觉得直接看dx会比较好。
如果使用网教程的话-  -我什么建议也没有,你当我“就看看,不说话。”。

我就看看,我不说话。
 

使用道具 举报

   
cybercser

上护军(正三品)

注册时间
2011-9-19
积分
6783
  • 串个门
  • 加好友
  • 打招呼
  • 发消息
5#

 发表于 2012-10-24 21:46:31 |只看该作者

我现在在读硕,研究方向是布料模拟,以后也准备投身游戏行业。我首先学了opengl 红宝书、蓝宝书。现在在看橙宝书(OpenGL Shading Language),感觉是和红宝书类似的手册,比较难读,于是转看OpenGL 4.0 Shading Language Cookbook。现在才刚开头。偏学术的工作还是用opengl的多一点,所以我先学的 GL。我觉得学OpenGL不妨碍学DX,反而可以有所促进。

我看完红蓝宝书之后看了楼主正在看的龙书(龙书还有DX10 HLLSL等版本,官网上有)。由于前面的opegl经验,龙书很快看完了(过了一遍,例子没动手敲)。感觉有GL基础看DX会快很多。DX几乎就是为做游戏而生的,很多方便的API是OpenGL没有,不说别的在OpenGL里显示几个字母、加载几张纹理图片、加载几何模型就比在DX里麻烦许多。不过这些麻烦也促使我去自己动手实现这些个“方便”的API,其中可以学到不少好东西。NEHE的网站当然是不错的参考资料。

关于OpenGL游戏编程书籍
NEHE网站上有本推荐的Beginning OpenGL Game Programming.(封面一个红的龙头张着大嘴),楼主不妨看看。现在又有一本More OpenGL Game Programming.

另外我还有一本停止印刷的OpenGL游戏编程(徐明亮),虽然其中部分代码明晃晃地抄了NEHE等其它网上的资料,虽然书里面主要是代码,但也能从这本不怎么地的书中学到了粒子系统、场景漫游等等技术细节。

还有一些不错的网站和个人博客,我权限不够,没法粘URL。Sorry。

 
 

使用道具 举报

   
kingds

上骑都尉(正五品)

注册时间
2012-1-8
积分
994
  • 串个门
  • 加好友
  • 打招呼
  • 发消息
6#

 发表于 2012-10-24 22:21:14 |只看该作者

坚持OpenGL!!
 
 

使用道具 举报

   
LookTheBoy

骑都尉(从五品)

注册时间
2012-10-13
积分
207
  • 串个门
  • 加好友
  • 打招呼
  • 发消息
7#

 发表于 2012-10-31 19:53:26 |只看该作者

个人感觉学一个就可以了,另外一个就很快通了,毕业原理差不多。就像语言一样,你学会了C++,难道还要从头学什delphi,JAVA吗?不用了,一个星期搞定。
 
 

使用道具 举报

   
臨風輕嘆

飞骑尉(从六品)

注册时间
2012-10-22
积分
60
  • 串个门
  • 加好友
  • 打招呼
  • 发消息
8#

 发表于 2012-11-5 20:20:34 |只看该作者

cybercser 发表于 2012-10-24 21:46 
我现在在读硕,研究方向是布料模拟,以后也准备投身游戏行业。我首先学了opengl 红宝书、蓝宝书。现在在看 ...

感谢回复~  如果学了opengl再学DX,opengl要学到什么程度才行?
我现在龙书才看了一半,主要是他的主要流程还是没有搞明白。知识点很乱,不知道从何下手,离开书本就什么也弄不出来0.0

 
 

使用道具 举报

   
cybercser

上护军(正三品)

注册时间
2011-9-19
积分
6783
  • 串个门
  • 加好友
  • 打招呼
  • 发消息
9#

 发表于 2012-11-6 21:19:04 |只看该作者

臨風輕嘆 发表于 2012-11-5 20:20 
感谢回复~  如果学了opengl再学DX,opengl要学到什么程度才行?
我现在龙书才看了一半,主要是他的主要流 ...

我也不是什么大牛,说的不一定对。楼主择其善者而从之。红宝书蓝宝书目前涵盖了OpenGL2.1之前的内容,老式渲染管线+GLSL皮毛。如果通读过这两本(红宝书乃手册比较枯燥,需要耐心),加之3D图形学的基础(至少懂得几何变换、光照模型之类的基础知识),看龙书应该没什么障碍,甚至会有似曾相识的感觉。从体例来说,我感觉红蓝宝书和龙书讲的都差不多,无非是流水线、基本图元画法、颜色、光照、纹理、缓冲器等等(基本原理都是一样的嘛)。如果有“乱”的感觉,说明3D图形学的基础还不大牢吧,冒犯了,见谅。

我的基本观点是:做游戏,最靠谱的还是DX。学OpenGL不妨碍你理解DX。3D基础是王道,学好了基础,DX、OpenGL任选一样、或者钗黛双收都行。

 
 

使用道具 举报

   
臨風輕嘆

飞骑尉(从六品)

注册时间
2012-10-22
积分
60
  • 串个门
  • 加好友
  • 打招呼
  • 发消息
10#

 发表于 2012-11-7 15:21:13 |只看该作者

cybercser 发表于 2012-11-6 21:19 
我也不是什么大牛,说的不一定对。楼主择其善者而从之。红宝书蓝宝书目前涵盖了OpenGL2.1之前的内容,老 ...

3D图形学?我没看过哎0.0还要先看看图形学的?悲剧,我本来打算看完龙书再看图形学的...看来是我本末倒置了

 
 

使用道具 举报

   
路西法

云骑尉(正七品)

注册时间
2013-1-4
积分
44
  • 串个门
  • 加好友
  • 打招呼
  • 发消息
11#

 发表于 2013-1-4 16:40:16 |只看该作者

本人也是新手,就是不知道学opengl应该看什么书
 
 

使用道具 举报

   
Jedimaster

管理员

注册时间
2007-6-11
积分
25658
  • 串个门
  • 加好友
  • 打招呼
  • 发消息
12#

 发表于 2013-1-4 21:29:16 |只看该作者

英语学好吧……
 
 

使用道具 举报

   
elanchao

轻车都尉(从四品)

SunWalker

注册时间
2012-5-12
积分
1562
  • 串个门
  • 加好友
  • 打招呼
  • 发消息
13#

 发表于 2013-1-6 21:11:41 |只看该作者

本帖最后由 elanchao 于 2013-1-6 21:16 编辑

我就稍微感慨下,搞3D和图形都成大坑了,还有那么多人投进来。
关于Direct3D和OpenGL到底学那个,我的观点就是学Direct3D要比OpenGL轻松多了,现在你看关于OpenGL的书很多,好像Direct3D的书很少?事实上Direct3D都不需要书了,人家自己有详细的SDK文档,写的密密麻麻的(你在市面上买的某些书就是抄SDK文档的,一模一样);另外Direct3D的SDK做了很多其他的工作,让程序员专心图形,而OpenGL只管渲染,程序员要做的工作非常的多(亲身体会),另外市面上的书还有网络上的很多关于OpenGL的内容都是老旧的Compatibility profile的内容(比如立即模式这些老掉牙的API)。
不过到后来上面的都是废话,简单通俗的说Direct3D和OpenGL都是***为显卡跑腿的,能有什么太大的区别,有很多地方非常的相似。Coding能力和图形算法知识我觉得才是本质要掌握的吧。

ps:同上面,大学生还是好好读书吧,高数、线代英语别又挂科了

 
 

使用道具 举报

   
keyring

上轻车都尉(正四品)

注册时间
2011-12-31
积分
2383
  • 串个门
  • 加好友
  • 打招呼
  • 发消息
14#

 发表于 2013-1-6 23:50:52 |只看该作者

游戏开发啊,opengl和D3D都可以不学,那是用来做游戏引擎开发的。你还不如直接学习某些成熟的引擎呢。
 
 

使用道具 举报

   
Baesky

版主

RenderGuy

注册时间
2010-11-4
积分
5570
  • 串个门
  • 加好友
  • 打招呼
  • 发消息
15#

 发表于 2013-1-8 14:23:43 |只看该作者

国内目前学学unity和csharp应该好进圈
 
 

使用道具 举报

   
jeremy_zhou

上轻车都尉(正四品)

注册时间
2012-10-8
积分
2882
  • 串个门
  • 加好友
  • 打招呼
  • 发消息
16#

 发表于 2013-1-8 17:28:45 |只看该作者

Baesky 发表于 2013-1-8 14:23 
国内目前学学unity和csharp应该好进圈

那玩意不是给美术用的么...
要说新人我还是推荐DX学起..经典的龙书 + DXSDK安装包里面的例子..妥妥的

 
 

使用道具 举报

   
bzerg

骑都尉(从五品)

注册时间
2012-2-10
积分
310
  • 串个门
  • 加好友
  • 打招呼
  • 发消息
17#

 发表于 2013-1-9 00:52:44 |只看该作者

新人很少有机会去编引擎,所以DX和OPENGL先任学一个。如果接触不到项目的话,先不用很深入得学,学了也白学。跟着项目学是最快的。

Code能力很重要,Code思想也很重要。

 
 

使用道具 举报

   
Jedimaster

管理员

注册时间
2007-6-11
积分
25658
  • 串个门
  • 加好友
  • 打招呼
  • 发消息
18#

 发表于 2013-1-9 14:02:39 |只看该作者

再来罗嗦几句。

我也算从学GL和DX开始的过来人,真心觉得,学GL适合入门图形学,为什么?简单清晰明了,搞个glut的小程序就可以开始学用GL的API了,迅速理解实时渲染,然后就可以照着一些方法开始实现一些图形效果了。
其实到这里,和游戏本身还有十万八千里,因为游戏本身比GL或者DX这些API范围更加广泛,所以如果想要真正的搞游戏,不如从某个游戏引擎,比如火热的Unity开始学,理解各个系统模块的交互和组成,先形成一种大局观。单一的学GL或者DX真心不够,除非你的工作只是和图形学相关的,或者以后决定只搞游戏渲染这个一块,可以理解,这样对于自身也是个巨大的局限,说真话,如今搞渲染的真心没啥出路。

到了最后就是两个问题,就是1)英语能力2)足够的体力和耐心,只要有2个,基本上就可以了,学啥干啥都一样了,殊途同归。

 
 

使用道具 举报

   
qq.d.y

上骑都尉(正五品)

注册时间
2012-2-28
积分
772
  • 串个门
  • 加好友
  • 打招呼
  • 发消息
19#

 发表于 2013-1-19 22:14:13 |只看该作者

Jedimaster 发表于 2013-1-9 14:02 
再来罗嗦几句。

我也算从学GL和DX开始的过来人,真心觉得,学GL适合入门图形学,为什么?简单清晰明了,搞 ...

顶一下。
顺便再加一条,抽象思维(高数,线代)能力。

 
 

使用道具 举报

   
waynewying

骑都尉(从五品)

注册时间
2012-2-28
积分
200
  • 串个门
  • 加好友
  • 打招呼
  • 发消息
20#

 发表于 2013-1-21 12:49:41 |只看该作者

学游戏不一定一上来就学DX和OPENGL,可以自己试着用GDI实现一套流水线。
 
 

使用道具 举报

   
keyring

上轻车都尉(正四品)

注册时间
2011-12-31
积分
2383
  • 串个门
  • 加好友
  • 打招呼
  • 发消息
21#

 发表于 2013-1-21 13:21:17 |只看该作者

waynewying 发表于 2013-1-21 12:49 
学游戏不一定一上来就学DX和OPENGL,可以自己试着用GDI实现一套流水线。

你这哪是学“游戏”,明明是学“图形”的路子。。

 
 

使用道具 举报

   
waynewying

骑都尉(从五品)

注册时间
2012-2-28
积分
200
  • 串个门
  • 加好友
  • 打招呼
  • 发消息
22#

 发表于 2013-1-21 15:39:39 |只看该作者

keyring 发表于 2013-1-21 13:21 
你这哪是学“游戏”,明明是学“图形”的路子。。

呵呵,是的,我的确有些偏图形了。不

 
 

使用道具 举报

   
Snafloda

轻车都尉(从四品)

注册时间
2011-5-20
积分
1375
  • 串个门
  • 加好友
  • 打招呼
  • 发消息
23#

 发表于 2013-1-21 23:05:31 |只看该作者

个人觉得就绘图而言,OpenGL的API比DirectX要好用一些……
其实国内游戏开发相关的话,DirectX的资料应该是比OpenGL多的。用OpenGL的大部分都是搞图像处理之类的吧……
然后我想说其实这两者都是同一个层面上的东西。举个不恰当的例子,比如说你用windows sdk写2D游戏比较熟练,你改用SDL,甚至是跑到linux里用SDL写游戏也能很快上手。逻辑基本就是一样的,就是绘图函数不同而已。
_(:3」∠)_其实我也是菜鸟
 
 

使用道具 举报

   
ljb

护军(从三品)

注册时间
2010-3-27
积分
4200
  • 串个门
  • 加好友
  • 打招呼
  • 发消息
24#

 发表于 2013-1-22 12:53:18 |只看该作者

个人觉得DX的书籍在国内太底端(一大堆)和太高端(GPU系列等),很难找到一本适应面广的。
 
 

使用道具 举报

   
pixellee

骁骑尉(正六品)

注册时间
2013-2-14
积分
122
  • 串个门
  • 加好友
  • 打招呼
  • 发消息
25#

 发表于 2013-2-15 16:35:09 |只看该作者

keyring 发表于 2013-1-6 23:50 
游戏开发啊,opengl和D3D都可以不学,那是用来做游戏引擎开发的。你还不如直接学习某些成熟的引擎呢。 ...

有道理。我们的引擎不是商业的,不友好和完善,程序员们倒是比较多机会用到,对于那些商业的,可能就像同事说的只要会“调用”就可以了。

 
 

使用道具 举报

   
时光先生

骑都尉(从五品)

注册时间
2010-6-27
积分
419
  • 串个门
  • 加好友
  • 打招呼
  • 发消息
26#

 发表于 2013-2-18 15:48:36 |只看该作者

本帖最后由 时光先生 于 2013-2-18 15:49 编辑

directx的思维方式和c++较为接近,opengl和c一样。directx比较容易学。
本人的学习过程是先directx,然后opengl,opengl的固定函数逻辑基本没学(相对于dx,个人觉得比较繁琐),直接学了gpu流水线的那套。然后接着学了opengles2.0(相对于opengl不少细节又不一样)。

游戏越来越跨平台化,dx和ogl最终都需要学。先学dx更容易。

 
 

使用道具 举报

   
zhanxiaojian

上轻车都尉(正四品)

注册时间
2013-3-6
积分
2412
  • 串个门
  • 加好友
  • 打招呼
  • 发消息
27#

 发表于 2013-3-7 18:00:31 |只看该作者

我觉得opengl和diect都是相通的,学完一个,另一个也会了
 
 

使用道具 举报

   
boyDoGPU

骑都尉(从五品)

注册时间
2012-12-7
积分
232
  • 串个门
  • 加好友
  • 打招呼
  • 发消息
28#

 发表于 2013-3-8 14:20:26 |只看该作者

我认识的平朋友从这两个方向入门的都有,只要坚持,应该都能成功的哈
 
 

使用道具 举报

   
boyDoGPU

骑都尉(从五品)

注册时间
2012-12-7
积分
232
  • 串个门
  • 加好友
  • 打招呼
  • 发消息
29#

 发表于 2013-3-8 14:21:54 |只看该作者

zhanxiaojian 发表于 2013-3-7 18:00 
我觉得opengl和diect都是相通的,学完一个,另一个也会了

有道理。请问您是学生呢?还是工作中哈

 
 

使用道具 举报

   
brightcm

上骑都尉(正五品)

注册时间
2012-7-10
积分
885
  • 串个门
  • 加好友
  • 打招呼
  • 发消息
30#

 发表于 2013-3-8 14:57:14 |只看该作者

游戏开发这两个基本都用不到。。。。。。
2D游戏我见过直接用DX甚至是GDI开发的,但3D游戏就真的很少很少了
用DX和OPENGL感觉就是用来学图形学的
如果以后想做游戏还不如多看看游戏人工智能和软件工程方面的书,做网游还要再加上一个TCP/IP

学习游戏开发,先学OpenGL再学Direct3D还是直接学习Direct3D?相关推荐

  1. 后端用java还是python_【后端开发】已学php再学java还是python?

    在考虑学java还是python之前先来说说二者的应用领域. Python的主要应用方向: 1.科学计算 随着NumPy,SciPy,Matplotlib,Enthoughtlibrarys等众多程序 ...

  2. 成为游戏开发程序员,要学些什么

    一.游戏程序开发的工作主要包括哪些方面 游戏开发中的程序开发主要由如下几个方面组成:  1.图形引擎  2.声音引擎  3.物理引擎  4.游戏引擎  5.人工智能或游戏逻辑  6.游戏GUI界面(菜 ...

  3. 《Android 3D游戏开发技术宝典——OpenGL ES 2.0》.(吴亚峰).[PDF]ckook

    图书作者: 吴亚峰 图书编号: 9787115277701 图书格式: PDF 出 版 社: 人民邮电出版社 出版年份: 2012 图书页数: 700-800 [内容简介] 随着智能手机移动嵌入式平台 ...

  4. 《Android 3D游戏开发技术宝典——OpenGL ES 2.0》——2.4节文件I/O

    本节书摘来自异步社区<Android 3D游戏开发技术宝典--OpenGL ES 2.0>一书中的第2章,第2.4节文件I/O,作者 吴亚峰,更多章节内容可以访问云栖社区"异步社 ...

  5. 学习游戏开发,有哪些常识需要了解

    https://baijiahao.baidu.com/s?id=1594194162947494181&wfr=spider&for=pc 玩游戏这么简单的事情,是个人都会.三岁孩童 ...

  6. Python基础学完了再学什么?

    Python基础学完了再学什么? 基础阶段学完Python 基础语法.python 容器.函数和文件操作.面向对象. python编程和web基础.Linux 操作系统多任务编程.Python 网络编 ...

  7. 《Android 3D游戏开发技术宝典——OpenGL ES 2.0》——2.1节游戏中的音效

    本节书摘来自异步社区<Android 3D游戏开发技术宝典--OpenGL ES 2.0>一书中的第2章,第2.1节游戏中的音效,作者 吴亚峰,更多章节内容可以访问云栖社区"异步 ...

  8. 《Android 3D游戏开发技术宝典——OpenGL ES 2.0》——2.3节手机自带数据库——SQLite...

    本节书摘来自异步社区<Android 3D游戏开发技术宝典--OpenGL ES 2.0>一书中的第2章,第2.3节手机自带数据库--SQLite,作者 吴亚峰,更多章节内容可以访问云栖社 ...

  9. 《Android 3D游戏开发技术宝典——OpenGL ES 2.0》——2.8节本章小结

    本节书摘来自异步社区<Android 3D游戏开发技术宝典--OpenGL ES 2.0>一书中的第2章,第2.8节本章小结,作者 吴亚峰,更多章节内容可以访问云栖社区"异步社区 ...

  10. 《Android 3D游戏开发技术宝典——OpenGL ES 2.0》——1.1节智能手机市场现状

    本节书摘来自异步社区<Android 3D游戏开发技术宝典--OpenGL ES 2.0>一书中的第1章,第1.1节智能手机市场现状,作者 吴亚峰,更多章节内容可以访问云栖社区" ...

最新文章

  1. mysql function加速_MySQL - 函数(FUNCTION)
  2. 杭电2855 Fibonacci Check-up
  3. leetcode 1038. 从二叉搜索树到更大和树
  4. 花鱼儿家的家常小菜~~~~~~丁香鱼炒花菜
  5. PHP精美列表商城发卡网站源码响应式
  6. 使用Python字符串的编码与解码方法实现信息加解密
  7. php高并发状态下文件的读写
  8. [!] No `Podfile' found in the project directory.
  9. string字符串比较
  10. 灭蚊灯UKCA FCC GB4706安全检测认证
  11. arcgis利用切片服务导出离线地图包(tpk文件)
  12. php 养宠物,养宠物必知的十个知识,关爱宠物注重细节
  13. character not supported here
  14. idea连接oracle可插拔数据库报ORA-12505
  15. CodeForces - 1244E
  16. “范跑跑”被取消从教资格 拟起诉发文单位[转]
  17. Linux命令模式下打开摄像头,Linux下利用Opencv打开笔记本摄像头问题
  18. bim土建免费插件:Revit中坡屋顶檐槽命令檐沟做法
  19. abas ERP中现金日记账模块的应用
  20. C++读写yaml配置文件

热门文章

  1. 机器学习实战(Machine Learning in Action)学习笔记————09.利用PCA简化数据
  2. 灵遁者第一部诗歌集《触摸世界》上集40首诗歌欣赏
  3. [iOS] 浅析排序规则描述类: NSSortDescriptor
  4. 异常:java.lang.IllegalArgumentException: Result Maps collection already contains
  5. linux ubuntu 22.04卸载firefox火狐浏览器正确方式
  6. java pdf 使用itextpdf插入页码
  7. html5 canvas画彩虹,HTML5/Canvas连接的彩虹点平滑动画
  8. 基于 Apache APISIX,爱奇艺 API 网关的更新与落地实践
  9. 成功的自动化测试:测试员的故事
  10. matlab开始如何设置,MATLAB 2018B: 如何创建快捷方式