學習遊戲開發,先學OpenGL再學Direct3D還是直接學習Direct3D?

查看: 11191|回覆: 30
打印 上一主題 下一主題

學習遊戲開發,先學OpenGL再學Direct3D還是直接學習Direct3D? [複製鏈接]

   

Rank: 5Rank: 5

註冊時間
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遊戲開發編程基礎》...
 
   

Rank: 16Rank: 16Rank: 16Rank: 16

註冊時間
2010-5-11
積分
2338
2#
 發表於 2012-10-22 22:50:56 |只看該作者
先讀好書,同學。。。
 
 
   

Rank: 12Rank: 12Rank: 12

註冊時間
2012-6-19
積分
747
3#
 發表於 2012-10-22 23:32:04 |只看該作者
opengl和Directx學一個就可以了,DX的資料還是很多的啊。但是現在在遊戲公司直接使用DX的機會很少,感覺CODING能力纔是關鍵。
 
 
   

Rank: 8Rank: 8

註冊時間
2012-7-5
積分
172
4#
 發表於 2012-10-24 15:22:37 |只看該作者
本帖最後由 goteet 於 2012-10-24 15:25 編輯

使用dx 寫起程序來,只要看完sdk的文檔,基本都能寫出來。
使用gl 你對着wiki一模一樣的代碼你都不一定能出效果。

包括一些比較基礎的變換,管線的內容,dx的文檔都有介紹,不用單獨去找,我覺得直接看dx會比較好。
如果使用網教程的話-  -我什麼建議也沒有,你當我“就看看,不說話。”。
我就看看,我不說話。
 
   

Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

註冊時間
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。
 
 
   

Rank: 12Rank: 12Rank: 12

註冊時間
2012-1-8
積分
994
6#
 發表於 2012-10-24 22:21:14 |只看該作者
堅持OpenGL!!
 
 
   

Rank: 9Rank: 9Rank: 9

註冊時間
2012-10-13
積分
207
7#
 發表於 2012-10-31 19:53:26 |只看該作者
個人感覺學一個就可以了,另外一個就很快通了,畢業原理差不多。就像語言一樣,你學會了C++,難道還要從頭學什delphi,JAVA嗎?不用了,一個星期搞定。
 
 
   

Rank: 5Rank: 5

註冊時間
2012-10-22
積分
60
8#
 發表於 2012-11-5 20:20:34 |只看該作者
cybercser 發表於 2012-10-24 21:46 
我現在在讀碩,研究方向是布料模擬,以後也準備投身遊戲行業。我首先學了opengl 紅寶書、藍寶書。現在在看 ...

感謝回覆~  如果學了opengl再學DX,opengl要學到什麼程度才行?
我現在龍書纔看了一半,主要是他的主要流程還是沒有搞明白。知識點很亂,不知道從何下手,離開書本就什麼也弄不出來0.0
 
 
   

Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

註冊時間
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任選一樣、或者釵黛雙收都行。
 
 
   

Rank: 5Rank: 5

註冊時間
2012-10-22
積分
60
10#
 發表於 2012-11-7 15:21:13 |只看該作者
cybercser 發表於 2012-11-6 21:19 
我也不是什麼大牛,說的不一定對。樓主擇其善者而從之。紅寶書藍寶書目前涵蓋了OpenGL2.1之前的內容,老 ...

3D圖形學?我沒看過哎0.0還要先看看圖形學的?悲劇,我本來打算看完龍書再看圖形學的...看來是我本末倒置了
 
 
   

Rank: 4

註冊時間
2013-1-4
積分
44
11#
 發表於 2013-1-4 16:40:16 |只看該作者
本人也是新手,就是不知道學opengl應該看什麼書
 
 
   

Rank: 28Rank: 28Rank: 28Rank: 28Rank: 28Rank: 28Rank: 28

註冊時間
2007-6-11
積分
25658
12#
 發表於 2013-1-4 21:29:16 |只看該作者
英語學好吧……
 
 
   

Rank: 13Rank: 13Rank: 13Rank: 13

註冊時間
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:同上面,大學生還是好好讀書吧,高數、線代英語別又掛科了
 
 
   

Rank: 16Rank: 16Rank: 16Rank: 16

註冊時間
2011-12-31
積分
2383
14#
 發表於 2013-1-6 23:50:52 |只看該作者
遊戲開發啊,opengl和D3D都可以不學,那是用來做遊戲引擎開發的。你還不如直接學習某些成熟的引擎呢。
 
 
   

版主

RenderGuy

Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

註冊時間
2010-11-4
積分
5570
15#
 發表於 2013-1-8 14:23:43 |只看該作者
國內目前學學unity和csharp應該好進圈
 
 
   

Rank: 16Rank: 16Rank: 16Rank: 16

註冊時間
2012-10-8
積分
2882
16#
 發表於 2013-1-8 17:28:45 |只看該作者
Baesky 發表於 2013-1-8 14:23 
國內目前學學unity和csharp應該好進圈

那玩意不是給美術用的麼...
要說新人我還是推薦DX學起..經典的龍書 + DXSDK安裝包裏面的例子..妥妥的
 
 
   

Rank: 9Rank: 9Rank: 9

註冊時間
2012-2-10
積分
310
17#
 發表於 2013-1-9 00:52:44 |只看該作者
新人很少有機會去編引擎,所以DX和OPENGL先任學一個。如果接觸不到項目的話,先不用很深入得學,學了也白學。跟着項目學是最快的。

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

Rank: 28Rank: 28Rank: 28Rank: 28Rank: 28Rank: 28Rank: 28

註冊時間
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個,基本上就可以了,學啥幹啥都一樣了,殊途同歸。
 
 
   

Rank: 12Rank: 12Rank: 12

註冊時間
2012-2-28
積分
772
19#
 發表於 2013-1-19 22:14:13 |只看該作者
Jedimaster 發表於 2013-1-9 14:02 
再來羅嗦幾句。

我也算從學GL和DX開始的過來人,真心覺得,學GL適合入門圖形學,爲什麼?簡單清晰明瞭,搞 ...

頂一下。
順便再加一條,抽象思維(高數,線代)能力。
 
 
   

Rank: 9Rank: 9Rank: 9

註冊時間
2012-2-28
積分
200
20#
 發表於 2013-1-21 12:49:41 |只看該作者
學遊戲不一定一上來就學DX和OPENGL,可以自己試着用GDI實現一套流水線。
 
 
   

Rank: 16Rank: 16Rank: 16Rank: 16

註冊時間
2011-12-31
積分
2383
21#
 發表於 2013-1-21 13:21:17 |只看該作者
waynewying 發表於 2013-1-21 12:49 
學遊戲不一定一上來就學DX和OPENGL,可以自己試着用GDI實現一套流水線。

你這哪是學“遊戲”,明明是學“圖形”的路子。。
 
 
   

Rank: 9Rank: 9Rank: 9

註冊時間
2012-2-28
積分
200
22#
 發表於 2013-1-21 15:39:39 |只看該作者
keyring 發表於 2013-1-21 13:21 
你這哪是學“遊戲”,明明是學“圖形”的路子。。

呵呵,是的,我的確有些偏圖形了。不
 
 
   

Rank: 13Rank: 13Rank: 13Rank: 13

註冊時間
2011-5-20
積分
1375
23#
 發表於 2013-1-21 23:05:31 |只看該作者
個人覺得就繪圖而言,OpenGL的API比DirectX要好用一些……
其實國內遊戲開發相關的話,DirectX的資料應該是比OpenGL多的。用OpenGL的大部分都是搞圖像處理之類的吧……
然後我想說其實這兩者都是同一個層面上的東西。舉個不恰當的例子,比如說你用windows sdk寫2D遊戲比較熟練,你改用SDL,甚至是跑到linux裏用SDL寫遊戲也能很快上手。邏輯基本就是一樣的,就是繪圖函數不同而已。
_(:3」∠)_其實我也是菜鳥
 
 
   

Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17

註冊時間
2010-3-27
積分
4200
24#
 發表於 2013-1-22 12:53:18 |只看該作者
個人覺得DX的書籍在國內太底端(一大堆)和太高端(GPU系列等),很難找到一本適應面廣的。
 
 
   

Rank: 8Rank: 8

註冊時間
2013-2-14
積分
122
25#
 發表於 2013-2-15 16:35:09 |只看該作者
keyring 發表於 2013-1-6 23:50 
遊戲開發啊,opengl和D3D都可以不學,那是用來做遊戲引擎開發的。你還不如直接學習某些成熟的引擎呢。 ...

有道理。我們的引擎不是商業的,不友好和完善,程序員們倒是比較多機會用到,對於那些商業的,可能就像同事說的只要會“調用”就可以了。
 
 
   

Rank: 9Rank: 9Rank: 9

註冊時間
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更容易。
 
 
   

Rank: 16Rank: 16Rank: 16Rank: 16

註冊時間
2013-3-6
積分
2412
27#
 發表於 2013-3-7 18:00:31 |只看該作者
我覺得opengl和diect都是相通的,學完一個,另一個也會了
 
 
   

Rank: 9Rank: 9Rank: 9

註冊時間
2012-12-7
積分
232
28#
 發表於 2013-3-8 14:20:26 |只看該作者
我認識的平朋友從這兩個方向入門的都有,只要堅持,應該都能成功的哈
 
 
   

Rank: 9Rank: 9Rank: 9

註冊時間
2012-12-7
積分
232
29#
 發表於 2013-3-8 14:21:54 |只看該作者
zhanxiaojian 發表於 2013-3-7 18:00 
我覺得opengl和diect都是相通的,學完一個,另一個也會了

有道理。請問您是學生呢?還是工作中哈
 
 
   

Rank: 12Rank: 12Rank: 12

註冊時間
2012-7-10
積分
885
30#
 發表於 2013-3-8 14:57:14 |只看該作者
遊戲開發這兩個基本都用不到。。。。。。
2D遊戲我見過直接用DX甚至是GDI開發的,但3D遊戲就真的很少很少了
用DX和OPENGL感覺就是用來學圖形學的
如果以後想做遊戲還不如多看看遊戲人工智能和軟件工程方面的書,做網遊還要再加上一個TCP/IP
發佈了53 篇原創文章 · 獲贊 13 · 訪問量 11萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章