現在做遊戲學習opengl還有必要嗎?

本人是一名大二的軟體工程的學生,大一時因為對開發遊戲比較感興趣,所以學習了opengl並做了一個3D的射擊遊戲,後來我想繼續深入學習,又學了glsl,並且研究了一下基於四叉書的大規模地形渲染技術,室內BSP場景渲染,光照陰影,基於FFT的水面模擬等等,但是我發現這些技術在網上的資料特別少,而且就算用這些技術做出來的遊戲畫面也停留在05年之前。想請教大家,如果我以後想從事遊戲開發,我有必要學習opengl和那些圖形學的演算法嗎?還是直接使用遊戲引擎開發?


有時間,再加上喜歡,那就去學

越是難走的道路越值得你去走,會底層API的人少了,你的價值就突出了

底層知識+演算法都是多多益善的


我之前在寫flash3d引擎,然後突然想學習opengl,所以就在職業餘寫opengl es引擎,才開始接觸opengl,水平一般般。你說的畫面停留在05年之前,其實不是的,因為你沒有好的素材,所以即使你用了光照等等一些特效,效果也不是很明顯,給你的感覺就是效果很差。我用flash3d,flash3d還停留在openg 2.0dx9,並且裡面一些功能還沒有,我給公司做的demo,他們都認為已經達到了次時代的水平,其實呢,就是素材用得好了一點而已。當然,確實現在這些遊戲用到了一些很流弊技術,像hdr,bloom,ssao等等這些技術,網上確實資料很少,更高級的技術更沒有。但是這些都不是阻擾你學習理由,你現在才大二,我認為大學最重要的是搭好基礎,而不是學會用工具。像cocos2dx這些都是工具。工具是隨時可以變化的,但是基礎基本上是長久不會變的。

關於從事遊戲開發。

1、如果你是想做關於 GPU渲染的。例如任何3d遊戲,無論是手游,端游,頁游,使用的是什麼opengl,dx,unity3d等等,基礎都是相同的,而且幾乎是一樣的。那麼你就很有必要深入學習opengl,因為你已經在opengl上面摸索了。那麼你畢業之後,無論是去應聘unity3d,還是cocos2dx等等,你在應屆畢業生裡面的優勢是非常非常非常大的。

2、如果你不是從事關於GPU渲染的,例如傳統的2d,即cpu渲染的遊戲。那麼你可以無視任何圖形學以及圖形學的演算法。你要會的只是三角函數。。。

關於圖形學的演算法。一般和遊戲掛鉤的,其實也就是碰撞檢測,拾取演算法、 地形生成、尋路導航、光照、陰影、粒子等等。一些是需要cpu實現的,一些則是需要gpu實現的。你要是能在大四之前融匯貫通opengl。你去任何關於這方便的公司實習,上手類似cocos2d-x,Unity3d等等,你也就是分分鐘的事情了。

順便補一句,現在我們用到的大面積使用的圖形演算法幾乎都是在60年代-80年代產生的。


學慣用OGL畫個三角形,渲染個模型得了。主要還是用現成的引擎,沒必要自己寫,有空讀讀她們代碼,自己做點小實驗,也就行了。


沒有任何一個遊戲引擎能100%滿足你的開發需求

能用好輪子的前提是能改好輪子,能改好輪子的前提是能造(好?)輪子

:)


如果你的最終目的是開發遊戲,建議你學習Cocos2d,如果你是想開發一個遊戲引擎,那麼你就繼續這樣學下去。


無必要,但很有用,有用到1個人工作可以比10個人(其實我想說的是30個人)的價值還大,作為一個從C語言起家的碼農,現在的全端編程狗,在開始每接觸一種新技術時都有C/C++沒有的感覺,但隨著時間的發展,自己做的底程庫越來越多,這時就會發現,尼碼現在大家吹捧至極點的某框架無論是運行效率還是程序穩定性在我這個領域比自己的差太遠了,功能實現方面,因為是自己的工具,新來的同事如果不按照公司框架做事就完成不了,比很多語言或通用工具,項目管理手段有效很多,UI方面,用自己寫的工具開發效率完勝DW 3倍以上是沒有任何懸念的,一個不到10人的小組做的事很多幾百人的公司都做不到,團隊溝通也簡單。在客戶端上,我們用的也是OPENGL引擎,動畫效果秒殺市面流行模塊是非常容易的事,只可惜設計能力和審美不是我們的專長,商業上水平也不是第一梯隊,只能把自己小日子過好


移動平台的圖形渲染基本都是opengl實現,想做移動端遊戲的話會opengl還是很有用的


我一個外行先簡單回答一下吧。你說的是兩種做遊戲的人。如果設計引擎或者理論研究當然需要學習這些基本的東西,但那些直接用現成的框架寫遊戲的人,當然沒必要了解特別深的原理了。這看你想做那種程序員...


學呀,以後無論你寫上層遊戲邏輯,還是寫引擎的底層都是很有幫助的。你了解底層,懂得了原理,用什麼引擎你都能分辨其優缺點,瓶頸在什麼地方,碰到問題容易掐准來解決。

一個簡單的例子:

就比如2d遊戲

為什麼要拼圖(多個小圖拼成大圖)?

是不是大小隨意拼都可以?

那些小圖拼成一張大圖,而另一些小圖拼成另一張會更好呢?為什麼?

雖然有些工作引擎會幫你完成,但有些東西還是要靠自己,自己明白後對開發還是很有幫助的。


推薦閱讀:

軟體外包,需求分析由誰來做?
作為一名軟體工程的本科生,怎麼培養自己對本專業的興趣?自己對於編程的確興趣不大
大學四年考證順序應該怎樣規劃?(普通大學的軟體工程)?
設計模式是不是有點太玄了?
形式化方法(軟體可靠性方法)在實際工作中如何應用?

TAG:遊戲開發 | 計算機 | 軟體工程 | OpenGL | 計算機圖形學 |