電腦圖像

出自維基百科,自由嘅百科全書
Jump to navigation Jump to search
Blender 軟件整嘅一個 3D 模型;呢個模型係一隻黑猩猩塊面。
一幅用電腦畫嘅散佈圖;佢將一啲數據呈現咗出嚟,等研究者唔使齋靠睇啲數字。
猶他茶壺(Utah teapot);呢幅圖好出名,圖入面嗰個係用電腦整嘅一個茶壺嘅 3D 模型。

電腦圖像粵拼din6 nou5 tou4 zoeng6英文computer graphics / computer-generated imagery,簡稱「CG」或者「CGI」)係指用電腦整嘅圖像或者影片,好多時係透過專化嘅硬件同軟件造嘅[1][2]。呢啲圖像有好多各式各樣嘅用途,例如係用嚟整等嘅藝術同娛樂、用嚟處理由現實世界嗰度探測到嘅影像數據、又或者喺科研上用嚟將一啲理論所模擬嘅現象呈現出嚟。

電腦圖像呢家嘢係喺 1960 年嗰時由美國圖像設計師 William Fetter 同佢嘅同事搞起嘅[3]。電腦圖像大幅度噉改革咗好多行業,好似係電子遊戲產業呢個大行業就係因為有電腦圖像先至搞得成嘅。到咗廿一世紀,電腦圖像學經已係電腦科學上相當有影響力嘅一個子領域,大學嘅本科電腦科學系基本上實會教電腦圖像嘅相關知識[1]

概論[編輯]

最廣義嚟講,「電腦圖像」呢個詞可以包嗮所有「用電腦整出嚟但係又唔係字或者聲嘅嘢」[1],多數包括咗以下呢幾樣:

  • 用電腦呈現同埋操作嘅影像;
  • 用嚟整同操作影像嘅電腦技術;
  • 電腦圖像學,專門研究點樣用數碼方式合成同操控視像訊息嘅電腦科學子領域。

到咗廿一世紀,第一同第二意義上嘅電腦圖像周圍都係,喺電視報紙天氣報告、各種嘅大眾媒體、同埋醫療上嘅程序都會用到,而喺科研上一幅整得靚嘅電腦圖像可以用嚟清楚噉表達啲數據,令到啲數據更加容易明同詮釋,而且又可以用嚟將研究緊嘅現象以視覺型式呈現出嚟[4]。因為電腦圖像噉有經濟價值,社會對識得整電腦圖像嘅人才嘅需求開始提升,而電腦圖像學亦都變成咗電腦科學當中一個好緊要嘅子領域。喺廿一世紀頭,電腦圖像學仲開始有咗一啲子領域,好似係科學視覺化(scientific visualization)噉,就專門研究點樣有效同準確噉用電腦圖像模擬現實世界嘅現象,例如係建築物、天氣、同人體呢啲嘢嘅影像化[5]

電腦科學界整咗好多軟件嚟整電腦圖像,包括 2D 嘅圖像、3D 嘅圖像、同埋曉郁嘅動畫圖像,例如係 VRML(英文全名叫「Virtual Reality Modeling Language」)噉,就係 90 年代好盛行嘅一隻專門攞嚟整 3D 圖像嘅程式語言,俾好多科學家用嚟整虛擬實境

基本概念[編輯]

一幅電腦圖像近睇嘅話就會睇得出係由好多點點所組成嘅。
內文: 電腦圖像學

電腦圖像學(英文都係叫「computer graphics」)係電腦科學嘅一門子領域,專門研究點樣用數碼方法合成同操控啲視覺訊息。雖然啲人好多時一講電腦圖像就會諗起立體(3D)嘅圖像,但係呢門學問查實包括埋研究用數碼方法整同處理平面(2D)嘅圖像,包括咗地圖、同工程用嘅草圖呀噉[5]。佢係一門科學領域,所以電腦圖像學主要集中於研究圖像處理喺數學同電腦運算上嘅基礎-主修電腦圖像學嘅電腦科學家主要研究「啲畫圖軟件要點樣整先會出到好嘅圖」或者「某某圖像可以用啲乜嘢數學方程式嚟模擬」等嘅課題,而唔會太深入噉探討美學上嘅問題[6]

像素[編輯]

內文: 像素

像素(pixel)係指一幅點陣圖上面嘅一個點[7]。對於一部電腦嚟講,佢所顯示嘅圖像每一幅都係由一大柞像素所組成嘅,每一粒像素都淨係得一隻色水-而隻色水係由唔同濃度嘅紅、綠、藍結合形成,從而一齊組成一幅圖。舉個例說明,喺將一幅圖存入去佢嘅記憶體嗰陣,部電腦會記住「第一粒像素係幾多紅幾多綠幾多藍」、「第二粒像素係幾多紅幾多綠幾多藍」... 等等,令到佢可以記住幅圖嘅樣。廿一世紀嘅電腦經已先進到幅幅圖都閒閒地都有過 100,000 粒像素,用佢哋整嘅圖像就噉用肉眼睇好似冇點點噉,但係無論一幅電腦圖像幾精細都好,如果靠得夠近,係可以睇到佢由一點點組成嘅。

圖元[編輯]

一個環面模型;呢個模型變吓形就可以攞嚟做(例如)冬甩或者蘋果嘅模型。
內文: 圖元

圖元(primitive)係圖像系統嘅基本單位,可以用嚟砌埋一齊組成複雜啲嘅影像或者模型(無論立體定平面都係)。舉個例子說明,一個環面嘅立體模型可以變少少色水嚟做一個冬甩嘅立體模型,又或者撳扁佢再喺佢中間擺一個球體嘅模型,組合埋一齊做土星嘅立體模型。其他例子包括咗 2D 遊戲當中常用嘅精靈圖(sprite)或者 3D 影像處理當中嘅多邊形網格(polygon mesh)。用圖元嘅好處係,有咗佢哋,啲圖像設計者就有得喺整複雜啲嘅圖像嗰陣時指明「要用邊個邊個圖元同埋要點將個圖元變形」,唔使吓吓都由頭畫過。

三維模型[編輯]

內文: 三維模型

三維模型(3D model),或者叫「3D 模型」,係指一個(對於部電腦嚟講)用數字呈現嘅三維物體[8]。3D 模型可以用自動或者手動嘅方法整:有研究者會用一啲架生掃描一件真實嘅物件,再將啲數據傳去部電腦嗰度等佢計算出個 3D 模型嘅樣,例如感應器可以射啲波動出嚟,喺每一點嗰度量度吓啲波動射出去嘅時間同返到個感應器度嘅時間之間差幾遠,噉就可以知道喺每個點度件物件嘅表面離個感應器幾遠,跟手將呢個數據傳過去部電腦,就係有關件物件嘅形狀嘅數據;另一方面,研究者又有得手動噉整啲 3D 模型出嚟。舉個簡單嘅例子說明,以下呢段 VRML 源碼代表咗一個喺一條好幼嘅圓柱上面嘅球體(即係好似珍寶珠噉嘅形狀):

Shape {     // 整一件物體出嚟。
   geometry Cylinder {    // 設佢形狀係「圓柱體」。
      radius 0.1
      height 3.0}    // 碌圓柱嘅高度係 3.0 個單位,但係半徑得嗰 0.1 個單位-係一碌好幼嘅圓柱。
   appearance Appearance {
      material Material { diffuseColor 0.1 0.1 0.9 }     // 設佢色水係藍色。
   }
}

Transform {     // 整一件新物體
   translation 0 2.5 0     // 將佢移去第一件物體 2.5 單位噉高嘅高度。
   children [
      Shape {
         geometry Sphere { radius 1 }     // 設佢形狀係「球體」,半徑係 1 個單位。
         appearance Appearance {
            material Material { diffuseColor 1 0 0 }     // 設佢色水係紅色。
         }
      }
     ]
}
一個海豚噉形嘅多邊形網格

呢段碼係一個簡單嘅例子,一啲複雜啲嘅模型-好似係人形嘅模型-閒閒地可以有成幾千行呢啲噉嘅碼。多邊形網格係常用嘅 3D 模型,呢啲模型會用類似上面嗰段碼噉嘅程式語言話俾部電腦聽個模型有幾多個角、每個角同角之間有冇表面、同埋嗰啲表面係乜嘢色水呀噉,等部電腦能夠計出個模型由邊個邊個角度睇會係乜嘢樣嘅。

3D 電腦圖像可以話等如係 3D 模型嘅處理,3D 圖像基本上實要經過彩現再顯示喺電腦螢光幕上面俾個用家睇嘅,所以除非係做虛擬實境或者 3D 打印,3D 模型好大程度上衹係以數據嘅型式存在喺部電腦嘅記憶入面。

研究者能夠由 3D 模型嗰度整啲 2D 嘅圖像出嚟,呢個過程叫彩現。

彩現[編輯]

內文: 彩現

彩現(rendering)係指運用電腦程式由 3D 模型嗰度整一幅 2D 影像嘅過程[9][10]。整電腦圖像嘅人會首先整一個景檔案(scene file)出嚟,呢個檔案會包含咗多種訊息,包括係「個景入面用咗啲乜嘢 3D 模型」、「每個 3D 模型喺邊個位置」、「光源喺邊」、同埋「個鏡頭擺喺邊個位置」呀噉。部電腦跟手就會將呢啲訊息結合,用彩現程式處理吓-做一大柞人手做唔嚟嘅運算,計出個鏡頭會睇到嘅影像應該係點嘅樣嘅,並且將個鏡頭所睇到嘅影像俾出嚟做輸出。個彩現程式通常都係內置咗喺個電腦圖像軟件入面嘅,而且好多時會有啲特殊功能嚟做一啲特殊效果。彩現嘅過程涉及好多種演算法

掃描線彩現[編輯]

內文: 掃描線彩現

掃描線彩現(scanline rendering)係最常用嘅彩現演算法之一。是但揾一幅電腦圖像,佢都係由一大柞(好多時數以百萬粒)像素組成嘅。掃描線係指一行像素,掃描線演算法會每粒像素睇一次,並且按照個鏡頭嘅位置、啲 3D 模型嘅位置、以及光源嘅位置同角度等嘅訊息嚟計出嗰粒像素應該顯示啲乜嘢色水。如是者,經過幾百萬次計算,部電腦就可以計出幅圖應該係乜嘢樣嘅[11][12]。喺現代嘅電腦當中,呢啲運算快得好交關-唔使幾秒部電腦經已俾到幅圖出嚟。

主要類別[編輯]

2D 電腦圖像[編輯]

超級瑪利奧嘅遊戲截圖;喺純 2D 嘅電腦圖像當中,每幅圖由多幅細啲嘅 2D 圖像砌出嚟嘅。
內文: 二維電腦圖像

2D 電腦圖像係指用電腦整嘅一啲 2D 嘅圖同埋整佢哋嘅相關技巧。呢啲圖像可以由 3D 模型嘅彩現嗰度整出嚟嘅,又或者可以係用第啲 2D 嘅圖像砌出嚟嘅。呢啲圖像主要用嚟做傳統嘅打印或者畫。喺呢啲應用當中,嗰幅二維圖像唔淨衹係呈現緊一件物體,而係俾部電腦當做一件獨立嘅物體,有佢獨有嘅意涵。

像素畫[編輯]

內文: 像素畫

像素畫(pixel art)係一種數碼藝術,指用點陣圖軟件逐粒逐粒像素噉嚟畫嘅圖像[13]。畫畫嗰個人會逐粒逐粒像素話俾部電腦聽嗰粒像素係乜嘢色水,最後整出一幅圖像,例子有小畫家。呢種方法做得好慢,所以家吓好少人會用,得一啲舊嘅電腦同舊嘅電子遊戲會用呢種方法整 2D 圖像。

瑪利奧行緊嘅精靈圖

精靈圖[編輯]

內文: 精靈圖

精靈圖(sprite)係指一啲用嚟結合埋一齊並且產生一部大嘅景嘅 2D 圖像。例如係喺 2D 嘅超級瑪利奧(Super Mario)遊戲入面,個遊戲嘅程式會包括個主角嘅精靈圖同埋啲怪獸嘅精靈圖,而個主角瑪利奧嘅精靈圖又會包含咗(例如)佢企喺度嗰陣嘅樣、佢行路嗰陣嘅樣、同埋佢跳嗰陣嘅樣等等。喺每一個時間點,個程式都會按照「個主角同每隻怪獸喺邊個位置同埋喺度做緊乜」呢樣訊息揀應該用邊幾幅精靈圖,並且將呢啲精靈圖同個背景合拼埋一齊做一個畫面[14]

精靈圖喺廿世紀嘅電子遊戲嗰度極之常見,香港出嘅小朋友齊打交(Little Fighter)系列都係用精靈圖嚟代表佢啲人物嘅。但係喺廿一世紀,電子遊戲產業變成以 3D 模型做主導,會用精靈圖嘅遊戲已經買少見少,多數都係喺一啲運算能力冇噉勁嘅平台上面出嘅遊戲嗰度先會見到,好似係手機遊戲噉。

向量圖像[編輯]

分別用點陣圖同向量圖像代表同一幅圖像;喺呢個個案入面,用向量圖像整仲靚。
內文: 向量圖像

向量圖像(vector graphics)係相對於點陣圖嘅一種圖像。點陣圖會將一幅圖像以一大柞像素同埋「每粒像素係乜嘢色水」嘅方式嚟代表,多數會用嚟代表靜止嘅影像[15]。向量圖像都係用嚟代表靜止嘅影像嘅,但係佢唔係要部電腦死記「每粒像素係乜嘢色水」,而係要部電腦記住幅圖有啲乜嘢形狀同埋色水,再喺個用家要求睇幅圖嗰陣即場砌返幅圖出嚟。喺某啲情況下,用向量圖像好過用點陣圖。

3D 電腦圖像[編輯]

內文: 三維電腦圖像

3D 電腦圖像係指用電腦代表一啲三維嘅圖像。呢啲圖像會要部電腦記住三維嘅訊息,即係長度、闊度、同高度-相比之下,二維嘅圖像淨係會要部電腦記住長度同闊度嘅訊息。呢啲訊息可以攞嚟做彩現整二維嘅圖像,又可以攞去俾打印機做 3D 打印

雖然係噉,處理 3D 電腦圖像所用嘅演算法同處理 2D 圖像嘅好似,喺電腦圖像軟件入面,2D 圖像同 3D 圖像之間嘅界線有陣時幾含糊,2D 嘅應用可能會用 3D 嘅技巧嚟整某啲效果(例如係燈光),而 3D 嘅應用又會用 2D 嘅彩現技術。

電腦動畫[編輯]

內文: 電腦動畫

電腦動畫(computer animation)係一種用電腦整曉郁嘅圖像嘅藝術,係電腦圖像同動畫嘅一個子領域,多數係用 3D 模型嚟整嘅,但係有陣時啲人仲係會因為藝術風格或者低頻寬等嘅因素而用 2D 圖像整電腦動畫[16]。呢種技術廣泛噉俾人攞嚟整戲(好似係彼思動畫製作室就喺呢方面好出名)同埋電子遊戲,而當佢俾人用喺戲上面嗰陣,佢通常都會俾人稱之為「CGI」。

喺整電腦動畫嗰陣,部電腦會記住每個 3D 模型嘅各種屬性-包括佢嘅位置、方位、同埋縮放呀噉,並且將呢啲訊息儲喺件物件嘅變換矩陣裏面,而動畫就即係呢啲屬性隨住時間嘅改變[16]。要造出一幅曉郁嘅圖像有好多方法:最簡單嗰種係建基於關鍵格(keyframe)嘅逐一創造同編輯嘅-個設計者可以設一大柞關鍵格,再逐個逐個關鍵格噉編輯,要部電腦記實嗮喺每一個關鍵格當中每一個 3D 模型要喺邊個位置同埋以啲乜嘢方位擺,再做彩現,每個關鍵格整返一幅 2D 嘅圖,並且形成一串組成嗰段動畫嘅圖像;又有方法會將某啲特定嘅變化用某啲數學算式嚟模擬,例如用牛頓運動定律(Newton's laws of motion;由牛頓諗出嚟,可以用嚟模擬物體郁動嘅一啲方程式)話俾部電腦聽物件應該係點郁動嘅,等部電腦自動計出(例如)一舊物件喺受到某啲力之後會以點嘅速度飛走;跟住又有所謂嘅動作捕捉(motion capture)技術,喺呢種技術當中,啲程式員會俾個受過訓嘅人員戴住啲感應器喺身,再要佢哋做某啲動作,跟住啲感應器就會將嗰個動作嘅訊息傳返去部電腦入面,令到啲人物嘅 3D 模型跟住做同一樣嘅動作。

同傳統動畫一樣嘅係,電腦動畫都係建基於人眼嘅錯覺嘅:一段動畫由好多幅靜態嘅圖組成,而喺播段動畫俾人睇嗰陣,部電腦查實衹係將嗰啲圖逐幅逐幅按佢哋先後次序播出嚟,但係因為每幅圖像之間嘅時間間距極之短,用肉眼睇望落好似啲嘢識郁噉。

電腦動畫可以用動作捕捉嘅方法整。

電腦圖像軟件[編輯]

參考書[編輯]

  • L. Ammeraal and K. Zhang (2007). Computer Graphics for Java Programmers, Second Edition, John-Wiley & Sons, ISBN 978-0-470-03160-5.
  • David Rogers (1998). Procedural Elements for Computer Graphics. McGraw-Hill.
  • James D. Foley, Andries Van Dam, Steven K. Feiner and John F. Hughes (1995). Computer Graphics: Principles and Practice. Addison-Wesley.
  • Donald Hearn and M. Pauline Baker (1994). Computer Graphics. Prentice-Hall.
  • Francis S. Hill (2001). Computer Graphics. Prentice Hall.
  • Jeffrey J. McConnell (2006). Computer Graphics: Theory Into Practice. Jones & Bartlett Publishers.
  • R. D. Parslow, R. W. Prowse, Richard Elliot Green (1969). Computer Graphics: Techniques and Applications.
  • Peter Shirley and others. (2005). Fundamentals of computer graphics. A.K. Peters, Ltd.
  • M. Slater, A. Steed, Y. Chrysantho (2002). Computer graphics and virtual environments: from realism to real-time. Addison-Wesley.
  • Wolfgang Höhl (2008): Interactive environments with open-source software, Springer Wien New York, ISBN 3-211-79169-8

[編輯]

  1. 1.0 1.1 1.2 What is Computer Graphics?, Cornell University Program of Computer Graphics. Last updated 04/15/98.
  2. Computer graphics. Explainthatstuff!.
  3. Herbert W. Franke: Computergraphik Computerkunst. Bruckmann, München 1971, first published.
  4. University of Leeds ISS (2002). "What are computer graphics?". Last updated: 22 September 2008.
  5. 5.0 5.1 Friendly, M., & Denis, D. J. (2001). Milestones in the history of thematic cartography, statistical graphics, and data visualization. URL http://www. datavis. ca/milestones, 32, 13.
  6. Marschner, S., & Shirley, P. (2015). Fundamentals of computer graphics. CRC Press.
  7. Rudolf F. Graf (1999). Modern Dictionary of Electronics. Oxford: Newnes. p. 569.
  8. Sikos, L. F. (2016). Rich Semantics for Interactive 3D Models of Cultural Artifacts. Communications in Computer and Information Science. 672.
  9. Bouknight, W. J. (1970). "A procedure for generation of three-dimensional half-tone computer graphics presentations". Communications of the ACM. 13 (9): 527–536.
  10. Phong, B-T (1975). "Illumination for computer generated pictures" (PDF). Communications of the ACM. 18 (6): 311–316.
  11. Computer Graphics: Scan Line Polygon Fill Algorithm. Own shares in HackerNoon.
  12. Scanline Fill Algorithm.
  13. Goldberg, Adele and Robert Flegal. "ACM president's letter: Pixel Art". Communications of the ACM. Vol. 25. Issue 12. Dec. 1982.
  14. Hague, James. "Why Do Dedicated Game Consoles Exist?". dadgum.com.
  15. Greenberg, Ira (2007). Processing: Creative Coding and Computational Art. Apress.
  16. 16.0 16.1 Beane, Andy (2012). 3D Animation Essentials. Indianapolis, Indiana: John Wiley & Sons.

[編輯]