
摘 要:本文討論了3D動(dòng)畫模擬化學(xué)反應(yīng)的設(shè)計(jì)與實(shí)現(xiàn),通過(guò)OpenGL與3ds max軟件的結(jié)合,將復(fù)雜的化學(xué)反應(yīng)過(guò)程用3D動(dòng)畫的方式呈現(xiàn)出來(lái)。用戶通過(guò)選擇分子式或反應(yīng)方程式進(jìn)行3D動(dòng)畫的模擬,使化學(xué)反應(yīng)過(guò)程更加生動(dòng)、形象。
關(guān)鍵詞:OpenGL;3ds Max;c++;3D動(dòng)畫;化學(xué)反應(yīng)
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1674-7712 (2014) 12-0000-01
隨著電腦軟硬件的快速發(fā)展,計(jì)算機(jī)圖形圖像處理技術(shù)的應(yīng)用得到了空前的發(fā)展,電腦美術(shù)作為一個(gè)獨(dú)立學(xué)科走上了迅猛發(fā)展之路。目前,國(guó)內(nèi)外越來(lái)越多的使用3D制作動(dòng)畫,三維建筑、室內(nèi)效果圖等,但是很少將其與化學(xué)實(shí)驗(yàn)結(jié)合起來(lái),有的也只是用3D模擬出分子和原子結(jié)構(gòu),而對(duì)化學(xué)反應(yīng)時(shí)的斷鍵和成鍵情況沒(méi)有具體的說(shuō)明。對(duì)于比較復(fù)雜的斷鍵、成鍵過(guò)程,學(xué)生理解起來(lái)會(huì)很困難,老師講解也很抽象,所以對(duì)模擬實(shí)驗(yàn)會(huì)極度渴望。
本文討論了通過(guò)3D動(dòng)畫來(lái)模擬化學(xué)反應(yīng)的設(shè)計(jì)與實(shí)現(xiàn),能夠?qū)⒒瘜W(xué)反應(yīng)過(guò)程生動(dòng)、形象的展示出來(lái)。
一、系統(tǒng)的實(shí)現(xiàn)流程
系統(tǒng)基本流程為界面設(shè)計(jì),建模,模型生成,動(dòng)畫生成,動(dòng)畫控制。
(一)界面設(shè)計(jì)
使用windows界面設(shè)計(jì),實(shí)現(xiàn)與用戶的交互,用戶通過(guò)選擇化學(xué)分子式或者反應(yīng)方程式進(jìn)行3D模擬動(dòng)畫的展示,同時(shí),在動(dòng)畫播放過(guò)程中可對(duì)其進(jìn)行基本的暫停等操作。
(二)建模
首先在3ds Max中對(duì)化學(xué)分子式進(jìn)行建模,構(gòu)建出每個(gè)分子的球棍模型,該模型能夠清楚地反應(yīng)原子間的相對(duì)位置和化學(xué)鍵的位置。利用插件,將模型導(dǎo)出為md2文件,用于模型生成。
(三)3D模型生成
本系統(tǒng)使用OpenGL這個(gè)專業(yè)的圖形程序接口對(duì)構(gòu)建的模型進(jìn)行加載,使用紋理貼圖技術(shù)將不同類型的原子渲染成不同顏色,從而繪制出分子的3D模型。
(四)3D動(dòng)畫生成
將渲染的3D模型,通過(guò)調(diào)整時(shí)間和坐標(biāo)位置加載為動(dòng)畫,用于模擬化學(xué)反應(yīng)過(guò)程。
(五)動(dòng)畫控制
在動(dòng)畫播放時(shí),可對(duì)其進(jìn)行暫停,停止,播放等操作,便于觀察反應(yīng)過(guò)程中的斷鍵和成鍵情況。
二、系統(tǒng)的研究方法和關(guān)鍵技術(shù)
(一)3ds Max建模
本系統(tǒng)使用3ds Max 2011軟件平臺(tái)制作化學(xué)分子的3D模型,涉及到對(duì)該軟件的了解和使用。
(二)深度緩沖區(qū)
本系統(tǒng)啟動(dòng)了深度緩沖區(qū)用于消除實(shí)心物體被其他物體所遮擋的情況,具體實(shí)現(xiàn)代碼如下:
glEnable(GL_DEPTH_TEST)
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
(三)紋理貼圖
本系統(tǒng)使用紋理貼圖技術(shù)為不同的原子綁定不同顏色,分為以下幾步:
1.創(chuàng)建和綁定紋理對(duì)象
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D,groundTex->texID);
2.將保留在data中的像素值傳給當(dāng)前綁定的紋理對(duì)象
gluBuild2DMipmaps(GL_TEXTURE_2D,GL_RGB,groundTex->width,groundTex->height,GL_RGB,GL_UNSIGNED_BYTE,groundTex->data);
(四)光照
本系統(tǒng)使用OpenGL光照函數(shù)來(lái)繪制真實(shí)感圖形,具體步驟如下:(1)定義每個(gè)物體的每個(gè)頂點(diǎn)的法向量(法向量決定了物體相對(duì)于光源的方向);(2)創(chuàng)建和選擇一個(gè)或多個(gè)光源,設(shè)置它們的位置;(3)創(chuàng)建光照模型。(4)定義場(chǎng)景中物體的材料屬性。
(五)視圖變換
視圖變換實(shí)現(xiàn)了從不同角度觀察分子模型的功能,能夠清楚地觀察反應(yīng)過(guò)程中,各原子和化學(xué)鍵的變化。實(shí)現(xiàn)部分代碼如下:
gluLookAt(cameraX,cameraY,cameraZ,lookX,lookY,lookZ,0.0,1.0,0.0);
圖1 默認(rèn)的照相機(jī)位置
圖2 使用gluLookAt()后
(六)加載md2文件
加載md2文件,實(shí)現(xiàn)動(dòng)畫:(1)讀取原始數(shù)據(jù);(2)將數(shù)據(jù)轉(zhuǎn)換成模型結(jié)構(gòu);(3)動(dòng)畫顯示。
三、結(jié)束語(yǔ)
本文介紹了3D動(dòng)畫模擬化學(xué)反應(yīng)系統(tǒng),能夠?qū)瘜W(xué)反應(yīng)中的斷鍵成鍵過(guò)程進(jìn)行模擬,系統(tǒng)使用簡(jiǎn)單,能夠清楚地展示化學(xué)反應(yīng)過(guò)程,對(duì)于實(shí)際教學(xué)活動(dòng)具有重要的實(shí)際應(yīng)用意義和推廣價(jià)值。
參考文獻(xiàn):
[1]孫毅.SUN Yi 3DS MAX在虛擬現(xiàn)實(shí)設(shè)計(jì)中的運(yùn)用[J].自動(dòng)化與儀器儀表,2009(06).
[2]程琍.三維動(dòng)畫技術(shù)在有機(jī)化學(xué)教學(xué)中的應(yīng)用[J].攀枝花學(xué)院學(xué)報(bào),2002(04).
[3]沐來(lái)龍,何紅梅.三維動(dòng)畫技術(shù)在原子軌道圖形表示MCAI中的應(yīng)用[J].徐州師范大學(xué)學(xué)報(bào)(自然科學(xué)版),2002(02).
[4]Dave Shreiner.OpenGL編程指南[M].李君,徐波,譯.北京:機(jī)械工業(yè)出版社,2010.