最近中文字幕2018免费版2019,久久国产劲暴∨内射新川,久久久午夜精品福利内容,日韩视频 中文字幕 视频一区

首頁 > 文章中心 > 正文

OpenGL技術下計算機動畫實現研究

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

OpenGL技術下計算機動畫實現研究

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

關鍵詞:OpenGL技術;計算機動畫;實現過程

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

1關于OpenGL

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

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

2計算機動畫的基本原理及關鍵技術

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

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

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

3OpenGL技術支持下的計算機動畫的實現過程

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

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

4結語

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

參考文獻:

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

[2]李閩.計算機動畫技術發展研究[J].網絡安全技術與應用,2014(1):172.

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

作者:羅新曼 單位:臨汾職業技術學院計算機系

文檔上傳者
主站蜘蛛池模板: 筠连县| 贺州市| 永吉县| 安丘市| 莆田市| 庆云县| 蕉岭县| 肃北| 特克斯县| 高淳县| 桐城市| 上饶市| 北海市| 南召县| 江孜县| 崇州市| 中方县| 通许县| 新蔡县| 河曲县| 旅游| 白朗县| 定南县| 乐清市| 东丰县| 托里县| 三台县| 万载县| 离岛区| 富顺县| 岱山县| 焉耆| 阿拉善左旗| 蓝山县| 灌南县| 博湖县| 垫江县| 诸暨市| 富顺县| 河东区| 佛山市|