對計算機專業而言,計算機圖形學是否重要?
首先聲明,本人不是計算機專業,也沒讀過計算機圖形學的課程。但我是在高中開始自習計算機圖形學,比較熟悉實時渲染在遊戲中的應用。
計算機科學可以分開理論計算機科學及應用計算機科學。應用計算機科學以開理論計算機科學為基礎,發展出可以在實際需求中使用的專門技術,在維基百科(Computer science)中列出一些應用計算機科學的分支:- Artificial intelligence
- Computer architecture and engineering
- Computer graphics and visualization
- Computer security and cryptography
- Computational science
- Computer Networks
- Concurrent, parallel and distributed systems
- Databases
- Health Informatics
- Information science
- Software engineering
可見計算機圖形學(computer graphics)是應用計算機科學的一門分支。
計算機圖形學較多應用於娛樂方面,包括遊戲、動畫、電影特技產業,而相關的可視化(visualization)則主要應用在其他科學上。但圖形學的應用其實是更廣泛的,例如平面設計、建築設計、產品設計等也涉及計算機圖形學。
對於應用性的分支來說,其重要性可與相關工業的發展拉上關係。以計算機圖形學而言,它的需求來自娛樂,而娛樂對人類的重要性在不斷提升,單看遊戲市場可看到這個趨勢:
來源:Outline of Tokyo Game Show 2011 Keynote Speech held on September 15, 2011這裡欠缺其他應用計算機科學的橫向對比,只能說明與計算機圖形學相關的產品市場規模在不斷上升。
對於學習計算機科學的同學而言,除了要學習基礎的理論計算機科學,應該選擇一些應用計算機科學,以備未來的工作所需。
相關問題:- 哪些工作與圖形學相關?
純粹因為好玩和有成就感才搞的, 其實圖形學對於整個計算機科學一點兒都不重要, 還不如學量子物理生物啥的想想怎麼造下一代的計算機呢, 不覺得那才是計算機"科學" 嗎?
不過搞圖形學, 特別是搞物理這一塊(光照, 流體, 材料力學計算), 對你認識自然理解自然都很有好處, 又可以直接接觸底層的數學和自己編寫求解器, 對知識(特別是應用數學方面的)廣度和深度塑造都大有好處, 如果你也愛數學, 如果你也愛藝術. 來吧.
個人認為,圖形學應該算不上計算機科學的必修課。不懂圖形學也完全可以成為一名優秀的程序員;如果以後不搞相關領域(遊戲、圖形學、計算機視覺)的話,或許圖形學真的不算重要。
但是。。。圖形學真的很好玩啊!!!
難道你每次打極品飛車、使命召喚的時候,真的不想了解下那些畫面效果是計算機是怎麼神奇的計算出來的嗎?看《冰雪奇緣》的時候,不好奇計算機在背後發揮怎樣的作用嗎?(當然,動畫師功不可沒)。而且,學計算機其他課程(比如數據結構啥的)時候,做大作業時可能面對的都是黑乎乎的控制台。但學完了圖形學,你的代碼就可以變成各種炫到爆的畫面。另外,學習有時候不需要太功利的。重要不重要?有時候一點都不重要。Just Relax and follow your curiosity.不重要。
程序員的三大浪漫:操作系統、圖形學、編譯原理,學了都是用來給你開眼界的。這些都不是什麼你不學就怎麼樣的課程,而是你想成為大牛,不學不行=_,=
既然題主問的是「對計算機專業而言」,那麼如果你是一名計算機專業的學生,圖形學對你的重要性在於,就算你對圖形學不感興趣,你大概也可以找到很不錯的工作,一類是自己做GPU做高性能計算的公司,比如NVIDIA、Apple,一類是影視特效公司,比如Disney,ILM,還有一類是做引擎的遊戲公司,比如Epic,Crytek。圖形學需要的龐大計算量促進了計算機專業的發展,促進了高性能計算的發展,TOP50的超級計算機有一大批是使用了GPU的,而GPU的發展主要被圖形學的需求驅動。
如果是說,從現在圖形學的前沿都在做什麼來評估對計算機專業的重要性,那麼還真不太好說。參考圖形學頂級會議SIGGRAPH的方向分類(SIGGRAPH 2015 Papers):
Computational Illumination: 計算照明,深度相機Geometry Field Trip:曲線曲面、測度論Modeling, Controlling, Suturing Humans: 人體仿生模擬、建模Face Reality: 面部動畫捕捉與重建Rendering Complex Appearance:光的分布模型、渲染Wave Particle Fluidity: 計算流體動力學VR Display Interaction:虛擬現實、光場顯示Simsquishal Geometry: 拓撲與幾何學Meshing Around:網格,離散幾何
Lets do the time warp:延時攝像Parameterization Mapping: 表面參數化Video Processing:視頻、音頻處理與編輯Deform Me a Solid:材料優化與設計、有限元分析Taking Control:計算機動畫控制與機器學習Image Processing: 圖像處理(去霧、平滑、邊界檢測、陰影移除)Shape Analysis:形狀分析Fabricating Fabulous Forms:計算建築學、家居設計Transfer Capture:視頻分析與動態捕捉Geometry Zoo:網格、幾何學、形狀插值
Image Similarity Search:圖像檢索、圖像合成Reconstruction Analysis:城市、建築的三維重建Fabrication Function:計算設計、3D列印Fluids from Air to Goo:計算流體動力學Procedural Modeling:批量3D模型設計製作Apperance Capture:材料視覺特性的捕捉與分析Character Fashion Style:衣物模擬,人體動畫Sampling:採樣、信號處理、統計學Sketching Surfacing:繪製、建模Computational Printing:3D列印、機械製造
Constraints,Collisions:摩擦計算、碰撞檢測、受限優化Meshful Thinking:網格編輯、網格細分、網格參數化Perception Color:顏色與人類視覺Printing Elastics:彈性材料的設計與3D列印Scalable Graphics:矢量圖形Simulating With Surfaces:表面追蹤與重建(泡泡、物體破碎的模擬)Light Fields:光場相機、光場重建所以你看,圖形學如果要劃分方向,有很大一部分其實屬於物理學、數學、機械學、建築學和美術,而計算機只是恰好被用到而已。如果你以後想從事的工作更偏向這些方向的話,那麼圖形學也確實很重要。不贊成陳然 同意陳微風
人生有限 而知識無限
什麼知識都有用 但是不能什麼知識都學相比而言 低層的更通用 更持久 更能培養計算機思維所以 在這個層面上 不能把計算機圖形學和彙編等相提並論不重要。圖形學偏工程應用,非必須的基礎知識,不過很有趣。所謂程序員三大浪漫,個人重要性排序:操作系統&>編譯原理&>圖形學
本人北航計算機博士生(本科06級北航,10年開始碩博),在虛擬現實技術與系統國家重點實驗室,圖形學就是在這個實驗室研究的內容,浙大那邊叫CADCG實驗室。
在當時北航本科計算機裡面分為軟體,應用,硬體。但是圖形學莫名其妙的歸為了軟體,而圖像處理歸為應用。但是圖形學正確的情況下應該歸為計算機應用技術。
從我的觀察結果來看:
1.和網路是幾乎沒有交集的,除非做項目偶爾會用到一些基本的網路通訊知識。
2.和操作系統關係不是很大,除非你的代碼需要一些多線程的加速。3.和編譯技術關係不大,除非你的代碼在和別人競速,到了句句都需要斟酌的地步。4.和體系結構關係密切,圖形學會用到大量的GPU並行加速,至少利用CUDA做多GPU的並行體系結構那邊也有教授在研究。5.和計算機安全貌似關係不大。密碼學什麼的我覺得和圖形學就不是一個分類標準。6.和圖像處理的關係。圖形圖像經常一起說,但是不能混為一談。圖像處理的內容,模式識別方面和機器學習比較近(最近幾年比較火的就是數據挖掘,做廣告推薦的那些技術),還有Photoshop裡面用的那些技術,還有計算機視覺(Computer Vision)。計算機視覺有點類似圖形學的渲染的逆過程,渲染是三維圖形投影成二維圖像,計算機視覺(有很大一部分工作)是根據二維圖像恢復三維模型,比如拍幾張照片生成三維的建築。7.需要廣泛應用的數學方面的知識:信號處理(頻譜分析),最優化,線性代數等等。概率貌似用的不多(至少我所接觸的領域是這樣的)。8.圖形學是計算機應用,所謂應用就是應用計算機解決其他學科的問題。現在還比較火的是流體力學(氣體,液體的模擬),軟體變形(衣服,頭髮)等,渲染技術也有,但是渲染技術一直都存在,並不是最近這些年火的。其他各方面的門類多的很,反正是應用,啥都有。其他的等以後想到了再說。本人才疏學淺,水平一般。這行當就業面挺窄,雖然高大上的電影很高大上,高大上的遊戲也挺高大上,但是不是那麼好進的,一般的小公司又玩不起這麼高大上的技術。如果你以後不做這個方向的話,似乎學這門課一點用處都沒有但是這樣的思路其實也不對彙編似乎也用不到,電路原理似乎也用不到,很多課程似乎都用不到課程的用處很難用形式化的東西來衡量吧新東西,總是會打開一個新的思路總是沒有錯的如果學了,就好好學吧
不太同意排名第一的答案。操作系統和編譯原理是非學不可的東西,可以說這兩樣不掌握,你就不好意思跟人說我是搞計算機的。操作系統會順帶解決掉體系結構,編譯原理會順帶解決掉數據結構和演算法。對一個想一輩子靠計算機吃飯的人來說,有這四樣,我覺得足夠了。如果非要加上一樣,我覺得網路原理都要比圖形學重要。圖形學的應用範圍,公平的說,是不算太大的。當然如果把所有視覺多媒體都算進來,圖像處理、增強現實、視頻編解碼??我覺得應用範圍還是不能跟網路相比。圖形學的特點是:這玩意兒有點門檻,又需要數學,入門的learning curve比較陡,但是一旦學會了可以直接作出肉眼可見的成果來,成就感很直接。所以這東西,像鴉片一樣,剛開始痛苦夾雜著興奮,興奮完了又有點上癮,染上就戒不掉了。我已然不抽大煙了,我改抽白面了。
答題的時候大三吧,上計算機圖形學課程,寫答案更多的是在傳達的圖形學老師的理念,夾帶了自己淺薄的認識。
現在看來,大學時每門課都要認真對待,好好學習,並保持良好作息,鍛煉身體,這樣才不會後悔吧。認真的意義並非是為了以後有用,當下的專註本身就是磨礪。
---------------------------------------------------------------------------------------------------------------
答:是的。
正好剛剛在寫圖形學程序,最近又想著來回報知乎,所以來認真地從普通cs學生[該生渣屬性]角度編輯一下這個回答。看到說程序員的三大浪漫:操作系統、編譯原理和圖形學的。分別來寫寫我自己的感受。上學期學操作系統,聽老師講課時感覺能聽得懂,然後私下感嘆操作系統里的一些機制真是太機智了,多線程、信號量!、存儲管理、資源抽象等等,一邊學一邊感嘆果然計算機是一門機智炫酷的學科啊!不過理論雖好,動手寫操作系統是很難的。學編譯原理,同樣,老師講一些原理性概念性的東西和一些演算法原理,聽得懂。不過自己從頭寫編譯器還是很困難的。
最後 CG,也是這學期在學。這門課的老師是個熱愛編程的60後,開始幾節課就在講台上編給我們看,書上所有的演算法他都自己實現過才和我們講.他還會和我們扯一扯其他的,比如100個海盜分200塊金幣之類,聽他扯的多了,就會在某一天覺發現,世界就是這樣,每個人都是希尋求自己利益最大化海盜,不過有些海盜還有些感性。
好吧,上重點:學習圖形學的目的是建立一個看得見的理性的世界。就是說它不同於自己不可能寫出來的OS和非常難寫的Compiler,它完全可以自己寫出來,將理論付諸實踐,將現實世界通過這種方式理性的表達出來至少給自己看。完全可以寫一個圖形軟體,簡單的CAD啥的。另外,CG這門課還會接觸一些OpenGL或者類似的東西。這東西可以方便的寫遊戲啊!俄羅斯方塊,2048寫一寫挺有意思,也會有熱情想去寫。 對了,這門課開始時就是一些線圓類,基類,可以複習更深入理解c++,並熟悉mfc編程,後來又有圖形變換,複習線性代數,並且知道以前學的那種矩陣轉換是幹啥用的。綜上所述廢話,CG這門課作為計算機專業軟體系本科課程很有必要,也應該好好學。
如果是學生,建議多學點知識,哪怕短期內看不到什麼用途。如果已經工作了,建議集中精力投資在有可以展望到的回報的知識上(當然作為愛好就不用考慮太多了)
沒學過,不認為對於計算機專業是很重要的課。對於計算機專業來說,核心的課程是有數的幾門而已,理論方向有離散數學、數據結構、演算法,系統方向有操作系統、體系結構、編譯原理。其它的課程基本都是在細分方向之後才需要掌握的知識,並不是人人都需要學會的。
計算機圖形學對計算機科學這個學科而言,十分重要。很多演算法都源於計算機圖形學,很多問題的根源也來自圖形學研究。
對計算機相關產業,也十分重要。例如現在工業設計中應用廣泛的3D建模,沒有計算機圖形學還得繼續捏粘土。還有部分醫學儀器的成像技術里也應用計算機圖形學。普通人接觸最多的應該就是遊戲以及CG電影了,比如最近上映的馴龍高手2,雖然劇情略扯淡,不過無牙還是很萌噠。
最後對從業人員嘛……怎麼說呢,在這個互聯網的浪潮里,貌似不會圖形學也沒什麼。寫後台寫前端寫App除非業務特別,基本用不到。我本科沒學圖形學,主要是因為不喜歡教圖形學的那個老師……作為計算機學士和碩士,圖形學我知道個0,後來幹得是運行維護,同學們普遍干資料庫和網路,還有搞金融,賣設備的。 我們都過得不錯,所以說,從就業來說,不重要。
Enjoy Math.
專業性比較強,對數學能力要求很強,一般程序猿用不上。
對於計算機專業來說,計算機圖形學只是其中一個應用方向,既圖形渲染,加速。與圖形學同一個方向的是圖像處理,既圖像壓縮,圖像增強個圖像還原。
圖形學主要用於電影3D特效渲染,遊戲開發,未來可能用於實時地形重建。
圖像處理應用更多,最常見的就是攝像頭效果處理,如白平衡,飽和度計算,HDR等。
圖形學是一門真正用數學來應用的學問,很多有趣的特效和渲染場景非常吸引人!那些說不重要的人,還是不要使用GUI來玩電腦和手機了吧。
推薦閱讀:
※怎麼才能看懂計算機論文中的數學公式?
※得到去msra實習的機會,該怎麼徵求導師同意?
※易語言那麼不入流嗎?
※假如重學計算機,你會怎樣做?
※linux和機械錶哪個系統的複雜度高?