• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于3DS MAX Script語言的三維表面附著運動仿真

      2010-11-27 06:56:22馬純永齊永陽
      地理空間信息 2010年2期
      關鍵詞:山體按鈕軌跡

      鄭 雪,馬純永,齊永陽,韓 勇,陳 戈

      (1.中國海洋大學信息科學與工程學院海洋技術系,山東青島266100;2.中國海洋大學海洋遙感教育部重點實驗室,山東青島266100)

      基于3DS MAX Script語言的三維表面附著運動仿真

      鄭 雪,馬純永,齊永陽,韓 勇,陳 戈

      (1.中國海洋大學信息科學與工程學院海洋技術系,山東青島266100;2.中國海洋大學海洋遙感教育部重點實驗室,山東青島266100)

      3DS MAX是當前三維動畫制作的主流平臺。以物體在山體表面運動為例,完成了附著山體運動的仿真。利用3DS MAX Script語言,獲取物體當前平面坐標對應的地形高程值,自動調(diào)節(jié)物體的高度,并實現(xiàn)了運動的實時性,克服了3DS MAX尚不存在碰撞檢測的不足,取代了人工手動調(diào)節(jié),大大提高了動畫的制作效率。

      GIS;3DS MAX Script;附著運動;實時渲染;仿真;動畫

      近年來,三維動畫作為一種媒體得到了迅速發(fā)展,除了單純的三維影視,越來越多的行業(yè)提出了對三維動畫的需求,如:教育、宣傳、廣告、娛樂等。3D Studio MAX(簡稱3DS MAX)是AUTODESK公司出品的一個大型三維動畫制作軟件[1]。但是,在3DSMAX的交互環(huán)境中,無法建立批處理工具,開發(fā)人員也無法從一些簡單重復的工作中解脫出來。例如,難以建立一次可以渲染多個場景的文件;難以模擬有上千個球體的星系;難以生成逼真的群鳥飛翔的動畫;難以使物體按某個特定的數(shù)學曲線運動。MAX Script作為3DSMAX的輔助開發(fā)工具的出現(xiàn),為開發(fā)者提供了很大的空間,一定程度上解決了以上問題[2]。

      二十世紀后期,三維計算機圖像技術的出現(xiàn),極大地拓展了動漫的空間表達能力。隨著人們對海洋的關注與研究,國內(nèi)外對海洋的重視程度越來越高,海洋動漫也成為了藝術和技術上研究與開發(fā)的新熱點?!缎『}斅魏5资澜纭肥腔谇鄭u信息產(chǎn)業(yè)專項資金項目“交互式三維海洋動漫軟件系統(tǒng)的研發(fā)與應用”而制作的全新高清三維動漫片。該劇主要采用3DSMAX創(chuàng)建角色模型,講述了一只善良的小海龜在尋親途中,經(jīng)歷了一系列的海底探險。制作過程中,有的場景需要小海龜翻山越嶺,制作動畫時,需要小海龜在移動過程中貼著山體,否則將脫離地面,造成不真實的感覺。如果單用3DSMAX建模實現(xiàn),需要手動將海龜?shù)囊苿勇窂秸{(diào)整,以保證海龜既不陷入地下,又不在空中漂浮,工作重復且工作量巨大。針對該問題,本文利用MAX Script語言獲取海龜當前平面坐標對應的地形高程值[3],并自動調(diào)節(jié)海龜?shù)母叨?,實現(xiàn)海龜在移動過程中附著在山體的表面,大大提高了動畫的制作效率。

      1 MAXS cript語言簡介

      MAX Script是3DS MAX的內(nèi)置腳本語言,它為用戶提供了以下功能[4]:

      1)腳本化3DSMAX各方面用途,如建模、動畫、材質(zhì)、渲染等。

      2)通過命令行shell窗口交互控制3DS MAX。

      3)軟件包將在自定義工具面板菜單欄或無模式窗口中腳本化,從而為它們提供標準3DSMAX用戶界面。

      4)使用內(nèi)置文件I/O構(gòu)建自定義導入/導出工具。

      5)編寫可以訪問整個場景狀態(tài)的程序控制器,構(gòu)建批處理工具,如批處理渲染腳本。

      6)使用OLE自動化設置與外部系統(tǒng)的實時連接。

      MAX Script語言是專為補充3DS MAX精心設計的,它是面向?qū)ο蟮?,并且擁有特殊的功能和?gòu)造,反映了3DSMAX用戶界面中的高級概念。MAX Script語言編輯器直接嵌入在3DSMAX中,在3DSMAX的菜單欄中包含“MAX Script”選項,運行其下拉菜單中的“新建腳本”,即可彈出MAX Script語言編輯窗口。在編輯窗口中輸入程序代碼,按“Ctrl+E”鍵運行程序。還可以利用MAX Script語言編輯器中的MAX Script偵聽器來編輯運行程序。

      2 系統(tǒng)關鍵技術及功能

      2.1 系統(tǒng)關鍵技術

      1)系統(tǒng)界面的創(chuàng)建。本系統(tǒng)以物體附著在類似山體的表面上運動為例,因此,系統(tǒng)一級界面有“附著運動”、“山體參數(shù)調(diào)節(jié)”和“運動軌跡調(diào)節(jié)”3個卷欄,點擊會進入下一級界面,其中“運動軌跡調(diào)節(jié)”是本系統(tǒng)的核心。創(chuàng)建用戶界面是為了實時控制物體的運動狀態(tài)及軌跡。在創(chuàng)建用戶界面時,首先應明確物體附著在山體表面上運動時,可以改變的參數(shù)有哪些,包括山體長寬,表面曲率運動軌跡等。其次,考慮應設計卷欄中各參數(shù)的修改范圍和表現(xiàn)形式,如label(標簽),spinner(微調(diào)器),button(按鈕)等。

      2)運動場景中模型、運動軌跡的創(chuàng)建及參數(shù)調(diào)節(jié)。我們需要編寫一段代碼自動生成運動附著的表面和運動軌跡。本系統(tǒng)我們以山體表面為例,進入“附著運動”的子菜單,“創(chuàng)建山體表面”和“創(chuàng)建運動軌跡”便可實現(xiàn)此創(chuàng)建功能。而“山體參數(shù)調(diào)節(jié)”卷欄可以實現(xiàn)山體長、寬和曲率的調(diào)節(jié)。

      3)運動的實時性。物體在山體表面的附著運動方程由于不能求得解析解,故很難利用3DSMAX中的控制動畫器,利用表達式動畫難以實現(xiàn),但是考慮到實時運算會影響系統(tǒng)速度,故而最終決定采用關鍵幀動畫。本系統(tǒng)通過animateon函數(shù)打開動畫設置,通過一個循環(huán)定義關鍵幀,然后通過函數(shù)attime為每一幀賦值。

      2.2 系統(tǒng)功能介紹

      本系統(tǒng)的一級界面有“附著運動”、“山體參數(shù)調(diào)節(jié)”和“運動軌跡調(diào)節(jié)”3個卷欄。 “附著運動”卷欄下有“創(chuàng)建山體表面”、“創(chuàng)建運動軌跡”和“渲染效果預覽”按鈕,由此可以實現(xiàn)運動場景中山體模型、運動軌跡的創(chuàng)建和創(chuàng)建后效果的預覽,考慮到直接渲染大尺寸位圖速度較慢,故建立了一個130×130的預覽窗口并且尺寸可以隨時調(diào)整,點擊“渲染效果預覽”按鈕,則按照設定尺寸渲染一幅小圖片,以便觀察最終效果。

      “山體參數(shù)調(diào)節(jié)”卷欄有3個控制器,分別控制著山體表面長、寬、曲率的調(diào)節(jié)。在本組卷欄中,設定了山體表面長、寬兩個數(shù)值輸入框,其默認值為:長:100;寬:100;曲率:16,點擊按鈕上兩個箭頭時可以使數(shù)值增加或降低。

      “運動軌跡調(diào)節(jié)”卷欄是本系統(tǒng)的核心,通過它可以實現(xiàn)物體運動軌跡的任意性。最后,通過使用關鍵幀動畫實現(xiàn)其運動的實時性,該按鈕調(diào)用3DSMAX渲染器,可根據(jù)需要渲染成不同尺寸大小的單幀圖片或動畫文件,也可生成體視動畫。

      3 附著山體運動系統(tǒng)的設計和實現(xiàn)

      3.1 系統(tǒng)設計思路分析

      本系統(tǒng)的設計思路是,首先通過調(diào)用rollout等函數(shù)來創(chuàng)建系統(tǒng)各級界面,其次,創(chuàng)建好山體表面和運動軌跡后,使用patch_deform_binding和normalize命令對山體的形態(tài)參數(shù)進行設置,再調(diào)用 spline_ik_control等函數(shù)對山體表面和運動軌跡進行調(diào)節(jié),然后使用patch_deform_binding命令將運動軌跡綁定到山體表面上,最后,創(chuàng)建運動物體,設置附著運動動畫。設置好后,點擊“播放動畫”按鈕可觀看運動過程。系統(tǒng)設計流程圖如圖1所示。

      3.2 MAX Script腳本代碼編寫

      使用MAX Script語言開發(fā)文件管理程序包括編寫源文件、源文件編譯與源文件運行 [5]:

      1)源文件編寫點擊New Script按鈕,出現(xiàn)MAX Script文本窗口,輸入源程序;

      2)源文件編譯;

      3)源文件運行:保存編譯后的源程序,點擊Run Script按扭,運行程序。

      3.2.1 創(chuàng)建運動軌跡

      圖1 系統(tǒng)設計流程圖

      步驟1定義自定義函數(shù),判斷鼠標在視圖中拖拽過程中停頓點的坐標,并在該坐標添加一個點加入軌跡曲線。

      步驟2在鼠標第一次點擊左鍵的坐標處,生成軌跡曲線的起點,然后調(diào)用步驟1中自定義的函數(shù),生成完整的軌跡曲線。

      1)定義get_mouse_pos函數(shù),函數(shù)包含2個位置參數(shù),old_pen_pos和pen_pos,分別代表前一點的坐標和鼠標當前點的坐標。

      2)判斷全局參數(shù)second_knot_set的狀態(tài),來添加或者改變軌跡曲線上的點。second_knot_set代表的意義為當前點是否為軌跡曲線的第二個點,因為生成軌跡曲線時,并不知道軌跡曲線的第二點坐標,但生成的曲線須包含 2個點以上,故在生成曲線時默認將曲線第2個點與曲線第1個點重合,當鼠標拖拽后,則根據(jù)全局參數(shù) second_knot_set的狀態(tài)決定是將鼠標拖拽的新點坐標賦給曲線的第2個點,還是在該坐標上給軌跡曲線添加新點。

      3)定義draw_new_line函數(shù),這個函數(shù)的作用就是設置一個鼠標移動Callback程序來跟蹤鼠標移動。該Callback程序就是通過get_mouse_pos函數(shù)的參數(shù)來跟蹤鼠標的移動。

      3.2.2 添加實時渲染命令的程序

      整個動畫時間為100幀,下面這段程序就是利用自動滑動時間滑塊,并在每一幀渲染動畫,然后將渲染的bitmap輸出到rollout的bitmap插件框中,從而達到實時渲染的目的。

      4 實驗結(jié)果

      打開3DS MAX軟件,在MAXScript菜單欄里選擇Run Script,找到程序所在的文件夾,運行本程序。點擊3DS MAX中的“Run Script”按鈕后,將出現(xiàn)本程序生成的系統(tǒng)界面。系統(tǒng)一級界面有“附著運動”、“山體參數(shù)調(diào)節(jié)”和“運動軌跡調(diào)節(jié)”3個卷欄,點擊會進入下一級界面,如圖2所示。

      運行界面上的“創(chuàng)建山體表面”按鈕,自動生成圖 3中上面的山體,然后,拖動“山體參數(shù)調(diào)節(jié)”卷欄中的“山體表面曲率”的滑塊,可以將所生成山體表面的曲率進行任意調(diào)節(jié)。圖 3中下面的圖即為將生成的山體表面曲率調(diào)高后的效果。

      在對山體表面進行完一系列調(diào)節(jié)后,我們可以通過點擊“運動軌跡調(diào)節(jié)”卷欄下的“軌跡調(diào)節(jié)”按鈕,然后按住左鍵拖曳鼠標創(chuàng)建任意的運動軌跡。軌跡創(chuàng)建完成后,通過點擊“綁定曲面”按鈕并手動拾取需要綁定的曲面即可將剛才創(chuàng)建的運動軌跡綁定到曲面上。然后,點擊“設置動畫”按鈕自動生成運動物體,并且將此物體的運動軌跡設置為我們剛才創(chuàng)建的運動軌跡。最后,點擊“播放動畫”按鈕即可看到我們所設置的運動動畫。運動截圖如圖4所示。

      圖2 系統(tǒng)界面效果圖

      圖3 山體曲率調(diào)節(jié)效果圖

      圖4 附著運動動畫效果圖

      5 結(jié)論與展望

      3DSMAX強大的建模功能眾所周知,但關于MAX Script應用的介紹則相對很少。應用MAX Script編程來實現(xiàn)動畫控制的功能,而不是采用通常使用的動畫編輯器來控制動畫,將復雜的運動用簡單明了的動畫顯示,不僅物理概念明晰,而且具有直觀、易于理解的特點。

      本文通過調(diào)用rollout等函數(shù)創(chuàng)建自定義界面,通過MAX Script編程添加normalize命令和animateon函數(shù)等,實現(xiàn)了對虛擬山體參數(shù)的調(diào)節(jié)和三維物體附著山體表面運動動畫設置。在功能上,實現(xiàn)了物體附著在虛擬山體表面的實時運動。同時,本文的研究結(jié)果在三維數(shù)字動漫劇《小海龜漫游海底世界》中得到了很大應用,實現(xiàn)了小海龜翻山越嶺的場景,極大地提高了工作效率。在本系統(tǒng)后續(xù)的開發(fā)中,將進一步提高運動物體的仿真效果,添加多面片的碰撞檢測及附著功能,使其在動畫制作中獲得更好的表現(xiàn)效果,得到更廣泛的應用。

      [1] Tamg Y S,Tsai H L,Yeh S S.Modeling,optim ization and classification of weld quality in tungsten inert gas welding[J].International Journal Machine Tools&Manufacture,1999(39):1 427-1 438

      [2] Barnsley M F,Demko S.Rational approximations of fractals[J]. Lecture Notes in Math,1984(1105):73-88

      [3] 王琦.電腦動畫工作室.3DSMAX5白金手冊[M].北京:北京科海電子出版社,2002

      [4] 黃心淵.3DSMAX高級編程—使用腳本制作動畫[M].北京:清華大學出版社,2004

      [5] 王華.3DS MAXScript腳本語言完全學習手冊[M].北京:兵器工業(yè)出版社,2006

      Adherent M ovement Simulation on 3D Surface Based on 3DSMAX Script Language

      ZHENG Xue,MA Chunyong,QI Yongyang,HAN Yong,CHEN Ge
      (1.Depart me nt of Ma rineTe c hnology,College of Infor ma tion Science & Engi neering,Ocean Unive rsity of China,Qing dao 266100,China;2.Ocean Remo te Sen sing Insti tute,Ocean Uni versity of China,Qing dao 266100,China)

      3DS MAX is now the mainstream platform of three-dimensional animation.This paper completed the adherentmovement simulation using an instance of object's movementon surfaceof mountains.Using 3DS MAX Script language,it obtained the corresponding terrain height valueof object's currentplane coordinate,adjusted the object's heightautomatically,realized the real-time romanceof themovement,overcome thedeficiency of collision detection of 3DS MAX,replaced the h and -manual regulations, and greatly increased the efficiency of animations.

      GIS;3DS MAX Script;adherent movement;real-time romance;simulation;animation

      2009-10-20

      項目來源:青島市信息產(chǎn)業(yè)專項資金資助項目(C-2007-001)。

      P208

      B

      1672-4623(2010)02-0106-04

      鄭雪,碩士,研究方向為數(shù)字動漫、虛擬現(xiàn)實。

      猜你喜歡
      山體按鈕軌跡
      哪個是門鈴真正的按鈕
      當你面前有個按鈕
      軌跡
      軌跡
      濟南市山體修復中的植物應用與技術——以濟南市臥虎山山體公園為例
      軌跡
      死循環(huán)
      進化的軌跡(一)——進化,無盡的適應
      中國三峽(2017年2期)2017-06-09 08:15:29
      山體別墅設計分析
      人間(2015年21期)2015-03-11 15:23:42
      內(nèi)心不能碰的按鈕
      丽水市| 鸡东县| 银川市| 神池县| 普陀区| 霍城县| 平南县| 陇川县| 基隆市| 偃师市| 额济纳旗| 东方市| 孙吴县| 天全县| 万全县| 汤阴县| 尼玛县| 汤原县| 娄底市| 杂多县| 舞钢市| 武清区| 兖州市| 名山县| 通州市| 治县。| 临高县| 北宁市| 太湖县| 鄂温| 武清区| 辽中县| 左云县| 滦南县| 芷江| 汤原县| 泸州市| 苍梧县| 芜湖市| 项城市| 杭州市|