• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            posts - 51,  comments - 24,  trackbacks - 0

            關于計算機圖形學的學習 原創 FatGarfield

            注意:
            本文盡量避免理論化的描述,試圖用最通俗的語言介紹一下計算機圖形學的學習,以及一些參考書目和網絡資源;
            本文不涉及對概念的定義,以免陷入學術討論之中
            本文是作者學習計算機圖形學的體會,如果有不同的意見,請不要攻擊和漫罵

            本文合適的題目應當是:白話說學計算機圖形學?

            1. 引言
            什么是計算機圖形學? 本文盡量避免給它做嚴格的定義,但是通常來說,計算機圖形學是數字圖象處理的逆過程,這只是一個不確切的定義,后面我們會看到,實際上,計算機圖形學、數字圖象處理和計算機視覺在很多地方的區別不是非常清晰的,很多概念是相通的。
            計算機圖形學是用計算機來畫東西的學科,數字圖象處理是把外界獲得的圖象用計算機進行處理的學科。在法國,圖形圖象是一門課程。
            如何學習計算機圖形學呢?除了計算機圖形學的基礎知識以外,你還需要有以下的知識,你懂的越多,當然做的越好。
            * 英語, 你一定要把英語學好,如果你想學習計算機圖形學的話,盡量看英文的書籍和資料
            * 數學, 計算機圖形學里面的數學用的比較多,,我們可以列舉一些常用的:
            高等數學,數值分析,微分幾何,拓撲,概率, 插值理論,(偏)微分方程…
            * 物理, 如果你要進行基于物理的建模,一些物理理論是要學習的:
            力學(運動學,動力學,流體力學…),光學,有限元…
            * 編程語言: C或C++是計算機圖形學最通用的‘普通話’,
            * 數據結構: 你需要數據結構來描述你的圖形對象,除了通用的鏈表、樹等數據結構外,圖形學還有自己特殊的數據結構
            * 其他類別: 有的時候你需要其他學科的知識,根據你的需要去學習吧

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

            2. 圖形學的問題
            每個學科都有自己學科的特定問題,圖形學要解決的是如何畫出圖來,得到需要的效果,當然這是圖形學最大的一個問題。

            在開始學習計算機圖形學的時候,找一本簡單的書看,對計算機圖形學有個大概的認識,你就可以開始圖形學之旅了:

            OpenGL Programming Guide: The Official Guide to Learning OpenGL, Version 1.4, Fourth Edition
            OpenGL SuperBible (3rd Edition) 

            是比較好的學習計算機圖形學的入門教材,在練中去學,一開始就去啃

            Foley的
            Computer Graphics: Principles and Practice, Second Edition in C 
            不是好主意,會看的一頭霧水,一本什么都講的書的結果往往是什么都沒講清楚。
            當你把OpenGL的基本內容掌握之后,你對圖形學就有了大概的了解了

            那么下面你可以來學習一下計算機圖形學的數據結構和算法,下面的書比較適合
            Joseph O'Rourke 的Computational Geometry in C,書里面有C的源代碼,講述簡單,清晰,適合程序員學習

            總的來說,計算機圖形學涉及到2大部分:建模和渲染
            2.1建模

            你想畫一個東西,首先要有它的幾何模型,那么這個幾何模型從什么地方來呢?下面的書很不錯的:
            Gerald Farin 的Curves and Surfaces for CAGD: A Practical Guide
            這本書就有一點的難度了,呵呵,要努力看啊

            這本書算是CAGD (計算機輔助幾何設計)的經典圖書,CAGD方面的全貌,還有2本很好的講述曲面的書Bezier和Nurbs的書

            Les A. Piegl, Wayne Tiller 的The Nurbs Book 
            書里面有NURBS曲線、曲面的程序偽代碼,很容易改成C的,書講的通俗、易懂,但是你要有耐心看的:)

            曲線與曲面的數學
            這本書是法國人寫的中文翻譯版,里面還有Bezie本人寫的序J,翻譯的很不錯的,看了你就掌握Bezier曲面技術了


            //另外一些你想知道的事情:其他的造型方式-開始
            注意:在后面會有這樣的章節,標明
            //另外一些你想知道的事情:其他的造型方式-開始
            //另外一些你想知道的事情:其他的造型方式-結束
            里面是我認為的一些高級話題,跳過他們不影響你學習計算機圖形學,但是要學好就要注意了,呵呵
            還有其他的一些造型技術,比如:
            隱式曲面(Implicit Surface)的造型:
            就是用函數形式為F( x ,y ,z  = 0的曲面進行造型,這樣的造型技術適合描述動物器官一樣的肉乎乎的東西,有2本書推薦大家
            Jules Bloomenthal編輯的Introduction to Implicit Surfaces,是一本專著,講述了Implicit Surface建模型(Modeling),面片化(Polygonization),渲染(Rendering)的問題
            Luiz Velho 的 Implicit Objects Computer Graphics 也是一本專著,講述個更新的一些進展

            細分曲面(Subdivision Surface)造型
            當用NURBS做造型的時候,曲面拼接是復雜的問題,在動畫的時候,可能產生撕裂或者褶皺,Subdivision Surface用來解決這個問題
            Joe Warren的Subdivision Methods for Geometric Design: A Constructive Approach就是這方面的專著

            從實際物體中得到造型,現在的技術可以用三維掃描儀得到物體表面的點,然后根據這些點把物體的表面計算出來,稱為重建(Reconstruction),因為這些技術之在文章中論述,所以我們省略對它的描述

            //另外一些你想知道的事情:其他的造型方式-結束


            下面還是一個高級話題:)

            //另外一些你想知道的事情:光有造型是不夠的!-開始
            在你的幾何模型做好之后,有一些問題需要對這個模型進一步處理,得到適合的模型,當面片很多的時候,或者模型很復雜的時候,需要對幾何模型進行簡化,才可以滿足一些實時繪制的需要,這個技術叫做層次細節(LOD-Level of Detail)。下面的書就是講這個的:
            David Luebke編著的 Level of Detail for 3D Graphics
            //另外一些你想知道的事情:光有造型是不夠的!-結束

            2.2渲染
            有了模型,怎么把這個幾何模型畫出來呢?這個步驟就是渲染啦
            如果你看了上面的OpenGL的書,那么你就知道一些渲染的知識了,但是別高興的太早,OpenGL使用的是局部光照模型(Local Illumination Model),不要被這個詞嚇住了

            Local illumination Model指的是在做渲染的時候只考慮光源和物體之間的相互作用,不考慮物體和物體之間的影響,所以OpenGL不支持陰影,一個(半)透明物體的效果..,這些需要考慮物體之間的影響才可以實現。

            //另外一些你想知道的事情:OpenGL可以實現陰影-開始
            OpenGL本身不支持,但是通過一些方法可以實現的:),用Google搜索一下
            Shadow Volume, OpenGL就找到答案啦
            //另外一些你想知道的事情:OpenGL可以實現陰影-結束

            Global Illumination Model 這類模型考慮的就比較全啦。現在關于Global Illumination的技術有3大類,具體的技術就不在這里介紹了,如果想了解,可以聯系我,大家一起討論:

            光線追蹤(Ray Tracing)
            關于Ray Tracing的好書有2本:

            Andrew Glassner 的An Introduction to Ray tracing 
            Glasser是圖形界的名人,這本書也是Ray Tracing的經典

            R. Keith Morley, Peter Shirley 的Realistic Ray Tracing, Second Edition
            這本書第一版是偽代碼,第二版是C代碼。它的結構不是很清楚,虎頭蛇尾的感覺。

            輻射度(Radiosity)
            關于Radiosity的好書有4本:
            Michael Cohen 的Radiosity and Realistic Image Synthesis , Cohen獲得SIGGRAPH 1998計算機圖形學成就獎,他把Radiosity變成實際可用,現在Cohen在MSR圖形http://research.microsoft.com/~cohen/CohenSmallBW2.jpg

            Francois X. Sillion的Radiosity and Global Illumination , Sillion是法國人,他的主要研究方向是Radiosity,這本書寫的很不錯的,非常清晰

            Philip Dutre 的新書Advanced Global Illumination ,看起來還不錯,剛拿到手,還沒看,呵呵,所以不好評價

            Ian Ashdown的Radiosity: A Programmer's Perspective 
            有源代碼的書啊!! 就憑這個,得給5*****

            Photon mapping
            這個我也不知道怎么翻譯,呵呵。這個技術出現的比較晚,一本好書!
            Henrik Wann Jensen的Realistic Image Synthesis Using Photon Mapping
            Henrik Wann Jensen是Photon mapping技術的發明者

            3.3這些也是圖形學嗎? 圖形和圖象的區別模糊了:(
            除了上面講的‘經典’的計算機圖形學,還有下面的一些東西,它們也叫計算機圖形學嗎?是的!!!
            3.3.1非真實性圖形學(Non-Photorealistic Graphics)
            真實性不是計算機圖形學的唯一要求,比如:你給我畫一個卡通效果的圖出來,或者我要用計算機畫水彩畫怎么辦?或者:把圖象用文字拼出來怎么做?,解決這些問題要用到非真實性圖形學, 好書繼續推薦!!!
            Bruce Gooch, Amy Ashurst Gooch的 Non-Photorealistic Rendering 

            3.3.2體圖形學(Volume Graphics)
            用CT機做很多切片(比如頭骨),那么能通過這些切片得到3D的頭骨嗎?Volume Graphics就是解決這樣的問題的
            Min Chen 編著的Volume Graphics 

            上面的2個圖形學技術就和圖象的界限不明顯了,實際上他們是圖形圖象的綜合


            4 .還有其他的書嗎?
            還有一些好書啊,呵呵,好書看不完的:),繼續放送:

            Graphics Gems I ~ V,一大幫子人寫的書,包括研究人員,程序員…
            有計算機圖形學的各種數據結構,編程技巧

            Tomas Akenine-Moller 等人編著的Real-Time Rendering (2nd Edition) 
            許多最新的計算機圖形學進展

            David Ebert等人的Texturing & Modeling: A Procedural Approach, Third Edition 
            講述如何通過程序實現紋理、山、地形等圖形學要素
            F. Kenton Musgrave號稱分形狂(Fractal Mania)
            Ken Perlin就是Perlin噪聲的發明者,用過3d軟件的人對Perlin Noise不會陌生的

            關于圖形學的特定對象,有特定的專題圖書,
            Evan Pipho Focus On 3D Models,對于圖形學的常用模型格式,進行了講解
            Trent Polack的 Focus On 3D Terrain Programming ,講地形的
            Donald H. House 的Cloth Modeling and Animation ,講布料的
            Nik Lever的Real-time 3D Character Animation with Visual C++ ,講角色動畫的
            ……

            還有:)
            Richard Parent的 Computer Animation: Algorithms and Techniques,當然是講動畫的啦,呵呵。
            David H. Eberly的3D Game Engine Design : A Practical Approach to Real-Time Computer Graphics ,有代碼的啊!呵呵:)

            最后,沒事情的時候,看看下面的書吧
            Alan H. Watt, 3D Computer Graphics (3rd Edition) 

            James D. Foley等人的 Computer Graphics: Principles and Practice in C (2nd Edition) ,這本圣經沒事的時候再看吧,呵呵

            累了:( 不說了,上面的書差不多了,還有一些shader的書,我不了解,以后會補上的:)

            5.從哪里找到這些書啊?還有什么資源啊?
            我保證,上面的書在www.amazon.com 都可以買到:) 別打我

            那好,大部分的書在國家圖書館可以復印到,北京的兄弟有福啦,3年前的書借出來復印,1角/頁,但是新書要早圖書館里復印,5~6角/頁,還是比Amazon便宜啊,呵呵。

            不行大家就到國外買,合買吧,還負擔的起。
            我對DirectX不了解,所以沒有涉及關于DirectX的內容:)

             

            posted on 2009-08-10 18:58 劉之遠 閱讀(263) 評論(0)  編輯 收藏 引用
            <2009年8月>
            2627282930311
            2345678
            9101112131415
            16171819202122
            23242526272829
            303112345

            常用鏈接

            留言簿(1)

            隨筆分類(21)

            隨筆檔案(51)

            c語言學習筆記

            搜索

            •  

            積分與排名

            • 積分 - 22961
            • 排名 - 753

            最新隨筆

            最新評論

            閱讀排行榜

            評論排行榜

            久久久久久久尹人综合网亚洲| 亚洲中文字幕久久精品无码APP| 成人a毛片久久免费播放| 久久久WWW免费人成精品| 亚洲精品无码专区久久同性男| 无码人妻久久一区二区三区| 久久免费精品视频| 亚洲午夜无码久久久久小说 | 亚洲乱码中文字幕久久孕妇黑人| 亚洲精品无码专区久久久| 99久久精品国内| 久久久无码精品亚洲日韩京东传媒| 人妻精品久久无码区| 欧美性大战久久久久久| AV狠狠色丁香婷婷综合久久| 久久99国产精品成人欧美| 久久99热只有频精品8| 一本色道久久88综合日韩精品| 精品熟女少妇a∨免费久久| 美女久久久久久| 精品久久久久久无码中文野结衣| 97精品国产97久久久久久免费| 久久一区二区三区99| 精品国产综合区久久久久久 | 国产色综合久久无码有码| 国产精品青草久久久久福利99 | 久久精品国产国产精品四凭| 久久丫精品国产亚洲av| 狠狠精品久久久无码中文字幕| 热久久国产精品| 91精品国产色综久久| 2022年国产精品久久久久| 久久精品无码专区免费青青| 99久久99久久精品国产片果冻 | 97超级碰碰碰久久久久| 久久亚洲中文字幕精品一区| 亚洲精品成人网久久久久久| 伊人色综合久久天天网| 偷窥少妇久久久久久久久| 久久99精品久久久大学生| 日本人妻丰满熟妇久久久久久|