在线观看av毛片亚洲_伊人久久大香线蕉成人综合网_一级片黄色视频播放_日韩免费86av网址_亚洲av理论在线电影网_一区二区国产免费高清在线观看视频_亚洲国产精品久久99人人更爽_精品少妇人妻久久免费

首頁 > 文章中心 > 正文

OpenGL技術(shù)下計算機(jī)動畫實現(xiàn)研究

前言:本站為你精心整理了OpenGL技術(shù)下計算機(jī)動畫實現(xiàn)研究范文,希望能為你的創(chuàng)作提供參考價值,我們的客服老師可以幫助你提供個性化的參考范文,歡迎咨詢。

OpenGL技術(shù)下計算機(jī)動畫實現(xiàn)研究

摘要:隨著“互聯(lián)網(wǎng)+”被納入國家戰(zhàn)略,移動互聯(lián)網(wǎng)技術(shù)、信息技術(shù)迅速發(fā)展,計算機(jī)動畫技術(shù)也隨之飛速崛起,如何解決動畫制作時的高速繪圖,提高圖像質(zhì)量成為關(guān)鍵.文中提出了借助于opengl提供的雙緩沖技術(shù),有效解決了動畫制作過程中的這一難題,闡述了采用OpenGL技術(shù)支持下計算機(jī)動畫實現(xiàn)的具體過程與方法.

關(guān)鍵詞:OpenGL技術(shù);計算機(jī)動畫;實現(xiàn)過程

近年來,隨著“互聯(lián)網(wǎng)+”被納入國家戰(zhàn)略,移動互聯(lián)網(wǎng)技術(shù)、信息技術(shù)迅速發(fā)展,直接影響著我們的生活習(xí)慣和學(xué)習(xí)、工作方式.計算機(jī)動畫技術(shù)也隨之飛速崛起,它的應(yīng)用領(lǐng)域日益擴(kuò)大,帶來的社會效益和經(jīng)濟(jì)效益也不斷增長.現(xiàn)階段主要被廣泛應(yīng)用于電影業(yè)、電視片頭、廣告、科學(xué)計算和工業(yè)設(shè)計、模擬、教育、娛樂以及虛擬現(xiàn)實與3D、Web等諸多領(lǐng)域.而在計算機(jī)動畫中,繪圖速度和圖像的清晰程度是至關(guān)重要的.由于動畫需要每秒產(chǎn)生20~30幀的畫面,因此對動畫中圖形的繪制速度有一定的要求,當(dāng)圖形的數(shù)據(jù)信息量較大時,繪圖的過程需花費的時間也會隨之加長,在這個過程中可能還會伴隨有其它現(xiàn)象出現(xiàn)(如:圖形不斷閃爍).這時如果采用OpenGL提供的雙緩沖技術(shù)來完成圖形的繪制過程,這些問題便可以迎刃而解,從而為動畫的制作完成奠定了堅實基礎(chǔ).

1關(guān)于OpenGL

1.1什么是OpenGLOpenGL.[1]通俗來說就是一個軟件包,它的性能卓越,是專門針對三維圖形而制訂的一個通用標(biāo)準(zhǔn).對于窗口系統(tǒng)和操作系統(tǒng)來說,它是獨立的個體,利用它可開發(fā)出多種類型的應(yīng)用程序,這些應(yīng)用程序可以在各種不同的平臺間靈活地被移植而不受影響;同時它還能與VisualC++緊密接口,使得機(jī)械手的有關(guān)計算和圖形算法完整實現(xiàn),既能充分保證算法的正確性,又能保證其可靠性;另一方面,雖然OpenGL使用時較簡單,但是效率卻是極高的.

1.2關(guān)于OpenGL功能的介紹.1)建模功能:圖形庫中不但包含有繪制基本的點、線、多邊形的簡單函數(shù),同時還有很多復(fù)雜函數(shù),可完成對一些較復(fù)雜的三維物體(球、錐、多面體、茶壺等)以及帶有曲線、曲面的物體線、面的繪制,能完成快速建模.2)變換功能:OpenGL圖形庫的變換可分為基本變換和投影變換兩類.它的變換方法與機(jī)器人運動學(xué)中的坐標(biāo)變換方法完全一致,對減少算法的運行時間,提高三維圖形的顯示速度是很有利的.3)顏色模式設(shè)置功能:OpenGL顏色模式包括RGBA模式和顏色索引模式兩種.4)光照和材質(zhì)設(shè)置功能:OpenGL光有四種,即輻射光、環(huán)境光、漫反射光和鏡面光.材質(zhì)是用光反射率來表示.光的紅綠藍(lán)分量與材質(zhì)紅綠藍(lán)分量的反射率相乘后形成的顏色才是場景中物體最終反映到人眼中的顏色.5)紋理映射:OpenGL所提供的紋理映射功能對于表達(dá)物體表面的一些細(xì)節(jié)十分有利,仿真度極高.6)位圖顯示和圖像增強(qiáng)功能:圖像功能既包括基本的拷貝和像素讀寫,同時還有融合、反走樣和霧三種特殊圖像效果處理.而經(jīng)過這三種特殊效果處理,被仿真物的真實感會更強(qiáng),圖形顯示的效果也會隨之增強(qiáng).7)雙緩存(DoubleBuffering)動畫:所謂雙緩存,具體是指前臺緩存和后臺緩存,它們各司其職.具體來說,計算場景、生成畫面的任務(wù)由后臺緩存負(fù)責(zé),而前臺緩存則負(fù)責(zé)后臺緩存已畫好的畫面的完整顯示.另一方面,OpenGL還能使深度暗示、運動模糊等特殊效果順利實現(xiàn),從而完成消隱算法.

2計算機(jī)動畫的基本原理及關(guān)鍵技術(shù)

2.1動畫基本原理概述.所謂動畫,通常是指連續(xù)播放一組靜態(tài)畫面相互銜接而形成的動態(tài)效果.它是利用人眼具有視覺暫留這一特性,讓一幅幅靜態(tài)畫面“動”起來的動態(tài)呈現(xiàn)過程.如果要活靈活現(xiàn)地展現(xiàn)一個事件的發(fā)展變化過程就可以使用動畫的方式來清晰、完整地進(jìn)行表現(xiàn).目前對動畫的定義公認(rèn)為:它實際是一門產(chǎn)生運動視覺的技術(shù),是將一組組單個且具有連續(xù)性的畫面拍攝在膠片上,從而產(chǎn)生視覺運動的技術(shù)手段,這種視覺技術(shù)是通過將膠片以一定的速度放映的形式而具體體現(xiàn)出來的.

2.2什么是計算機(jī)動畫.計算機(jī)動畫[2]是指采用一種先進(jìn)技術(shù)讓靜止圖像進(jìn)行連續(xù)播放,從而呈現(xiàn)出物體不同運動狀態(tài)的一種動態(tài)效果,也就是利用計算機(jī)產(chǎn)生圖形、圖像運動的技術(shù).計算機(jī)動畫通過對圖形和圖像采用綜合處理技術(shù),再通過程序編寫軟件和制作動畫軟件相結(jié)合設(shè)計出多組動態(tài)畫面.將前一幀的內(nèi)容設(shè)計為物體的某個特定狀態(tài),而當(dāng)前幀的內(nèi)容則修改為它的另一個狀態(tài),利用動畫軟件形成動態(tài)效果.動畫制作軟件系統(tǒng)主要包括以下幾種:(1)腳本系統(tǒng).它是早期的動畫制作系統(tǒng);(2)程序動畫.是采用一系列程序來定義在特定時段某一角色的運動,這些程序是采用角色的物理規(guī)則和動畫的生成方法來生成的;(3)表示動畫.這種動畫允許在動畫過程對象的形狀發(fā)生變化;(4)隨機(jī)動畫.這種動畫采用隨機(jī)過程來控制角色的運動;(5)行為動畫.這種動畫系統(tǒng)中的物體或角色定義中就已經(jīng)明確規(guī)定了這些物體或角色應(yīng)處在什么樣的環(huán)境中,以及要遵循什么樣的規(guī)則.計算機(jī)將根據(jù)這些要素構(gòu)造一個虛擬的動畫世界,其中虛擬出來的一些景物、建造體、物體和虛擬攝像機(jī)的運動過程,完全是由我們選用的計算機(jī)系統(tǒng)的基本處理功能來決定的.

2.3計算機(jī)動畫使用關(guān)鍵技術(shù).計算機(jī)動畫的關(guān)鍵技術(shù)體現(xiàn)在計算機(jī)動畫制作軟件和硬件上.動畫軟件、硬件的功能不同,則可實現(xiàn)的的動畫效果也不同.從計算機(jī)動畫軟件實現(xiàn)的角度來看,其關(guān)鍵技術(shù)主要包括以下幾種類型.(1)關(guān)鍵幀動畫:計算機(jī)動畫模仿傳統(tǒng)動畫的生成方法,先繪制出關(guān)鍵幀,然后再根據(jù)關(guān)鍵幀進(jìn)行插值,繪出中間幀,因此稱為關(guān)鍵幀動畫.設(shè)置為關(guān)鍵幀的位置一般是指在此處會出現(xiàn)動作上的某種變化,對一些連續(xù)動作起著關(guān)鍵的轉(zhuǎn)折作用.關(guān)鍵幀技術(shù)通過對運動物體的運動參數(shù)插值實現(xiàn)對動畫的運動控制.(2)運動軌跡法:基本運動學(xué)描述,通過指定物體的空間運動路徑來確定物體的運動,并在物體的運動過程中允許對物體實施各種幾何變換(如縮放、旋轉(zhuǎn)等),但不引入運轉(zhuǎn)的力.(3)運動動力學(xué)法:基于具體的物理模型,運動過程由描述物理定律的力學(xué)公式來得到.該方法綜合考慮到物體的質(zhì)量、慣性、摩擦力、引力、碰撞力等多個物理因素.其他還包括人體動畫、基于物理特征的動畫等[3].

3OpenGL技術(shù)支持下的計算機(jī)動畫的實現(xiàn)過程

3.1計算機(jī)動畫中繪圖的具體要求.在計算機(jī)動畫中,由于需要每秒產(chǎn)生20~30幀的畫面,因此對圖形的繪制速度有一定的要求,當(dāng)圖形的數(shù)據(jù)信息量較大時,繪圖的過程需花費的時間也會隨之加長,在這個過程中可能還會伴隨有其它現(xiàn)象出現(xiàn)(如:圖形不斷閃爍).這時如果采用OpenGL提供的雙緩沖技術(shù)來完成圖形的繪制過程,則可以有效防止這些問題的出現(xiàn).雙緩沖是指在計算機(jī)內(nèi)存中創(chuàng)建一個對象區(qū)域,讓其與屏幕上的繪圖區(qū)域保持一致,首先在內(nèi)存中的這個區(qū)域中完成圖形的全部繪制操作,然后將內(nèi)存中對象上的圖形一次性完整地復(fù)制到屏幕上繪圖的區(qū)域,經(jīng)過如此處理可快速完成圖形的繪制.

3.2雙緩沖技術(shù)函數(shù)功能分析.OpenGL支持雙緩沖,它是可以通過一個函數(shù)調(diào)用來實現(xiàn)前、后緩沖區(qū)之間信息交換的.OpenGL雙緩沖技術(shù)使用如下:Windows編程環(huán)境下調(diào)用如下函數(shù):SwapBuffers();控制臺編程環(huán)境下調(diào)用的函數(shù)為:glutSwapBuffers();glutnisDisplayMode(GLUT_DOUBLE|GLUT_RGB);//指定一個雙緩沖窗口,完成所有繪圖代碼都在畫面外的緩沖區(qū)進(jìn)行渲染.計算機(jī)動畫還需要進(jìn)行窗口定時刷新:glutPostRedisplay();//刷新當(dāng)前窗口glutTimeFune(intinterval,void*TimeFunc,1);//登記一個回調(diào)函數(shù),經(jīng)過設(shè)定的時間值后由GLUT調(diào)用該函數(shù).3.3動畫的具體實現(xiàn)過程下面以完成一個逆時針旋轉(zhuǎn)的茶壺動畫為例說明其實現(xiàn)過程.首先在屏幕上繪制一個繞經(jīng)點(0,0,0),(1,1,1)的矢量圖形茶壺,動畫實現(xiàn)逆時針旋轉(zhuǎn),每隔50ms刷新一次窗口.代碼如下:#include<GL/glut.h>Doubledlst=0;VoidTimerloop(int);VoidRender(void);Voidmain(void)//主函數(shù)入口{glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB);glutCreateWindow(“Animation”);glutDisplayFunc(Render);……glutTimeFunc(50,TimerLoop,1);……glutMainloop();}VoidRender(void){//計算旋轉(zhuǎn)角度dist+=10.0f;if(dist>360.0f)dist=10.0f;//繪圖glClear(GL_COLOR_DUFFER_BIT|GL_DEPTH_BUFFER_BIT);glClear;glColor3f(255,0,0);glPushMatrix();glRotatef(dist,1.0f,1.0f,1.0f);glutSolidTeapot(0.4);glPopMatrix();glFinish();glutSwapBuffers();//在雙緩沖模式下進(jìn)行一次緩沖區(qū)交換}VoidTimerLoop(intvalue){glutPostRedisplay();//刷新當(dāng)前窗口glutTimerFunc(50,TimerLoop,1);}

4結(jié)語

當(dāng)前我們正處于互聯(lián)網(wǎng)飛速發(fā)展的時代,計算機(jī)動畫技術(shù)作為一種新的信息制作與傳播方式,在各個領(lǐng)域的應(yīng)用價值都是不可估量的.隨著計算機(jī)動畫應(yīng)用的不斷深入,動畫中對圖形圖像的繪制速度和質(zhì)量的要求必將會更快更高,而OpenGL所提供的雙緩沖技術(shù)首先在內(nèi)存中的這個對象上完成圖形繪制的所有操作,然后再將該圖形一次性完整地復(fù)制到屏幕上,如此既可以快速完成,同時還能保證清晰度不受影響.計算機(jī)動畫將會給我們帶來一個比現(xiàn)實更加豐富多彩的世界,呈現(xiàn)給我們一個新奇的視覺效果和視覺體驗.

參考文獻(xiàn):

[1]尚游.OpenGL高級圖形編程指南[M].哈爾濱:哈爾濱工程大學(xué)出版社,1999.

[2]李閩.計算機(jī)動畫技術(shù)發(fā)展研究[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2014(1):172.

[3]趙舒羽.基于OpenGLES的真實感布料動畫的研究與實現(xiàn)[D].成都:電子科技大學(xué),2015.

作者:羅新曼 單位:臨汾職業(yè)技術(shù)學(xué)院計算機(jī)系

文檔上傳者
贺州市| 凌源市| 焦作市| 咸宁市| 平阳县| 朔州市| 安国市| 汪清县| 泰顺县| 饶平县| 荣成市| 平遥县| 会宁县| 重庆市| 新河县| 高尔夫| 木里| 襄汾县| 淮安市| 绥中县| 莲花县| 孙吴县| 蒲城县| 澳门| 定边县| 五家渠市| 社会| 达州市| 拉孜县| 泽州县| 凤庆县| 石城县| 深圳市| 兰州市| 漯河市| 商南县| 成都市| 青铜峡市| 永新县| 安多县| 新闻|