【摘 要】在計算機圖形學的教學中,三維物體的創(chuàng)建、變換、繪制是學生理解的難點,本文通過采用三維圖像采集設備,對三維目標物進行了數(shù)字化與捕捉、多邊形網格建模、紋理映射、三維仿射變換、三維觀察等內容,使同學們能對三維圖形學的難點內容進行更為深入的理解,基于三維圖像采集設備對三維計算機圖形學內容進行了實例化教學探索。
【關鍵詞】實例化教學 計算機圖形學 三維建模
1 引言
目前《計算機圖形學》是許多高校開設的多媒體系列課程之一,許多的《計算機圖形學》課本都涉及了三維物體的數(shù)字化與捕捉、立體視圖的形成、多邊形網格建模、紋理映射、三維物體的仿射變換、三維場景的繪制、三維觀察等內容,但目前多數(shù)的教材主要是一些理論的講解,缺乏一些具體的實例,特別是缺少一些學生能看得見的、就在身邊的、實實在在的實物實例,因而,學生學起來,缺乏足夠力度的信服感,缺乏一些概念間聯(lián)系的理解,對一些方法與原理,特別是對一些變換公式,理解不夠深入,因此,我們覺得進行實例化教學很有必要的。
在計算機學科的教學實踐中,實例化教學方法在《操作系統(tǒng)》、《C++程序設計》、《Java程序設計》等課程中,已有一些相關的應用介紹[1][2][3]。在圖形學的教學方面,有些學者所研究考慮的是輔助軟件的選擇[4],有些學者考慮的是算法的演示[5],或者是對互聯(lián)網輔助作用的引入[6],但在圖形學方面的實例化教學方法,特別是對三維點云的采集與繪制方面,還有待進一步探索。
2 實例化教學
在我校本年度的教育教學改革與課程建設活動中,我們進行了“基于三維圖像采集設備的《圖形學》實例化教學探索”的課題研究,通過這一課題,豐富了我?!队嬎銠C圖形學》中關于點云與紋理的實例,讓學生能切實看到一個具體的三維點云與模型,及其紋理信息,以及他們間的映射。通過實例化教學,讓學生更為深刻的理解計算機圖形學的知識,使得理論更能被學生信服與接受,同時大大提高了同學們對圖形學的學習熱情與興趣。
在本節(jié)后面的幾個部分,我們將分為三維物體的數(shù)字化與捕捉、多邊形網格建模、紋理映射、三維仿射變換、三維觀察五個方面來分別介紹我們的實例化教學方法。
2.1 三維物體的數(shù)字化與捕捉
一般在《計算機圖形學》的第一章會介紹三維物體的數(shù)字化與捕捉的過程與大致的深度成像原理。例如,我們在講述基于結構光法獲取深度圖像的時候,會告訴同學們結構光法是一種借助三角原理,直接獲取深度信息,從而得到深度圖像的方法,是通過借助于照明中的幾何信息的幫助來提取對象的幾何信息的。更進一步說是攝像機、光源、與被觀察物排成一個三角形,光源產生的一系列光斑或激光線條投射到對象表面,通過攝像機對這些光斑或光線條的信息采集,來對光斑或光線條進行計算,從而獲取對象物體的三維模型。但同學們會不是很明白這樣的設備到底是如何工作的。所以我們使用了Kinect、EVA、Spider等三維掃描儀,如圖1所示,對三維物體進行數(shù)字化與捕捉,講解了Kinect與EVA、Spider成像原理的不同,使同學們看到了用于三維成像的光斑與激光網格,對三維物體的數(shù)字化與捕捉過程能有一個清晰的了解。
2.2 多邊形網格建模
多邊形網格就是一組“面”或“多邊形”的集合,這些多邊形共同構成了一個物體的表面。在計算機圖形學中,球面,圓柱,圓錐即是這樣的面的平滑逼近形狀。在網格建模時,可以采用三角形、四邊形、多邊形等。我們在講述這一部分內容時,給出了實際的三維掃描模型捕捉的點云圖像以及其對應的網格圖像,告訴同學們它們的對應關系,以及它們是如何共同組成了一個三維立體模型。圖2是以圖書為實例進行多邊形網格建模,圖2(a)給出了圖書一角的點云圖像,圖2(b)為它所對應的三角形網格模型。
2.3 紋理映射
為了使三維網格模型看起來更加真實,我們需要給三維網格模型添加紋理,例如磚塊紋理或木材紋理。紋理的通常做法是被印在或環(huán)繞在網格模型的表面。同學們對具體什么是紋理,它與數(shù)字圖像處理課程中所談的紋理有什么不同,紋理是從哪里來的,紋理是如何附著在三維網格模型上的等問題比較困惑,我們利用圖1中所示的三維掃描儀,對圖書實例進行掃描,并給同學們展示了掃描所得的紋理圖像,并利用計算機程序把紋理圖像的各像素附著在圖(2)b所示的三維網格模型上,得到了經過紋理映射后的三維圖書模型圖像,如圖3所示。使得同學對前面提出的問題有了較為明晰的理解。圖3(a)是以圖2中圖書模型實例的紋理圖像,圖3(b)為針對三角形網格模型映射紋理后的三維圖像。
2.4 三維仿射變換
對應于二維或三維模型,我們有時想對目標對象實現(xiàn)的尺寸、朝向和位置更加靈活的控制。包括對物體的縮放、平移、旋轉、錯切等,因此,我們會使用強有效的仿射變換。對于二維圖形的仿射變換,同學還好理解,但對于三維物體的仿射變換,OpenGL又是如何實現(xiàn)的呢?為了說清楚這一點,我們通過圖(1)所示三維掃描儀,掃描了一些三維模型的實例,編寫了仿射變換的相關程序,通過程序告訴同學們,許多圖像平臺(包括OpenGL )都提供一個圖形管道,我們可以把三維模型的各個點都發(fā)送給圖形管道,在圖形管道上進行一系列操作,通過處理每一個點,就可以產生一個新的仿射變換后的圖像。例如,圖4為對圖3進行紋理映射后的三維模型進行仿射變換的實例,其中,圖4(a) 為針對圖3(B)三維圖書模型的縮小實例,圖4(b)為針對圖3(B) 圖書三維模型縮小并平移的實例。
2.5 三維觀察
三維觀察是計算機圖形學教學中的一個重點,通常我們把攝像機放在空間里的某點,在這位置上觀察三維空間,這個三維空間稱為視景體( View Volume ),是金字塔形狀的一部分,那個觀察點我們稱為視點。視點不同,得到的三維觀察結果也不同。在進行教學過程中,我們需要向同學講清楚平行投影與透視投影的區(qū)別,以及如何進行視點位置的設定,如何進行透視變換等。通過一些實例,能夠更為直觀地顯示不同視點位置下,三維透視變換的不同結果。比如,圖5為對圖3進行紋理映射后的三維模型,在不同視點下的觀察結果。圖5(a) 為視點在下左邊情況下的三維觀察結果,圖5(b)為視點在中間下方位置時的三維觀察結果。
3 結語
本課題的研究內容是面對《計算機圖形學》課程,研究如何利用實驗室現(xiàn)有的三維掃描與采集設備,進行三維圖形圖像的采集,并對課程內容進行實例化教學,以期提高教學效果。本課題的研究目標是讓學生們能夠通過實際采集的三維圖形圖像,感覺《計算機圖形學》課程所教授的內容是實實在在的,所講述的三維圖形處理方法是十分具體的。通過采集實際物體的三維模型,展示了它的點云數(shù)據(jù)、多邊形網格建模方法、文件存儲格式、仿射變換方法、以及三維繪制、進行紋理映射等方法,對《計算機圖形學》課程所講述的內容進行了具體的映射與驗證,進行了其特色為以實例為先導、以實例為印證的實例化教學探索。
致謝
本課題為北方工業(yè)大學2015年度教育教學改革課題成果----“基于三維圖像采集設備的《圖形學》實例化教學探索”,受到北方工業(yè)大學2015年度教育教學改革和課程建設項目的資助,在此鳴謝。
參考文獻:
[1]馮麗萍,曹建芳.《操作系統(tǒng)》課程中抽象知識的實例化教學研究[J]. 當代教育實踐與教學研究,2015,(8):16.
[2]黃晶晶,段波.實例教學法在《C++程序設計》課堂教學中的應用初探[J].軟件工程師,2015,(1):25-27.
[3]高賢強,吳剛,陳立平.《Java程序設計》課程教學模式探索與研究[J].現(xiàn)代計算機,2013,(30):28-31.
[4]梁麗香,龍虎. MATLAB軟件在計算機圖形學教學中的應用[J].信息與電腦(理論版),2015,(10):113-114.
[5]張朝,許孟煒,郭秀娟,金川皓.計算機圖形學算法演示系統(tǒng)的設計與實現(xiàn)[J].計算機教育,2015(19):77-79.
[6]王穎,張曉蕾. GIS專業(yè)計算機圖形學教學中應用WebQuest方法研究[J]. 教育教學論壇,2015,(2):165-166.
基金項目:北方工業(yè)大學2015年度教育教學改革和課程建設基金項目
作者簡介:童立靖(1972—),男,學歷:博士,職稱:副教授,研究方向:計算機圖形學,數(shù)字圖像處理。