




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第5章 動畫動畫(animation)是運動的藝術,運動是動畫的本質。本章先介紹動畫的基本原理、發展歷史與主要應用,然后講解傳統動畫和計算機動畫的基本內容。重點放在圖形動畫的描述語言和計算機動畫的制作上,主要介紹VRML、X3D和SVG標準,以及位圖動畫和OpenGL的編程。5.1 概述動畫與電影和電視都是利用人的視覺滯留現象所產生的錯覺來實現連續運動視覺的。歷史上,動畫的發明要早于電影和電視。計算機動畫在電子和網絡游戲、電影特技和動畫片制作等方面起著決定性的作用。5.1.1視覺滯留原理電影、電視與動畫都是利用人的視覺滯留殘留/暫留(persistence of vision)現象的原理來工作
2、的。在上一章的眼睛與視覺部分的4.1.2小節已經講過,由于人眼感光細胞中的生物化學和生物物理學反應、以及視神經和視覺中樞的信號處理都需要一定的時間,所以物體在眼睛的視網膜中成像后,并不會立即消失,而會保留25 200ms(毫秒 = 1/1000秒),相當于5 40幀/秒。因此,如果快速播放一系列相關的離散畫面,就會使人產生連續的運動視覺(幻覺)。下面電影、電視和動畫的典型幀率:電影:老片16幀/秒、普通24幀/秒、數字30幀/秒電視:PAL25幀/秒、NTSC30幀/秒、HDTV25或30幀/秒動畫:10100幀/秒雖然動畫與電影電視的工作原理相同,但電影和電視主要是用攝影機和攝像機拍攝出來的
3、畫面,而動畫則是人工或計算機畫出來的。5.1.2動畫發展簡史傳統動畫1820年英J. Paris:圓盤兩面畫的旋轉設備thaumatrope(幻影轉盤,西洋鏡)1831年法J. Plaleau:轉盤狹縫phenakistoscope(轉盤活動影像鏡,詭盤玩具)1834年英W. Horner:轉籠zoetrope(西洋鏡,回轉畫筒)1839年法:照相術銀版攝影術1884年P. Nipkow:電視羅盤旋轉掃描器1891年美T. Edison(愛迪生):活動電影視鏡1895年法L./A. Lumiere兄弟電影放映機1906年美J. Blackton:第一部動畫片滑稽的面孔1928年美W. Disn
4、ey(迪斯尼)第一部商用動畫片1937年英國開始黑白電視廣播可見,動畫的發明要早于電影和電視。計算機動畫1963年Bell實驗室:第一部計算機動畫1974年P. Foldes:動畫片“饑餓”在戛納電影節上獲獎1991/1993年:終結者II/侏羅紀公園均獲奧斯卡最佳視覺特效獎隨著計算機硬件設備和三維圖形技術的飛速發展,計算機動畫,特別是其中的三維模型動畫,在動畫行業起著越來越重要的作用。5.1.3 應用領域傳統動畫主要用于動畫電影的制作,也少量用于電視廣告和電化教學等方面。計算機動畫則滲透到運動視覺媒體的方方面面,應用領域十分廣泛,包括電子/計算機/網絡游戲、電影和電視特技、(二維輔助和三維模
5、型)動畫片制作、動態廣告、模擬器(飛行/汽車)、教育(MCAI多媒體計算機輔助教學)、科研(可視化)等等方面。5.2 傳統動畫傳統動畫歷史悠久,技術已經非常成熟。在現代計算機技術的幫助下,現在仍然充滿活力。而且,計算機動畫,也是在傳統動畫的基礎上發展起來的,借鑒了很多傳統動畫的技術和概念。所以,在討論計算機動畫之前,有必要簡單介紹一下傳統動畫的基本內容。本節先引進動畫的傳統概念及其改進,然后討論傳統動畫的制作過程,最后介紹動畫的相關術語和常用特技。5.2.1動畫的概念動畫的英文是animation,基本含義為生氣活潑、熱情興奮。其詞根anima具有生命, 靈魂的意思(派生詞animate :活
6、的、有生命的;animal:動物)。下面是動畫的若干定義:簡單定義:動畫是動態生成系列相關畫面以產生運動視覺的技術。復雜定義:(傳統)動畫(片)是一門通過在連續多格的膠片上拍攝的一系列單個(繪制)畫面,并以一定的速度放映,從而產生運動視覺的技術。定義的修改:(以適應現代計算機動畫)畫面紀錄:膠片上磁盤、磁帶、光盤等存儲介質;放映設備:銀幕電視、顯示器、投影儀等;運動對象:實體運動顏色、紋理、燈光等的改變。動畫片(animation)又叫卡通片(cartoon,報刊上的政治性漫畫)是利用動畫技術制作的動畫影片或電視節目。注意,雖然動畫與電影電視都是利用系列相關圖片來產生運動視覺,但是在上面的動畫
7、定義中,都強調動畫中的圖片幀是人工繪制或計算機生成的圖形畫面(而電影和電視中的圖片幀則主要是用攝影機和攝像機拍攝出來的實物影像圖像)。5.2.2動畫的制作傳統動畫的制作過程(參見圖5-1)劇本劇本故事板設計稿聲音節拍關鍵幀中間畫測試描線上墨上色檢查拍攝后期制作圖5-1 傳統動畫的制作過程在傳統動畫的制作過程中:“設計稿”的制作是最困難的,因為它包括了包括人物、造型、動作、色彩、氣氛等等的設計。“測試”中一般使用的是鉛筆稿。“后期制作”包括編輯、剪接、對白、配音、字幕等等內容。在動畫制作過程中,與電影和電視劇差別最大的一步是“聲音節拍”。電影和電視一般都是后期配音或同步錄音,而動畫則是繪制畫面之
8、前,先確定聲音和節拍,這主要是為了減少畫面的繪制工作量。在電影和電視制作中,往往需要拍攝大量實物影像作為素材,在后期制作中再進行大刀闊斧的裁剪,最后播出的膠片和磁帶往往只是全部拍攝內容中的一小部分。而動畫中的一幅幅畫面,都是技師和畫工辛辛苦苦一筆一筆畫出來的,耗時費力。一秒鐘的動畫需要24到30幅畫面,一個半小時(90分鐘)長的一部動畫片則需要畫約13萬到16萬多張圖畫,工程浩大。因為動畫的畫面內容,必須與聲音匹配和同步,所以先期確定聲音節拍,就是為了在后期制作時,減少裁剪,從而節省畫面繪制的工作量,同時也節省了時間和費用。常用動畫名詞格一個畫面,動畫片的最小單位。十分鐘的動畫(24幀/秒)需
9、14,400格。幅每個畫面通常由若干張透明片疊合而成,每張“明片”為一個對象(的某一部分),稱之為幅關鍵幀動作的極限(主要/轉折)位置,通常由老師傅來畫小原畫兩個關鍵幀之間的若干小關鍵幀,由小畫師畫中間畫兩個關鍵幀之間的若干過渡畫面,可由普通畫工來畫動畫特技常用的傳統動畫特技有:搖轉、推拉、翻轉、漸顯/隱、淡入/出、卷切等。5.3 計算機動畫5.3.1概念計算機動畫(computer animation)是用計算機生成一系列可供實時演播的連續畫面之技術。計算機動畫,可以按照所使用技術的高低,分成如下幾個等級:圖形編輯(疊加、著色、特技)中間畫生成(變形)活動對象操縱(位置、屬性、算法、運動)角
10、色定義(語義級,術語規定)智能動畫(故事動畫,可學習和擴充)5.3.2分類可以依據不同特征來對計算機動畫進行分類:按計算機所起的作用,可以分為:計算機輔助動畫傳統二維動畫的補充,利用計算機輔助工作。如填色、疊加、生成中間畫、制作特效等,如動畫片花木蘭和二維游戲;模型動畫三維造型、動作設計、場景渲染等。如動畫片玩具總動員和三維游戲。按使用技術的等級,可以分為:低級需人工顯示規定每個物體和人物的位置、屬性、各種運動參數,如現有動畫系統和軟件;高級可用通用術語來規定運動、智能化。正在研制開發。按播放時間,可以分為:逐幀動畫先生成后播放,對硬件性能要求不高。如早期的動畫系統和軟件;實時動畫邊生成邊播放
11、,對硬件性能要求較高。如早期的SGI工作站和現在普通的PC機,電子游戲。按控制方法,可以分為:關鍵幀動畫簡單運動學;算法動畫復雜運動學,部分動力學;物理動畫自動控制,動力學(落體、流體、變形、爆炸),隨機、分形。按動畫的維數,可以分為:2D簡單,平面美術設計。如軟件Flash和動畫片花木蘭;3D復雜,三維造型、動作設計、透視、消隱、光照、材質、場景渲染等。如軟件3DS和動畫片玩具總動員。二維動畫和三維動畫的分類,與輔助動畫和模型動畫的分類是一致的。按生成的方式,可以分為:矢量采用圖形學的方法生成動畫,記錄的是圖形的各種參數。在演播時,可以實時渲染,也可以先渲染好(稱為位圖系列)后再播放。如Fl
12、ash和3DS;位圖動畫以位圖形式出現,可以是矢量動畫渲染后的結果。如GIF動畫、fli、avi、mov。按畫面的分辨率,可以分為:低320*240(VCR/VCD級);中1K*1K(16mm膠片/DVD級);高2K*2K(35mm膠片級);超4K*4K(70 mm膠片級)。常用的計算機動畫分類方法,是輔助/模型或2D/3D動畫。5.3.3技術技術基礎:計算機圖形學、數字圖像處理、三維幾何造型、真實感圖形、物理造型、人體動畫等等相關學科:美術、繪畫、力學、人體運動學、機器人學、生物學、生理學、心理學、人工智能、計算機科學等等研究內容:形體造型、運動控制與描述、圖形繪制、動態模擬、集成環境、關節
13、/人體運動、動畫語言系統、硬件接口、特技三維圖形學三維圖形學是三維造型、三維動畫和虛擬現實的基礎和核心。三維造型:物體表面/三角形、簡單物體/自然物體/人體真實感圖形:透視、消隱、材質、紋理、光照、渲染3D標準常見的三維圖形、動畫、以及虛擬現實系統的標準有:國際標準:開放圖形庫OpenGL(Open Graphics Library);虛擬現實建模語言VRML(Virtual Reality Modeling Language);可擴展三維X3D(eXtensible 3D,基于XML)。事實標準:直接三維Direct3D(Microsoft DirectX的組成部分);爪哇三維Java 3D
14、(Sun領導的JCP)2D標準常見的二維網頁圖形動畫的標準有:國際標準:可伸縮矢量圖形SVG(Scalable Vector Graphics,基于XML);事實標準:閃光Flash(Macromedia公司的產品)。5.4 動畫制作的軟件、語言和接口動畫制作可以分成兩類:用戶級使用現成的商用動畫制作軟件和描述性的動畫描述語言,進行復雜的3D造型和簡單的動畫設計。對使用者要求不高,但是產品的交互性不夠、效率也不高。程序員級使用高級語言和圖形動畫API,進行簡單的3D造型和復雜的動畫設計。對程序員要求較高,但是產品的交互性好、效率也很高。這兩類方法各有特點,具有一定的互補性,且各有自己不同的主要
15、應用領域。下面列出常見的動畫制作軟件、描述語言和API。5.4.1 動畫制作軟件常見的動畫制作軟件有:二維動畫位圖動畫(GIF)臺灣友立公司的Ulead GIF Animator微軟公司早期的Microsoft GIF AnimatorLiatro soft公司的Babarosa Gif Animatorgamani productions公司的GIF Movie GearRight to Left Software公司的Animagic GIF Animator矢量動畫(Web)Macromedia公司的Web二維矢量動畫軟件Macromedia Flash MXDJJ Holdings公司
16、的Swish三維動畫臺灣友立公司的三維文字制作軟件Ulead Cool 3DAutodesk公司之多媒體子公司Discreet的三維造型與動畫軟件Discreet 3ds maxAlias|Wavefront公司的三維動畫軟件MayaAmabilis Software公司的自由三維動畫軟件3D Canvas5.4.2動畫描述語言動畫描述(標記)語言主要有如下三種基于Web網(WWW,World-Wide-Web萬維網)的國際標準:三維圖形動畫和虛擬現實的Web3D標準VRML(Virtual Reality Modeling Language虛擬現實建模語言)X3D(eXtensible 3D
17、可擴展三維,基于XML)基于XML的二維圖形和動畫標準SVG(Scalable Vector Graphics可伸縮矢量圖形)后面的5.55.7節會對它們分別加以簡單的介紹。5.4.3 動畫編程接口常見的圖形動畫編程接口(API)有:國際標準:開放圖形庫OpenGL(Open Graphics Library);事實標準:直接三維Direct3D(Microsoft DirectX的組成部分);爪哇三維Java 3D(Sun領導的JCP)。OpenGL源于SGI公司的GL(Graphics Library圖形庫),是國際組織OpenGL ARB(Architecture Review Boar
18、d體系結構評審委員會)推出的二維和三維圖形動畫API的標準。最初版本是1992年7月1日推出的OpenGL1.0,目前的最新版是2004年9月7日推出的2.0版。GL和OpenGL是現代所有二維和三維圖形與動畫API的鼻祖,經典規范、技術成熟、算法先進、內容豐富、應用非常廣泛。OpenGL是一套完整開放的圖形函數庫,跨平臺且語言中立(主要針對C/C+),廣泛用于大型機和專業級的應用程序開發,也可以用于PC機和Windows平臺(通常PC機的圖形顯示卡都會同時提供OpenGL和Direct3D的驅動模塊)。后面的5.8節將會簡單介紹OpenGL的Visual C+編程。Direct3D作為Dir
19、ectX的最重要組成部分,在微軟公司的Windows平臺上使用十分廣泛。Direct3D最初是于1996年隨DirectX 2.0推出的,現在的最新版本是隨DirectX9.0c的2006年8月更新版推出的D3DX9正式版和Direct3D 10的預覽版。Direct3D的功能強大、效率高、更新快。不足之處是只局限于Windows平臺,而且只是一個公司的私有產品,開放性不夠,在技術上也不太穩定。Java 3D是Sun公司提出的Java語言的有機組成部分,它是在OpenGL基礎上開發出來的。Java 3D的1.0版是于1998年11月隨Java 2(JDK 1.2)正式推出的,當前的最新版本為2
20、006年2月推出的Java 3D 1.4.0,而1.5.0版還處在開發過程中。Java 3D的功能也很強大,而且跨平臺,由多個公司和組織參加的JCP(Java Community Process,Java社團進程)負責其管理和開發,技術先進且穩定。不足之處是,Java虛擬機會在一定程度上影響其速度,而且只能用于Java語言。5.5VRMLVRML(Virtual Reality Modeling Language虛擬現實建模語言)是一種可以在萬維網上發布的,采用文本信息描述交互式三維場景的文件格式。VRML文件描述了基于時間的三維空間虛擬現實,它包含了圖形對象和聽覺對象,可以通過多種機制動態修
21、改。VRML定義了一種把三維圖形和多媒體集成在一起的文件格式。在語法上,VRML文件是一種顯式地定義和組織三維多媒體對象的集合;在語義上,VRML文件描述了基于時間的交互式多媒體信息的抽象行為。下面先介紹VRML發展的簡單歷程,然后列出若干VRML的基本特性,接著簡介VRML的核心概念和體系結構,最后給出兩個簡單的VRML示例。5.5.1發展簡史下面是VRML的發展簡史:1992年底SGI公司(的Gavin Bell和Paul Strauss等人)在OpenGL的基礎上推出了面向對象的三維圖形文件格式Open Inventor(開放發明家);1994年初Mark Pesce與Tony Pari
22、si開發出可以顯示3D圖形的迷宮(Labyrinth)瀏覽器;1994年5月召開的第一屆萬維網年會上,Pesce、Parisi、Bell、Strauss與Intervista 軟件公司的Anthony Parisi等人,開始構思VRML。最開始VRML的原文為Virtual Reality Markup Language虛擬現實標記語言,后來才將Markup(標記)改為現在的Modeling(建模),使其更為名副其實;1994年10月召開的萬維網秋季會議上,SGI公司提出了由Mark Pesce起草的VRML草案,它是將Open Inventor的一個子集,加以修改和網絡功能擴充后的一種結果;
23、1995年5月8日該草案經過若干修改后成為萬維網標準VRML 1.0;1996年8月4日VRML聯盟(VRML Consortium Incorporated)又推出VRML 2.0;1998年1月VRML成為國際標準VRML97:(先推出來的只是標準的第1部分,標準的第2部分直到2004年3月3日才推出)ISO/IEC 14772-1:1997 Information technology - Computer graphics and image processing - The Virtual Reality Modeling Language - Part 1: Functional
24、specification and UTF-8 encoding 信息技術計算機圖形學和圖像處理虛擬現實建模語言第1部分:功能規格與UTF-8編碼ISO/IEC 14772-2:2004Information technology - Computer graphics and image processing - The Virtual Reality Modeling Language (VRML) - Part 2: External authoring interface (EAI)信息技術計算機圖形學和圖像處理虛擬現實建模語言第2部分:外部著作接口(EAI)5.5.2基本特性VRML
25、文件是一個基于時間的三維空間,包含了可以通過多種機制進行動態修改的圖形和聽覺對象。VRML具有如下的基本特性:VRML可以通過包含關系將多個文件(包括VRML文件和其他標準圖像、聲音和視頻文件等)組織在一起,層次性的包含關系使得創建任意大動態場景成為可能;VRML內建了支持多個分布式文件的多種對象和機制,適用于分布式環境;VRML采用C/S(客戶/服務器)訪問方式,實現了平臺無關性;VRML使用了(優于普通3D建模和動畫的)VR實時3D著色引擎,能提供更好的交互性。VRML還提供了6(3個方向的移動和轉動)+1(與其他三維空間的超鏈接)個自由度;VRML采用ASCII文本來描述場景和鏈接(似H
26、TML和XML)。也可以壓縮成.zip和.rar文件,還有二進制文件格式;VRML具有可伸縮性,能夠適應不同的硬件設備和網絡環境,還可以進行擴充(可以根據需要,來定義自己的對象及其屬性,并通過原型、描述語言等機制,使VRML瀏覽器能夠解釋這些對象及其行為)。5.5.3概念與結構虛擬現實VR(Virtual Reality虛擬現)的場景由節點(node)對象組成,有三類節點:用于視覺和聽覺等表現對象的感受器(sensor)節點;參與事件產生和路由機制、形成路由圖、確定世界隨時間推移如何動態變化的腳本(script)節點;(參見圖5-2)還有一類是把一組節點組織起來的分組(Grouping)節點,
27、它在節點之間形成了父子關系。參見圖5-3。圖5-2 場景圖事件體系中的事件流程Grouping分組Grouping分組Anchor錨Billboard布告版Collision碰撞Group組Inline內聯LOD細節層次Switch開關Transform變換子節點1子節點2子節點nSound聲音Sound Source聲源AudioClip音頻片斷MovieTexture影像紋理Material材質TextureTransform紋理變換Texture紋理ImageTexture圖像紋理MovieTexture影像紋理PixelTexture像素紋理Geometry幾何Box盒子Cone圓錐C
28、ylinder圓柱ElevationGrid高程網格Extrusion擠壓IndexedFaceSet索引面集IndexedLineSet索引線集PointSet點集Sphere球面Text文本Shape形狀Appearance外觀FontStyle字體風格Normal法線TextureCoordinate紋理坐標Color顏色Coordinate坐標圖5-3 場景圖的層次關系5.5.4使用方法VRML一般保存為單獨文件,通常用wrl(world)作為擴展名。需要VRML專用瀏覽器、或安裝了VRML插件的普通瀏覽器,才能瀏覽VRML文件。VRML的瀏覽器和插件,可以參考網頁: HYPERLIN
29、K /x3d/vrml/tools/viewers_and_browsers/ /x3d/vrml/tools/viewers_and_browsers/。VRML的訪問方式是基于客戶服務器模式,其中服務器提供后綴為.wrl的VRML文件及支持資源客戶通過網絡下載希望訪問的文件,并通過本地平臺上的VRML瀏覽器交互式訪問該文件描述的虛擬境界(Virtual World)。可以利用或標簽將VRML文件嵌入到HTML文檔中,也可在VRML文件中,使用腳本節點來引用編譯過的Java字節碼(VRML97),還可用Java Applet等與VRML瀏覽器進行通信(EAI)。下面是VRML瀏覽器的概念模型
30、(參見圖5-4):圖5-4VRML瀏覽器的概念模型5.5.5例子下面是一個VRML世界的簡單VRML例子(取自VRML1.0標準):VrmlWorld.wrl#VRML V1.0 asciiSeparator Separator # Simple track-light geometry: Translation translation 0 4 0 Separator Material emissiveColor 0.1 0.3 0.3 Cube width 0.1 height 0.1 depth 4 Rotation rotation 0 1 0 1.57079 Separator Mat
31、erial emissiveColor 0.3 0.1 0.3 Cylinder radius 0.1 height .2 Rotation rotation -1 0 0 1.57079 Separator Material emissiveColor 0.3 0.3 0.1 Rotation rotation 1 0 0 1.57079 Translation translation 0 -.2 0 Cone height .4 bottomRadius .2 Translation translation 0 .4 0 Cylinder radius 0.02 height .4 Spo
32、tLight # Light from above location 0 4 0 direction 0 -1 0 intensity 0.9 cutOffAngle 0.7 Separator # Wall geometry; just three flat polygons Coordinate3 point -2 0 -2, -2 0 2, 2 0 2, 2 0 -2, -2 4 -2, -2 4 2, 2 4 2, 2 4 -2 IndexedFaceSet coordIndex 0, 1, 2, 3, -1, 0, 4, 5, 1, -1, 0, 3, 7, 4, -1 WWWAnc
33、hor # A hyper-linked cow: name /CowProject/AboutCows.html Separator Translation translation 0 1 0 WWWInline # Reference another object name /3DObjects/cow.wrl 圖5-5是(安裝了SGI公司的Cosmo Player Control插件的)IE所輸出結果:圖5-5 “VRML世界”例子的輸出下面是一個紅色球體與藍色盒子相遇的例子(取自VRML97標準):SphereBox.wrl#VRML V2.0 utf8Transform childr
34、en NavigationInfo headlight FALSE # Well add our own light DirectionalLight # First child direction 0 0 -1 # Light illuminating the scene Transform # Second child - a red sphere translation 3 0 1 children Shape geometry Sphere radius 2.3 appearance Appearance material Material diffuseColor 1 0 0 # R
35、ed Transform # Third child - a blue box translation -2.4 .2 1 rotation 0 1 1 .9 children Shape geometry Box appearance Appearance material Material diffuseColor 0 0 1 # Blue # end of children for world輸出結果見圖5-6:圖5-6 “紅色球體與藍色盒子相遇”例子的輸出5.6 X3DX3D(eXtensible 3D,可擴展三維)與VRML都是網絡3D聯盟(Web3D Consortium, HYP
36、ERLINK / /)開發的圖形動畫描述語言。基于XML的X3D是VRML的發展和替代。XML(Extensible Markup Language 可擴展標記語言)是W3C(World Wide WebConsortium萬維網協會)于1998年制定的一種數據描述元語言的國際通用標準,已經獲得了非常廣泛的支持和應用。本書的14.2的第4小節和第17章將對XML作較為詳細的介紹。X3D是一個用XML描述的3D文件格式的開放標準,使得在所有網絡應用程序之間進行3D數據通信成為可能。與其前輩VRML相比,X3D標準更加成熟和精致。X3D包括4個部分:內核(核心特征集)、VRML 97特征集、應用程
37、序接口和擴展集。X3D實現了與VRML 97的兼容,能提供VRML 97瀏覽器的全部功能。5.6.1簡史下面是X3D發展過程的一個簡單描述:1995年5月VRML 1.0成為萬維網標準;1996年8月VRML聯盟(VRML Consortium Incorporated)推出VRML 2.0;1998年1月VRML成為國際標準VRML97(ISO/IEC 14772-1:1997);1998年2月W3C公布XML 1.0標準;1998年11月VRML聯盟更名為Web3D聯盟1999年2月Web3D聯盟啟動X3D計劃2002年7月Web3D聯盟發布X3D草案2002年12月X3D進入ISO審議2
38、004年8月9日X3D成為國際標準:ISO/IEC 19775-1:2004 Information technology - Computer graphics and image processing - Extensible 3D (X3D) - Part 1: Architecture and base components 信息技術計算機圖形學和圖像處理擴展3D(X3D)第1部分:體系結構和基本組件ISO/IEC 19775-2:2004 Information technology - Computer graphics and image processing - Extensi
39、ble 3D (X3D) - Part 2: Scene Access Interface (SAI) 信息技術計算機圖形學和圖像處理擴展3D(X3D)第2部分:場景訪問接口(SAI)2005年7月又推出X3D編碼的國際標準的前兩部分:ISO/IEC 19776-1:2005 Information technology - Computer graphics, image processing and environmental data representation - Extensible 3D (X3D) encodings - Part 1: Extensible Markup La
40、nguage (XML) encoding 信息技術計算機圖形學、圖象處理和環境數據表示擴展3D(X3D)編碼第1部分:可擴展標記語言(XML)編碼ISO/IEC 19776-2:2005Information technology - Computer graphics, image processing and environmental data representation - Extensible 3D (X3D) encodings - Part 2: Classic VRML encoding 信息技術計算機圖形學、圖象處理和環境數據表示擴展3D(X3D)編碼第2部分:經典的VR
41、ML編碼X3D編碼的第3部分還處于開發過程中:ISO/IEC CD 19776-3 Information technology - Computer graphics, image processing and environmental data representation - Extensible 3D (X3D) encodings - Part 3: Binary encoding 信息技術計算機圖形學、圖象處理和環境數據表示擴展3D(X3D)編碼第3部分:二進制編碼2006年將推出X3D語言綁定的國際標準:ISO/IEC 19777-1:2006 Information tech
42、nology - Computer graphics and image processing - Extensible 3D (X3D) language bindings - Part 1: ECMAScript 信息技術計算機圖形學、圖象處理和環境數據表示擴展3D(X3D)語言綁定第1部分:ECMAScriptISO/IEC 19777-2:2006 Information technology - Computer graphics and image processing - Extensible 3D (X3D) language bindings - Part 2: Java 信
43、息技術計算機圖形學、圖象處理和環境數據表示擴展3D(X3D)語言綁定第2部分:Java5.6.2特性X3D具有如下新特性:XML集成:Web服務、分布式網絡、跨平臺、交互應用文件和數據傳輸;組件化:允許輕量級內核3D運行時分發引擎;可擴展:適應特殊應用需要的標準化擴展集;進化:容易更新,并保留VRML97作為X3D的內容;廣播/嵌入應用就緒:從移動電話到超級計算機;實時:繪圖技術是高品質、實時、交互的,并且包括音頻和視頻以及3D數據;規范說明良好清晰:容易創建一致、相容、且無故障的實現。X3D技術可以讓小型的網絡客戶端支持高級3D應用,并可以將高性能的3D功能整合到廣播和嵌入式設備中。使用X3
44、D的緊湊型客戶端,還可以通過插件程序來創建標準化的構件以擴展功能。X3D被定義為可交互操作、可擴展、跨平臺的網絡3D內容標準。既然跨平臺,X3D標準自然少不了要大量使用Java技術,用其實現網絡3D技術的原理,就是通過瀏覽器執行程序來實時展現三維物體,程序直接將三維模型渲染后實時展示給用戶。5.6.3 功能X3D支持如下功能:3D圖形:多邊形幾何、參數幾何、層次變換、光照、材質、多遍/多級紋理映射、像素和頂點遮擋、硬件加速;2D圖形:空間化文本、2D矢量圖形、2D/3D合成;CAD數據:一種轉換CAD數據到出版和交互媒體的開放格式;動畫:計時器與插補器驅動連續動畫、擬人的動畫和變形;空間化音頻
45、和視頻:視聽源映射到場景幾何上;用戶交互:基于鼠標的檢取和拖帶、鍵盤輸入;導航:照相機/攝像機、用戶在3D場景中移動、碰撞、接近度與可見性檢測;用戶定義的對象:具有通過創建用戶定義的數據類型來擴展內置瀏覽器功能的能力;腳本:提供通過編程和腳本語言來動態改變場景的能力;聯網:提供由網絡資源構成單一X3D場景的能力、到其他場景或位于萬維網上的資源對象的超鏈接;物理模擬:擬人動畫、地理空間數據集、與DIS(Distributed Interactive Simulation發布室交互仿真)集成。5.6.4X3D與VRML和XMLX3D與VRMLX3D繼承了VRML的工作原理,而在描述和文件組織上發展
46、了新的形式(采用了XML語言)。 簡單的說,X3D是把VRML97分解為組件,并使用可加入新組件的機制,來擴展VRML97的功能。VRML與X3D最大的區別在于:VRML中瀏覽器讀取的不是三維數據而只是一種文本描述, X3D中采用的則是XML描述的實際三維數據。這樣就可以建立照片級的三維模型,而且還可通過壓縮技術將數據壓縮并實時播放,不用下載整個文件后才顯示三維對象。X3D與XML X3D的命名即意味著3D與XML的結合,XML最大的特點就是被標記的數據可以保持其含義,因而使不同的系統之間交換數據成為可能。Viewpoint的7種對場景參數和交互進行描述的部分就是基于XML的MTX文件。采用X
47、ML 作為 X3D 的描述語言可以解決如下問題:可移植性:除了 VRML,VRML97 語法幾乎不適合其他任何地方。VRML97 的語法和其基于的 Open Inventor 場景圖語法以及對象符號相似。然而現在占統治地位的語言是 XML,其標記對數據歸檔和移植提供了較長的生命周期。X3D任務組花了許多時間來尋找一種用XML描述VRML97節點的方式,最后通過了一個對應的DTD (Document Type Definition文檔類型定義);頁面整合性:在開發頁面時,基于XML頁面整合的系統,場景內容和執行都變得簡單;易于和下一代的網絡技術整合:W3C(World Wide Web Cons
48、ortium萬維網聯盟)的成員付出了很多努力去發展 XML,目前它已經獲得了最新版本的 Netscape、Mozilla 和 Internet Explorer 等瀏覽器的廣泛支持;廣泛的工具支持:X3D作為一種定義視覺信息的格式,可以用作演示一般產品信息。通過使用廣泛的例如樣式表之類的可用工具,可以使用任何常用的本地XML 格式進行工作,然后通過一定轉換步驟來使用3D方式查看。5.6.5X3D子集VRML具有單塊天性,為了一致性,它必須采用全部特征集。與此形成鮮明對照的是,X3D允許開發者支持規范的一個子集(側面Profile),構成模塊化功能(組件Components)。基于組件的體系結構
49、,支持可被個別支持的不同子集的創建。組件可以通過添加新的層次或新的組件來進行特定地擴展和修改,新組件可以引入新特性,例如流動。通過這種機制,規范的發展可以進行得很快,因為在一個領域的發展不會減慢整個規范。重要的是,一個特定內容塊的一致性,通過指定其內容所需的子集、組件和層次,而被明確定義。X3D的基準子集有:(參見圖5-7)交換:是應用程序之間通信的基本子集。他支持幾何、紋理、基本光照和動畫;交互:通過為用戶導航和交互添加各種感受器節點(如PlanseSensor、TouchSensor等)、增強型定時、和附加的光照(Spotlight、PointLight),提供與3D環境的基本交互;沉浸:
50、提供全三維圖形和交互,包括音頻支持、碰撞、煙霧和腳本;完整:包含全部定義節點,包括NURBS(Non-Uniform Rational B-Spline非均勻有理B樣條)、H-Anim(Humanoid Animation擬人動畫)和GeoSpatial(地理空間)組件。圖5-7 X3D的基準子集輔助X3D 子集有:MPEG-4交互:是一個專為廣播、手持設備和移動電話設計的小型交互子集的足印版本;CDF(CAD Distillation Format,CAD蒸餾格式):正在發展過程中,提供將CAD數據轉換成一個出版和交互媒體開放格式的能力。5.6.6體系結構X3D文件和/或流X3D文件和/或流
51、通過外部應用程序的事件經典VRML編碼二進制編碼X3D編碼分析器應用程序接口(API)場景訪問接口(內部)場景訪問接口(外部)新節點原型構造原型與外部原型X3D節點類型場景圖形管理器腳本引擎(ECMAScript、Java、其他)場景圖形數據結構事件圖形X3D瀏覽器圖5-8 X3D系統的體系結構圖5.6.7 接口層次X3DField SFBoolSFNodeX3DArrayField SFColorSFRotationMFBoolMFNodeSFColorRGBASFStringMFColorMFRotationSFDoubleSFTimeMFColorRGBAMFStringSFFloatS
52、FVec2dMFDoubleMFTimeSFImageSFVec2fMFFloatMFVec2dSFInt32SFVec3dMFImageMFVec2fSFMatrix3dSFVec3fMFInt32MFVec3dSFMatrix3fSFVec4dMFMatrix3dMFVec3fSFMatrix4dSFVec4fMFMatrix3fMFVec4dSFMatrix4fMFMatrix4dMFVec4fMFMatrix4fX3DBoundedObjectX3DMetadataObjectX3DUrlObjectX3DFogObjectX3DProgrammableShaderObjectX3DN
53、odeX3DProtoInstanceX3DAppearanceNode AppearanceX3DAppearanceChildNode FillPropertiesLinePropertiesX3DMaterialNode MaterialX3DTextureNode X3DTexture2DNodeImageTexture (X3DUrlObject)*MovieTexture (X3DSoundSourceNode, X3DUrlObject)*PixelTextureX3DTexture3DNodeComposedTexture3DImageTexture3D (X3DUrlObje
54、ct)*PixelTexture3DMultiTextureX3DEnvironmentTextureNodeComposedCubeMapTextureGeneratedCubeMapTextureImageCubeMapTexture (X3DUrlObject)*X3DTextureTransformNode TextureTransformTextureTransform3DTextureTransformMatrix3DMultiTextureTransformX3DShaderNodeComposedShader (X3DProgrammableShaderObject)*Pack
55、agedShader (X3DUrlObject, X3DProgrammableShaderObject)*ProgramShaderX3DGeometryNode Arc2DArcClose2DBoxCircle2DConeCylinderDisk2DElevationGridExtrusionGeoElevationGridIndexedLineSetLineSetPointSetPolyline2DPolypoint2DRectangle2DSphereTextTriangleSet2D X3DComposedGeometryNode IndexedFaceSetIndexedQuad
56、SetIndexedTriangleFanSetIndexedTriangleSetIndexedTriangleStripSetQuadSetTriangleFanSetTriangleSetTriangleStripSetX3DParametricGeometryNode NurbsCurveNurbsSweptSurfaceNurbsSwungSurfaceX3DNurbsSurfaceGeometryNode NurbsPatchSurfaceNurbsTrimmedSurfaceGeoOriginX3DGeometricPropertyNode X3DColorNode ColorC
57、olorRGBAX3DCoordinateNodeCoordinateCoordinateDoubleGeoCoordinateFogCoordinateHAnimDisplacerX3DNormalNode NormalX3DTextureCoordinateNodeMultiTextureCoordinateTextureCoordinateTextureCoordinateGeneratorTextureCoordinate3DTextureCoordinate4DX3DVertexAttributeNodeFloatVertexAttributeMatrix3VertexAttribu
58、teMatrix4VertexAttributeX3DFontStyleNode FontStyleMetadataDouble (X3DMetadataObject)MetadataFloat (X3DMetadataObject)*MetadataInteger (X3DMetadataObject)*MetadataSet (X3DMetadataObject)*MetadataString (X3DMetadataObject)*Contour2DNurbsTextureCoordinateX3DNurbsControlCurveNodeContourPolyline2DNurbsCu
59、rve2DShaderPart (X3DUrlObject)*ShaderProgram (X3DUrlObject, X3DProgrammableShaderObject)*X3DChildNodeX3DBindableNodeFog (X3DFogObject)*GeoViewpointNavigationInfoViewpointX3DBackgroundNode BackgroundTextureBackgroundLocalFog (X3DFogObject)*Inline (X3DUrlObject, X3DBoundedObject)*StaticGroup (X3DBound
60、edObject)*X3DShapeNode Shape (X3DBoundedObject)*X3DGroupingNode (X3DBoundedObject)*AnchorBillboardCADAssembly(X3DProductStructureChildNode)*CADLayerCADPart (X3DProductStructureChildNode)*Collision (X3DSensorNode)*EspduTransformGeoLocationGeoLODGroupHAnimJointHAnimSegmentHAnimSiteLODSwitchTransformNu
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 國際化品牌戰略-數字營銷KOL孵化與全球品牌推廣協議
- 航空港貨運場地租賃服務協議
- 留守兒童心理健康教育策略研究論文
- 大學大專畢業論文范文
- 家庭教育在心理健康教育中的重要性
- 課程標準與教材研究報告小學數學
- 教育敘事開題計劃
- 河北省高等教育教學改革研究與實踐項目
- 中職生心理健康課
- 適合小學語文教師講座
- 2025長沙市輔警考試試卷真題帶答案
- 胸痛健康教育課件
- 2025年合肥城建發展股份有限公司及所屬子公司招聘17人(二批次)筆試參考題庫附帶答案詳解
- 2025年項目終止協議
- 【上料機械手結構中的真空系統的設計計算案例1100字】
- 【7歷期末】安徽省合肥市包河區2023-2024學年部編版七年級下學期期末歷史試卷
- 2025年人教版小學數學三年級下冊期末考試卷(帶答案)
- 國家開放大學電大《國際私法》形考任務1-5題庫及答案
- 山東省濟南市歷城區2023-2024學年七年級下學期期末語文試題(解析版)
- 國家開放大學本科《理工英語4》一平臺機考第五大題寫作題總題庫
- 數學精彩兩分鐘-蝸牛爬井的故事.ppt
評論
0/150
提交評論