電腦圖形學學習方法和相關書籍,做遊戲,GIS,虛擬現實,三維引擎的都可以看看.

來源:互聯網
上載者:User

標籤:三維圖形   入門書籍   建模書籍   渲染書籍   圖形學理論書籍   

本書參照<<圖形學掃盲>> 整理的,原文內容引子: http://www.cppblog.com/lai3d/archive/2008/12/30/70796.html

前言:
  以我現在的水平觀之,3D圖形學分3大塊的學習內容:
  a.空間幾何數學:空間幾何變換,加速演算法,多邊形技術,曲線和曲面,相交測試,碰撞測試。
  b.光照著色系統:光照,紋理貼圖,進階象素著色光照,藝術性渲染.
  c.程式技術性應用:公告板,精靈,天空盒,體繪製,材質系統,情境圖,渲染隊列.
 
  在實際學習過程中,3個部分相互制約,故不能單方面突進,應保持一種平衡發展,使得相互促進,深化理解,達到比較流暢的學習曲線.相對重要性以a,b,c序減(時間將無情淘汰現有的程式技術性應用),深刻掌握圖形學基礎才是王道。三個部分都略有小成後,大量快速閱讀網上各方面的雜家資料,應用基礎知識去分析理解,在短時間內掌握各種程式性技巧。再次通觀全域基礎,遍覽所有細節,以圖有更深的理解.


第一部分: 如何學習API (OpenGL/Direct3D)     
   首先,我認為API是工具,不是本質,OpenGL/Direct3D的本質是圖形學,而不是OpenGL/Direct3D的本身,API的本身只是一些Interface而已.如果你明白圖形學的原理.那麼你很容易這些介面的作用,以及為什麼要有這些介面的存在.所以,我要說的第一點是:你要學習3D編程,不是學會了OpenGL/Direct3D就可以了。甚至會不會這些API都不是那麼的重要(雖然這麼說,或許很多人不太贊同).最重要的,最根本的是,你要明白這些API背後的圖形學的原理,因為那才是根本中的根本.
   
   下面我來介紹我對API學習的看法.我認為API的學習有兩種方法:一是正向學習.二是反向學習.
   一:正向學習,所謂的正向學習,就是學習API的本身.我覺得這種方法是一種Brute Force行為.不是很好.我們只要看看API的特性,有那些部分.就可以了。比如學習Direct3D的時候,我們要知道它如何初始化,以及它和作業系統的結合.它在Direct3D8裡引入了VS/PS.最後就是建立一個Direct3D應用的步驟和方法.這些就足夠了。要不然.Direct3D那麼多的函數,一個幾十個參數。每一個都會要了我的命.正向學習的第二個作用就是你在熟悉了圖形學和大概瞭解了API後,有空就來看看API的細節,然後思索一下API裡提供的一些特性對你的程式有什麼作用.比如Direct3D裡的Two Side Stencil.OpenGL裡的TextureCombine等。
   二:逆向學習.這是根本的方法,到了這一步,你就可以真正的算是圖形學入門了。這要求你要有一定的圖形學基礎.比如,你現在開始做一個demo.你預計你的demo裡有一堆眩眩的效果,當然你也要明白你的這些眩眩的效果要怎麼實現的.然後你去找API裡對應的功能,我想如果你的想法正常,一般的功能在Direct3D/OpenGL裡應該都會有的.當然你也會碰到你想要的功能在這些API裡沒有,但是這不重要,重要的是你又學到新東西了---這個特性在XX API裡不支援^_^.
   通常我是採用先正向,再逆向,同時再進行正向學習的方法.希望以上的建議,對各位初學者有一定的協助.


第二部分: 關於電腦圖形學的學習
    注意:本文盡量避免理論化的描述,試圖用最通俗的語言介紹一下電腦圖形學的學習,以及一些參考書目和網路資源;本文不涉及對概念的定義以免陷入學術討論之中本文是作者學習電腦圖形學的體會,如果有不同的意見,請不要攻擊和漫罵,本文合適的題目應當是:白話說學電腦圖形學?
    引言:什麼是電腦圖形學? 本文盡量避免給它做嚴格的定義,但是通常來說,電腦圖形學是數字圖象處理的逆過程,這隻是一個不確切的定義,後面我們會看到,實際上,電腦圖形學、數字圖象處理和電腦視覺在很多地方的區別不是非常清晰的,很多概念是相通的。電腦圖形學是用電腦來畫東西的學科,數字圖象處理是把外界獲得的圖象用電腦進行處理的學科。在法國,圖形圖象是一門課程。

    如何學習電腦圖形學呢?除了電腦圖形學的基礎知識以外,你還需要有以下的知識,你懂的越多,當然做的越好。 英語, 你一定要把英語學好,如果你想學習電腦圖形學的話,盡量看英文的書籍和資料; 數學, 電腦圖形學裡面的數學用的比較多,,我們可以列舉一些常用的:高等數學,數值分析,微分幾何,拓撲,機率, 插值理論,(偏)微分方程; 物理, 如果你要進行基於物理的建模,一些物理理論是要學習的:力學(運動學,動力學,流體力學…),光學,有限元; 程式設計語言: C或C++是電腦圖形學最通用的‘普通話’; 資料結構: 你需要資料結構來描述你的繪圖物件,除了通用的鏈表、樹等資料結構外,圖形學還有自己特殊的資料結構; 其他類別: 有的時候你需要其他學科的知識,根據你的需要去學習吧

    上面列舉的不是你必須學習的東西,而是電腦圖形學可能會用到的東西,一定要記住,不要指望通過一本教材就學會電腦圖形學,它比你想象的要複雜的多。


第三部分: 電腦圖形學書籍
    每個學科都有自己學科的特定問題,圖形學要解決的是如何畫出圖來,得到需要的效果,當然這是圖形學最大的一個問題。在開始學習電腦圖形學的時候,找一本簡單的書看,對電腦圖形學有個大概的認識,你就可以開始圖形學之旅了:

    推薦書目1: 電腦圖形學入門教材:
    1):OpenGL Programming Guide: The Official Guide to Learning OpenGL, Version 1.4, Fourth Edition
    2):OpenGL SuperBible (3rd Edition)
 
    推薦書目2: 電腦圖形學資料結構和演算法:
    1):Joseph O‘Rourke 的Computational Geometry in C

    推薦書目3: 電腦圖形學建模書籍:
    1):Gerald Farin 的Curves and Surfaces for CAGD: A Practical Guide(這本書算是CAGD (電腦輔助幾何設計)的經典圖書)
    2):Les A. Piegl, Wayne Tiller 的The Nurbs Book(書裡面有NURBS曲線、曲面的程式虛擬碼,很容易改成C的,書講的通俗)
    3):曲線與曲面的數學(Bezier曲面技術)
    4):Introduction to Implicit Surfaces(隱式曲面)
    5):Joe Warren的Subdivision Methods for Geometric Design: A Constructive Approach(細分曲面)
    6):David Luebke編著的 Level of Detail for 3D Graphics(層次細節)

    推薦書目4: 電腦圖形學渲染書籍:
    1):Andrew Glassner 的An Introduction to Ray tracing (光線追蹤)
    2):R. Keith Morley, Peter Shirley 的Realistic Ray Tracing, Second Edition
    3):Francois X. Sillion的Radiosity and Global Illumination(輻射度)
    4):Philip Dutre 的新書Advanced Global Illumination
    5):Ian Ashdown的Radiosity: A Programmer‘s Perspective        
    6):Henrik Wann Jensen的Realistic Image Synthesis Using Photon Mapping
    7):Bruce Gooch, Amy Ashurst Gooch的 Non-Photorealistic Rendering(非真實性圖形學)
    8):Min Chen 編著的Volume Graphics(體圖形學)
    9)David Ebert等人的Texturing & Modeling: A Procedural Approach, Third Edition
    10)F. Kenton Musgrave號稱分形狂(Fractal Mania)
    11)Evan Pipho Focus On 3D Models(對於圖形學的常用模型格式)
    12)Trent Polack的 Focus On 3D Terrain Programming (講地形)
    13)Donald H. House 的Cloth Modeling and Animation (講布料的)
    14)Nik Lever的Real-time 3D Character Animation with Visual C++ (講角色動畫的)
    15)Richard Parent的 Computer Animation: Algorithms and Techniques(當然是講動畫的啦)
    16)David H. Eberly的3D Game Engine Design : A Practical Approach to Real-Time Computer Graphics
    17)Alan H. Watt, 3D Computer Graphics (3rd Edition)
    18)James D. Foley等人的 Computer Graphics: Principles and Practice in C (2nd Edition) ,這本聖經沒事的時候再看吧,呵呵

第四部分:
    資料哪裡下載呢,我的csdn資源裡面就有,我會陸續上傳的,大家也可以在網上搜尋.

電腦圖形學學習方法和相關書籍,做遊戲,GIS,虛擬現實,三維引擎的都可以看看.

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.