• <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 - 1,  comments - 6,  trackbacks - 0
            白話說學計算機圖形學
            一個很好的學習途徑就是國外大學開的CG的課程,standford,unc,unm,waterloo等等,等等, 一堆大學,都可以下到課件,以及相關的論文,standford的“real time graphics architecture”可是kurt Akeley開的哦。
            另外就是source code,包括mesa,standford的glsim,還有人用c sharp做的csgl等,也不少。這些東西很值得細細研究,只是很花時間啊。
            我也是才學這方面的,不過我覺得方法上面還是top-down的方法好些,對一些東西,有感性認識了,再鉆下去會比較好。

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

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

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

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

            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大部分:建模和渲染
            (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) 渲染
            有了模型,怎么把這個幾何模型畫出來呢?這個步驟就是渲染。
            如 果你看了上面的OpenGL的書,那么你就知道一些渲染的知識了,但是別高興的太早,OpenGL使用的是局部光照模型(Local Illumination Model)。Local illumination Model指的是在做渲染的時候只考慮光源和物體之間的相互作用,不考慮物體和物體之間的影響,所以OpenGL不支持陰影,一個(半)透明物體的效果, 這些需要考慮物體之間的影響才可以實現。
            (*OpenGL本身不支持,但是通過一些方法可以實現的,用Google搜索一下
            Shadow Volume, 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變成實際可用。
            Francois X. Sillion的Radiosity and Global Illumination , Sillion是法國人,他的主要研究方向是Radiosity,這本書寫的很不錯的,非常清晰。

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

            Ian Ashdown的Radiosity: A Programmer's Perspective
            有源代碼的書啊!
            Photon mapping
            這個我也不知道怎么翻譯,呵呵。這個技術出現的比較晚,一本好書!
            Henrik Wann Jensen的Realistic Image Synthesis Using Photon Mapping
            Henrik Wann Jensen是Photon mapping技術的發明者
            【非真實性圖形學】(Non-Photorealistic Graphics)
            真實性不是計算機圖形學的唯一要求,比如:你給我畫一個卡通效果的圖出來,或者我要用計算機畫水彩畫怎么辦?或者:把圖象用文字拼出來怎么做?,解決這些問題要用到非真實性圖形學, 好書繼續推薦!
            Bruce Gooch, Amy Ashurst Gooch的 Non-Photorealistic Rendering

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

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

            【其他的書】
            還有一些好書啊,呵呵,好書看不完的,繼續放送:

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

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

            David Ebert等人的Texturing & Modeling: A Procedural Approach, Third Edition
            講述如何通過程序實現紋理、山、地形等圖形學要素。
            關于圖形學的特定對象,有特定的專題圖書,
            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的書,我不了解,以后會補上的:)

            4.   資源

             

            從哪里找到這些書啊?還有什么資源啊?


            我保證,上面的書在www.amazon.com 都可以買到:) 別打我

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

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

             


            posted on 2008-08-28 04:57 bneliao 閱讀(392) 評論(0)  編輯 收藏 引用 所屬分類: graph/game
            <2025年6月>
            25262728293031
            1234567
            891011121314
            15161718192021
            22232425262728
            293012345

            常用鏈接

            留言簿

            隨筆檔案

            文章分類

            文章檔案

            BLOG連接

            D3D

            GAME

            搜索

            •  

            積分與排名

            • 積分 - 11133
            • 排名 - 1121

            最新評論

            久久久久久国产精品免费免费| 精品久久久无码中文字幕天天| 久久久久av无码免费网| 亚洲国产欧美国产综合久久| 国产综合久久久久| 四虎国产永久免费久久| 欧美日韩精品久久久久| 久久ZYZ资源站无码中文动漫| 久久国产成人精品麻豆| 午夜福利91久久福利| 久久久亚洲欧洲日产国码二区 | 久久久精品久久久久影院| 精品国产乱码久久久久久1区2区| 久久精品视屏| 99国产精品久久| 欧美熟妇另类久久久久久不卡| 久久精品国产一区二区| 久久精品国产99国产精偷| 奇米影视7777久久精品| 亚洲欧美久久久久9999| 国内精品久久久久久久影视麻豆 | 欧美亚洲国产精品久久| 欧美精品一本久久男人的天堂| 亚洲精品乱码久久久久久 | www亚洲欲色成人久久精品| 亚洲综合伊人久久大杳蕉| 性做久久久久久久久老女人| 亚洲午夜精品久久久久久人妖| 亚洲精品乱码久久久久66| 国内精品人妻无码久久久影院导航| 久久激情五月丁香伊人| 国产综合精品久久亚洲| 久久最近最新中文字幕大全| 国内精品人妻无码久久久影院 | 久久久久波多野结衣高潮| 久久精品免费一区二区| 国产精品亚洲综合久久| 亚洲香蕉网久久综合影视| 无码国内精品久久人妻蜜桃| 久久精品人人做人人爽97| 国产精品久久久久久搜索|