自學計算機圖形學要哪些基礎?只用c語言可以嗎?
題主目前在國內某985高校讀研一,非計算機專業。想自學編程,對計算機圖形學比較有興趣,之前會一些c語言,最近看了數據結構與演算法分析那本書,數學功底不錯。想問一下老司機自學計算機圖形學需要補哪些知識。在網上看到做這方面的東西用的大多數是c++,題主目前只會c,是否需要轉c++呢?
可以但會非常痛苦,所花的時間遠超過你把C++學了再說的時間。圖形的東西,基本都需要搭大系統。而做大系統方面,C++所需的難度遠小於C。
跟編程語言關係不大。寫項目多了的話編程能力自然就有了。
要做圖形學哪個方向呢?要做到什麼程度呢?如果要是能做研究的程度,那麼因為演算法的核心還是數學,常、偏微分方程都得熟,線性代數、數值計算也得熟。所謂熟就是隨便提一個相關問題能對答如流。
然後就是看方向了。圖形學裡有十幾個方向。比如要做3D列印得懂機械學材料學,做實時渲染要懂GPU,做物理模擬要懂離散微分幾何、機械學、計算物理等等。
圖形學這個學科因為交叉太多,知識比較散所以也沒有什麼書。最好的教材就是各個PhD的博士畢業論文、會議的lecture notes和paper以及github上各種code。有了一定基礎可以去Kesen Huang的網站上找自己感興趣的方向看看paper了解一下前沿。
http://kesen.realtimerendering.com/
一上來肯定不太容易看懂,遇到不懂的概念、名詞就去查wikipedia或者看paper里相關的引用,順著引用樹一層一層刷文獻,直到所有概念全弄懂,所謂弄懂就是對著一個完全不懂的人可以講明白。
然後可以實現一篇或者幾篇paper、從小到大做一個系統之類。有去比較強的組學習交換的機會最好,比如浙大或者MSRA,或者北美的一些組。題主你好,我是自學的圖形學,先看的理論部分,如圖形學、線性代數等,吃透了之後開始實踐。圖形學基礎是理論基礎,那麼編程語言就是實踐基礎,我在此之前有了很好的實踐基礎所以寫起代碼來就非常快了。
如果只用c寫代碼的話,那我推薦題主用glut和opengl來入門吧,另外quake3(雷神之錘3)也是c語言寫的,題主可以在github上面下載到源代碼。
先說語言吧,用C++
可以先了解一下C++能提供哪些東西。
1.面向對象,封裝繼承多態;
2. STL;
3.Template;
這個三個都是能夠讓你快速開發的工具,同時在效率上有足夠的保證。
對於計算機圖形學的入門學習,如果沒有老司機帶你的話, 提供一個簡單入門的方法 - 基於OpenGL或者DX搭一個簡單的框架,從畫三角形開始(注意要用動態流水線),跟著網上的一些教程去寫一些例子,實現一些效果,可以怎麼炫酷怎麼來。接觸得多了,可以往一個方向深入了解下,比如實時渲染,物理模擬,離線渲染,程序生成等等。
謝邀。
感覺還是需要學習C++的,因為在學習的時候肯定要看別人的代碼,感覺很少有代碼是純c的了。
我也是一個小菜雞了LOL
還有,如果你想要以後從事這個領域的工作,還是好好考慮清楚...對C的大工程最大的感想就是一堆函數指針,看代碼的時候極其不便
真想自學去scratch pixel, 全是c語言寫的例子
你可以試試學學,快速瀏覽一下網上給的教程,如果感覺還行,那就繼續下去。感覺不懂,那就去補習知識。既然是自學嘛,不要有太多猶豫,想學就馬上開始。加油
前期寫圖形學demo可以,後期你需要設計框架的時候,還是建議用C++。你C都學會了,C++的語法花些時間很容易就掌握了,不用那麼糾結。還是直接開干來的實際。
可以是可以。 圖形學和線性代數之類的學過後, 當你能想明白你要做什麼,以及怎麼做的時候,編程語言本身也不是什麼問題。
數學基礎如線代,微積分等。英語基礎便於閱讀paper。實現的話你什麼語言不要緊,c也可以.
用Python的PyOpenGL庫,寫python腳本,很容易就看到效果,省卻了C/C++編譯這一環節。或者使用PyQt的的QtOpenGL模塊,
c++用起來沒那麼難吧,你都研一了,如果不學基礎只看怎麼用的話一星期足夠入門了
其實最快的是下個unity,去看它是怎麼做的。自己裝配一個mesh,提交,寫個shader把它畫出來。再對照流水線看看你做了哪幾步,了解一下他自動做的步驟,看看framedebugger的繪製順序就好了。推薦閱讀:
※long Rq = 1432567; int *x; x = (int *)Rq; printf("%d",*x); 錯誤在哪裡?
※為什麼說:不要使用 dynamic_cast, 需要運行時確定類型信息, 說明設計有缺陷?
※c++函數如何接受數量不定的函數參數?
※如何評價使用後綴樹以及CritBitTree壓縮數據的PiXiu方法?
※作為一名有女(男)朋友的程序員是一種什麼體驗?
TAG:編程 | CC | 計算機圖形學 | 自學編程 | 計算機圖形學和可視化 |