版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
使用Three.js的計(jì)算機(jī)圖形技術(shù)課程教學(xué)反思
余莉摘
要《普通高等學(xué)校本科專業(yè)類教學(xué)質(zhì)量國家標(biāo)準(zhǔn)(2018版)》規(guī)定,計(jì)算機(jī)圖形學(xué)與數(shù)字圖像處理是數(shù)字媒體技術(shù)專業(yè)的專業(yè)主干課程。經(jīng)過分析上海建橋?qū)W院數(shù)字媒體技術(shù)專業(yè)培養(yǎng)方案,把計(jì)算機(jī)圖形技術(shù)課程定位為培養(yǎng)數(shù)字內(nèi)容制作及相關(guān)技術(shù)工具開發(fā)能力,以制作型人才為主,并選擇Three.js庫作為開發(fā)工具,課程既包含圖形學(xué)的主要內(nèi)容,又介紹圖形學(xué)最新技術(shù)。經(jīng)過一輪教學(xué),對(duì)學(xué)生在三維空間的建立、數(shù)字內(nèi)容的制作和技術(shù)工具的使用這三個(gè)方面暴露的問題進(jìn)行反思,對(duì)下一步的工作進(jìn)行展望。KeyThree.js;數(shù)字媒體技術(shù)專業(yè);計(jì)算機(jī)圖形技術(shù);課程定位;數(shù)字媒體技術(shù):G642.3
:B:1671-489X(2020)10-0028-031引言在《普通高等學(xué)校本科專業(yè)類教學(xué)質(zhì)量國家標(biāo)準(zhǔn)(2018版)》的“動(dòng)畫、數(shù)字媒體藝術(shù)、數(shù)字媒體技術(shù)專業(yè)教學(xué)質(zhì)量國家標(biāo)準(zhǔn)”中規(guī)定,計(jì)算機(jī)圖形學(xué)與數(shù)字圖像處理是數(shù)字媒體技術(shù)專業(yè)的專業(yè)主干課程。計(jì)算機(jī)圖形學(xué)的主要內(nèi)容是研究如何在計(jì)算機(jī)中表示圖形,以及利用計(jì)算機(jī)進(jìn)行圖形的計(jì)算、處理和顯示的相關(guān)原理與算法[1],理論性強(qiáng),比較抽象。課程的難點(diǎn)在于計(jì)算機(jī)圖形學(xué)研究范圍廣,與其他學(xué)科交叉性強(qiáng),且知識(shí)不斷更新變化[2]。近年來,隨著應(yīng)用型本科的發(fā)展,學(xué)生的數(shù)學(xué)基礎(chǔ)、程序設(shè)計(jì)等能力又相對(duì)比較薄弱,所以對(duì)于圖形學(xué)原理和算法的理解與實(shí)現(xiàn)更是難上加難。目前,計(jì)算機(jī)圖形學(xué)課程的教學(xué)和評(píng)價(jià)環(huán)節(jié)側(cè)重于底層算法的實(shí)現(xiàn)和基于OpenGL的程序設(shè)計(jì)能力,不利于對(duì)于數(shù)媒專業(yè)學(xué)生的培養(yǎng),也未能銜接后續(xù)課程,可使用更簡便的技術(shù)開發(fā)工具降低學(xué)生的學(xué)習(xí)門檻。2教學(xué)改進(jìn)課程定位
經(jīng)過研讀國家標(biāo)準(zhǔn)與上海建橋?qū)W院數(shù)字媒體技術(shù)專業(yè)的培養(yǎng)方案,確定學(xué)生應(yīng)具有數(shù)字內(nèi)容制作及相關(guān)技術(shù)工具開發(fā)的能力,以制作型人才為主。計(jì)算機(jī)圖形技術(shù)的課程定位也與創(chuàng)作型(研發(fā)型)不同,不要求學(xué)生實(shí)現(xiàn)圖形學(xué)的原理與算法,而是深入理解并運(yùn)用這些原理與算法,用于后續(xù)的三維設(shè)計(jì)與制作、虛擬現(xiàn)實(shí)等課程。教材的選擇
通過調(diào)查發(fā)現(xiàn),現(xiàn)行的計(jì)算機(jī)圖形學(xué)實(shí)驗(yàn)教學(xué)主要有兩種:MFC應(yīng)用程序用C++語言編程模擬相關(guān)算法,或者用OpenGL圖形開發(fā)庫來模擬算法的實(shí)現(xiàn)[3]。這兩種方式的編程要求和學(xué)習(xí)門檻都比較高,也和數(shù)媒技術(shù)專業(yè)的課程定位不一致,所以選擇Three.js庫作為開發(fā)工具。Three.js是一個(gè)由JavaScript編寫的WebGL框架,開發(fā)者不需要精通WebGL的細(xì)節(jié),就可以調(diào)用API直接在瀏覽器中創(chuàng)建三維場(chǎng)景,并進(jìn)行光照、材質(zhì)、紋理計(jì)算后的實(shí)時(shí)渲染,可以很方便地加載OBJ等格式的三維模型,也可使用鼠標(biāo)旋轉(zhuǎn)、平移和縮放,與虛擬場(chǎng)景進(jìn)行簡單交互[4]。采用JosDirksen編寫的《Three.js開發(fā)指南:WebGL的JavaScript3D庫》作為教材,孫家廣編寫的《計(jì)算機(jī)圖形學(xué)基礎(chǔ)教程》作為參考書目,既包含圖形學(xué)的主要內(nèi)容(涵蓋了圖形的幾何變換和投影變換、實(shí)體造型技術(shù)、真實(shí)感圖形學(xué)、計(jì)算機(jī)動(dòng)畫與場(chǎng)景交互),又介紹圖形學(xué)最新技術(shù)(粒子系統(tǒng)、自定義頂點(diǎn)和片段著色器)。通過大量的交互示例和示例代碼,學(xué)習(xí)計(jì)算機(jī)圖形學(xué)的基本原理和算法的應(yīng)用[5],增強(qiáng)課堂教學(xué)的趣味性,有助于提高學(xué)生的學(xué)習(xí)熱情和學(xué)習(xí)效率。3教學(xué)反思本門課程共設(shè)置了三個(gè)實(shí)驗(yàn),分別是第一個(gè)三維場(chǎng)景、三維圖形系統(tǒng)(變換、投影)和真實(shí)感圖形系統(tǒng)(光照、材質(zhì)、紋理)。每個(gè)實(shí)驗(yàn)完成后,都要及時(shí)對(duì)完成情況進(jìn)行反饋,展示優(yōu)秀作品進(jìn)行充分肯定和評(píng)價(jià),激發(fā)其他學(xué)生的創(chuàng)作熱情,并且對(duì)不足之處和共性的問題進(jìn)行補(bǔ)充與講解。在實(shí)驗(yàn)中反映出來的問題主要在三維空間的建立、數(shù)字內(nèi)容的制作和技術(shù)工具的使用這三個(gè)方面。三維空間的建立1)三維空間坐標(biāo)系。Three.js的坐標(biāo)系遵循右手坐標(biāo)系,坐標(biāo)系的原點(diǎn)在畫布中心,水平向右X軸,垂直向上Y軸,如圖1所示的中指方向?yàn)閆軸。坐標(biāo)系的單位可以是1.0米/英寸/千米/里格,這取決于開發(fā)者,唯一的要求是必須使用統(tǒng)一的測(cè)量單位,投影和其他變換在本質(zhì)上都是無單位的[6]。初學(xué)者可以通過Three.js提供的“THREE.AxisHelper()”輔助方法將坐標(biāo)系可視化,如圖2所示,該圖的照相機(jī)位置為(-30,40,50)。實(shí)驗(yàn)中,有學(xué)生制作了一個(gè)在地面上行走的小兔子,“但是始終不知道怎么將兔子的整體向上移動(dòng),就造成了地面橫切進(jìn)了身體的現(xiàn)象”,如圖3a所示。為了解決學(xué)生對(duì)坐標(biāo)系的困惑,首先添加輔助坐標(biāo)系,如圖3b所示,可見小兔子的position(即小兔子的重心)的y軸坐標(biāo)偏低,只需要修改小兔子的y軸坐標(biāo),即可得到圖3c的效果2)位置的動(dòng)畫。還有學(xué)生搭建了一輛小車,但“實(shí)驗(yàn)中遇到的一些問題并未解決,如對(duì)車整體前進(jìn),無論怎么調(diào)試,都無法將車運(yùn)動(dòng)起來”,如圖4a所示。添加輔助坐標(biāo)系后,發(fā)現(xiàn)只需要修改小車的z值就可以了,如圖4b所示,代碼為在“requestAnimationFrame(renderScene);”回調(diào)的“renderScene()”函數(shù)中添加“group.position.z-=0.02;”語句。由輔助坐標(biāo)系觀察可得,z值減少是小車往樹的方向運(yùn)動(dòng),z值增加是往相反的方向運(yùn)動(dòng)。關(guān)于位置的動(dòng)畫有兩種常見的模式,一種是跑馬燈效果動(dòng)畫,即一端消失后從另一端出現(xiàn),代碼為“if(group.position.z<-地面長/2)group.position.z=
地面長/2;”;另一種是往返方式,即循環(huán)往返于兩個(gè)邊界處,代碼為“varflag=1;if(group.position.z>地面長/2||group.position.z<-地面長/2)flag=-flag;group.position.z+=flag*0.2;”。數(shù)字內(nèi)容制作1)組合或合并得到新幾何體。數(shù)字內(nèi)容制作是數(shù)媒專業(yè)的核心能力之一,可以通過Three.js自帶的功能來組合或合并已有的幾何體,創(chuàng)建出新的幾何體。如圖5所示的兩只小兔子,就是通過基本的cube、sphere制作的耳朵、眼睛、頭、軀干和四肢,再組合成兔子,并且分別貼了紋理圖片,可以做局部以及整體的動(dòng)畫。2)外部加載模型。使用基本幾何體創(chuàng)建模型的工作量比較大,使用基礎(chǔ)的加載器如Loader、紋理加載器如TextureLoader、文件加載器如OBJLoader等各種加載器[7],Three.js可以加載JSON、OBJ、STL、CTM等多種格式的模型[8],降低了模型制作的成本。如圖6a中房子的模型是學(xué)生用3DMAX做的,沒有畫貼圖;圖6b是學(xué)生在MAYA上制作的一個(gè)火箭模型。dat.GUI工具的使用
為了能夠快速地搭建three.js的交互ui,可引入輔助插件dat.GUI,通過簡單的學(xué)習(xí)就能夠使用。使用這個(gè)插件可以很容易地調(diào)配出需要的顏色、光源、速度等。dat.GUI使用過程如下。4目前改進(jìn)效果及下一步計(jì)劃目前改進(jìn)效果
學(xué)生評(píng)教結(jié)果如圖8所示,使用Three.js的計(jì)算機(jī)圖形技術(shù)教學(xué),評(píng)教結(jié)果有了很大進(jìn)步,這對(duì)于教學(xué)型大學(xué)是很有益處的。下一步建設(shè)計(jì)劃
下一步的工作可從兩個(gè)方面展開:1)組合得到的新模型鼠標(biāo)未能拾取到,目前還沒有找到解決方案;2)虛擬場(chǎng)景漫游中碰撞檢測(cè)的實(shí)現(xiàn),以及提高實(shí)時(shí)繪制性能的LOD技術(shù)等。Reference[1]劉晉鋼,孔令德,王進(jìn)忠.“計(jì)算機(jī)圖形學(xué)”課程新教學(xué)模式的研究與實(shí)踐[J].計(jì)算機(jī)教育,2010(3):63-65.[2]梁棟,孫涵.面向工程實(shí)踐的本科生計(jì)算機(jī)圖形學(xué)課程改革思路[J].科教導(dǎo)刊,2017(5):31-32.[3]夏力前.數(shù)字媒體技術(shù)專業(yè)計(jì)算機(jī)圖形學(xué)教學(xué)內(nèi)容研究[J].中國教育技術(shù)裝備,2017(4):91-92.[4]趙海鵬,周楊,卞和方.基于Three.js的三維虛擬校園系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].蘭州交通大學(xué)學(xué)報(bào),2019(3):85-94.[5]德克森.Three.js開發(fā)指南:WebGL的JavaScript3D庫[M].北京:機(jī)械工業(yè)出版社,2017.[6]WooM,NeiderJ,DavisT,etal.OpenGLProgra-mmingGuide:TheOfficialGuidetoLearningOpenGL,Vers
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026寧波前灣新區(qū)衛(wèi)生系統(tǒng)事業(yè)單位招聘高層次人才42人筆試備考試題及答案解析
- 2026年潤含公司招聘2名勞務(wù)派遣員工筆試備考試題及答案解析
- 2026湖南長沙市雨花湘一外國語中學(xué)春季合同制教師招聘考試備考試題及答案解析
- 2026江蘇南京大學(xué)哲學(xué)學(xué)院博士后招聘1人筆試備考題庫及答案解析
- 2026湖北交通投資集團(tuán)有限公司招聘14人考試參考題庫及答案解析
- 2026年學(xué)生心理健康輔導(dǎo)技巧課程
- 2026首都經(jīng)濟(jì)貿(mào)易大學(xué)招聘103人考試參考題庫及答案解析
- 2026年甘肅省金昌市金川路街道社區(qū)衛(wèi)生服務(wù)中心招聘(聘用制)專業(yè)技術(shù)人員筆試模擬試題及答案解析
- 北京市大興區(qū)魏善莊鎮(zhèn)社區(qū)衛(wèi)生服務(wù)中心招聘勞務(wù)派遣人員1人(行政技能輔助崗)筆試參考題庫及答案解析
- 2026上半年貴州事業(yè)單位聯(lián)考綏陽縣招聘73人筆試參考題庫及答案解析
- 復(fù)發(fā)性叢集性頭痛
- 宮頸息肉個(gè)案護(hù)理
- 新生兒感染護(hù)理查房
- 2026屆高考語文專題復(fù)習(xí)-哲理詩
- (二調(diào))武漢市2025屆高中畢業(yè)生二月調(diào)研考試 生物試卷(含標(biāo)準(zhǔn)答案)
- 2024-2025學(xué)年天津市和平區(qū)高三上學(xué)期1月期末英語試題(解析版)
- 管理人員應(yīng)懂財(cái)務(wù)知識(shí)
- ISO9001-2015質(zhì)量管理體系版標(biāo)準(zhǔn)
- 翻建房屋四鄰協(xié)議書范本
- 打樁承包合同
- 輸煤棧橋彩鋼板更換施工方案
評(píng)論
0/150
提交評(píng)論