• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于模型檢測和Maya MEL腳本反饋機制的動漫渲染中間件開發(fā)

    2016-06-17 08:09:26洪志國王永濱石民勇
    關鍵詞:反饋中間件腳本

    洪志國,王永濱,石民勇

    (中國傳媒大學理工學部計算機學院,北京 100024)

    ?

    基于模型檢測和Maya MEL腳本反饋機制的動漫渲染中間件開發(fā)

    洪志國,王永濱,石民勇

    (中國傳媒大學理工學部計算機學院,北京 100024)

    摘要:基于模型檢測方法對動漫渲染計算中間件進行了建模,采用CTL(Computational Tree Logic,計算樹邏輯)對系統(tǒng)待驗證的性質進行了描述,并進一步通過SMV(Symbolic Model Verification,符號模型檢查)工具驗證了所構建模型的相關性質,進一步利用Maya軟件內嵌MEL腳本語言的渲染反饋機制,實現(xiàn)對外部INI文件的更新,在VC++環(huán)境下開發(fā)了動漫渲染計算中間件,基于定時器響應事件來周期性地讀取INI文件,實現(xiàn)了渲染計算進度的實時感知。該中間件具有易用性、可移植性的特點,支持渲染參數(shù)設置、渲染進度獲取和渲染結果查看等功能。

    關鍵詞:模型檢測;腳本;反饋;動漫渲染;中間件

    1引言

    渲染(Rendering)是一種計算機圖形生成技術,該技術是在計算機內建立的3D 幾何模型上附加一定的材質、紋理及色彩并加上光源通過計算機的計算生成具有真實感效果的場景圖形[1]。渲染具有“計算密集型”的特點:渲染復雜的三維場景將會占用大量的CPU和內存資源并且耗時較長,成為了影視特效和動漫制作輸出環(huán)節(jié)的“瓶頸”。為此,以“提升渲染速度”為目標,渲染技術依次經(jīng)歷了基于CPU 的渲染、基于GPU 的渲染、網(wǎng)絡渲染和三維集群渲染平臺如下4個階段[2]。分布式網(wǎng)絡環(huán)境或網(wǎng)格環(huán)境下搭建動漫渲染系統(tǒng)[3][4][5],支持用戶通過界面登錄系統(tǒng),將本地由Maya、3DS Max等建模軟件制作好的場景、模型、貼圖等文件上傳到服務器,通過集群渲染的方式完成渲染工作。

    考察渲染業(yè)務的整個過程,主要包括用戶提交作業(yè)、用戶上傳渲染工程文件和素材、渲染管理服務器根據(jù)網(wǎng)絡狀況和終端性能進行任務分解與分配、渲染節(jié)點執(zhí)行渲染任務、渲染結果文件下載等幾個階段[6]。渲染流程架構如圖1所示:

    圖1 典型的渲染流程架構

    渲染計算節(jié)點(包括散戶渲染客戶端和集群渲染節(jié)點)作為動漫渲染系統(tǒng)的重要組件,其性能優(yōu)劣直接影響到渲染系統(tǒng)的效率。如何能最大限度地提高分布式動漫渲染系統(tǒng)的效率是動漫制作者和渲染服務提供者共同追求的目標。較短的渲染時延能讓動漫制作者快速地欣賞其動漫作品的產(chǎn)品級渲染輸出,極大地改善了動漫制作者對動漫渲染系統(tǒng)的使用體驗。然而,在研發(fā)分布式動漫渲染系統(tǒng)環(huán)節(jié),往往因為頂層設計考慮不周、集成了不同的含Bugs的模塊等原因導致了系統(tǒng)運行時的異常?;诤诤袦y試和白盒測試等方式可以發(fā)現(xiàn)軟件中的部分Bugs,但因相關測試手段難以覆蓋所有可能路徑而難以發(fā)現(xiàn)部分潛在的Bugs。模型檢測(Model checking)方法從理論上保證了軟件中各模塊(線程)之間的時序邏輯,對提高軟件的健壯性和可用性具有重要的指導作用。模型檢測是一種面向有窮狀態(tài)并發(fā)系統(tǒng)的驗證技術,是形式化驗證中非常重要的一種方法。SMV一款流行的模型檢測分析軟件[7],它采用描述有限狀態(tài)并發(fā)系統(tǒng)的規(guī)范語言,支持對所建模型相關性質的驗證。

    動漫渲染系統(tǒng)中包含渲染計算節(jié)點、文件存儲節(jié)點等重要組件,以集中界面方式展現(xiàn)渲染計算各階段的進度是一種便捷的方式,將有利于用戶理解分布式動漫渲染環(huán)境的流程,改善用戶對渲染系統(tǒng)的使用體驗。

    為此,本文設計并實現(xiàn)了支持Maya制作場景的動漫渲染中間件:在開發(fā)的設計環(huán)節(jié)采用模型檢測方法[8][9][10],驗證了所構建模型及交互方式的正確性;在編碼實現(xiàn)環(huán)節(jié)利用Maya軟件內嵌MEL腳本語言的渲染反饋機制,實現(xiàn)對外部INI文件的更新,通過VC++開發(fā)環(huán)境支持的定時器響應事件實現(xiàn)對INI共享文件的周期性讀取,實時獲取了渲染計算的進度。該渲染計算中間件便于用戶采用“一鍵式渲染”,即點擊“開始渲染流程”后自動啟動渲染任務,將逐步完成“1.用戶上傳場景文件和貼圖集至FTP服務器”、“2.渲染計算節(jié)點從FTP服務器上下載場景文件和貼圖集”、“3.渲染計算節(jié)點執(zhí)行渲染”等過程,渲染結束后,用戶可以點擊“查看渲染結果”按鈕來欣賞渲染輸出。

    2基于模型檢測的渲染計算中間件設計

    如圖1所示,我們研發(fā)的渲染計算中間件適用于渲染計算節(jié)點(包括散戶渲染客戶端和集群渲染節(jié)點)的快速部署。

    我們以渲染計算模塊和作業(yè)監(jiān)控模塊為主要分析對象,基于SMV工具進行建模和分析。RenderComputing(渲染計算)模塊和JobMonitoring(作業(yè)監(jiān)控)模塊共同擁有作業(yè)狀態(tài)信息,可以對其進行操作。為了便于作業(yè)狀態(tài)信息的讀寫,使用INI格式的文件表示作業(yè)狀態(tài)信息文件,這兩個模型對該文件的操作也是互斥的。基于渲染計算的流程,分別構建了如圖2、圖3所示的有限狀態(tài)機。

    圖2 RenderComputing模塊受消息驅動的有限狀態(tài)機

    圖3 JobMonitoring模塊受消息驅動的有限狀態(tài)機

    2.1有限狀態(tài)機的消息定義

    如圖2所示,RenderComputing模塊的狀態(tài)集合為:{waiting,initializing,rendering,exiting };如圖3所示,JobMonitoring模塊的狀態(tài)集合為:{waiting,initializing,showprocessing,exiting}。

    2.2消息驅動分析

    程序中的兩個模塊中各狀態(tài)之間的轉移基于消息驅動原理,當轉移條件滿足時實現(xiàn)一個狀態(tài)向另一個狀態(tài)的遷移,否則該狀態(tài)處于自等待狀態(tài)。

    RenderComputing模塊和JobMonitoring模塊的相關響應消息為:

    S_Request:boolean,表示用戶提交的待渲染作業(yè)請求;

    S_Lock_JobResource:boolean,表示互斥訪問作業(yè)狀態(tài)信息文件的信號量;

    Num_RenderedFrames:0..100,表示渲染任務中已渲染的幀數(shù),設單個渲染任務的幀數(shù)最大值為100;

    S_RC_Ready:boolean,表示RenderComputing模塊是否已處于就緒狀態(tài)。

    圖2和圖3中的虛線文本框表示在狀態(tài)遷移過程中消息變量的變化情況。

    2.3系統(tǒng)的CTL屬性

    為了使用SMV對系統(tǒng)軟件進行檢測,我們給出了如下的規(guī)范描述:

    (1)Safety1:assert G ~(M_RC_Process.State=initializing & M_JM_Process.State=initializing);

    (2)Liveness1:assert G(M_RC_Process.State=rendering → F M_JM_Process.State=showprocessing);

    (3)Liveness2:assert G(Num_RenderedFrames<100 & Num_RenderedFrames>0 → F M_JM_Process.State=showprocessing);

    M_RC_Process和M_JM_Process分別表示RenderingComputing模塊和JobMonitoring模塊。

    其中(1)表示安全性,(2)(3)表示活性。

    G、F、—〉、&是CTL的符號:AG表示所有路徑上的所有狀態(tài),AF表示所有路徑上的最后狀態(tài);→表示邏輯蘊含,即可以推斷出某個結論。

    這些屬性的具體含義為:

    (1)safety1表示不存在RenderComputing模塊的狀態(tài)為“initializing(初始化)”、而且JobMonitoring模塊的狀態(tài)為“initializing(初始化)”的情況,這樣保證了對作業(yè)狀態(tài)信息文件的互斥訪問,避免了系統(tǒng)軟件運行時的異常。

    (2)Liveness1表示如果RenderComputing模塊完成rendering(渲染計算)后,那么最終會導致JobMonitoring模塊也會處于showprocessing(進度顯示)狀態(tài)。

    (3)Liveness2表示如果已完成渲染幀數(shù)在0-100之間,即渲染計算模塊處于開始渲染到結束渲染期間,那么最終JobMonitoring模塊進入showprocessing(進度顯示)狀態(tài)。

    2.4基于SMV的驗證

    根據(jù)圖2、圖3所示的有限狀態(tài)機編寫SMV格式的代碼,并在Windows XP上的SMV experimental release 10-11-02P46版工具進行驗證,得到如圖4所示的驗證結果:

    圖4 基于SMV的模型檢測結果

    從圖4可以看出,活性Liveness1、Liveness2和安全性Safety1的結果都為true,這說明根據(jù)渲染計算的流程所定義的RenderComputing模塊和JobMonitoring模塊是正確的、安全的。因此,據(jù)此設計渲染計算中間件的RenderComputing模塊和JobMonitoring模塊可以實現(xiàn)對渲染作業(yè)完成進度的實時獲取。

    3基于Maya MEL腳本反饋機制的動漫渲染中間件的編碼實現(xiàn)

    用戶將3D場景提交到動漫渲染系統(tǒng)中,渲染輸出的正確性和渲染系統(tǒng)的效率是用戶關注的重要問題。為了保證3D場景和其制作工具的良好兼容性,對于渲染作業(yè)進度的實時獲取通常需要充分利用制作工具所提供的API來實現(xiàn)。

    以Autodesk Maya 2009為例,實現(xiàn)渲染最常規(guī)的模式就是手動打開該軟件,點擊“渲染”按鈕執(zhí)行渲染,但是過程繁瑣,耗費時間和人力,此外還有兩種方式可以間接調用Maya軟件執(zhí)行實現(xiàn)三維動畫的渲染。下面簡單地分析和對比這兩種渲染方式:

    第一種是命令行渲染方式,即利用mayabatch render來實現(xiàn),它是通過在cmd窗口輸入命令行的方式來實現(xiàn)?!癕aya.exe”是Maya帶界面的完整應用程序,用cmd命令行方式進入Maya安裝程序目錄下,在命令行窗口中輸入“maya”將啟動完整的帶界面的Maya,但用戶可以通過調用mayabatch render程序,并設置相關參數(shù),在不啟動Maya完整版的情況下可以執(zhí)行渲染計算。在這種方式下,我們可以通過主程序和調用子程序“render.exe”之間的匿名管道通信方式,對匿名管道的信息進行循環(huán)讀取和分析來逐步計算出渲染進度。

    第二種,是通過MEL腳本語言來實現(xiàn)對場景文件的渲染。對于用戶來說,如果能夠實時觀察渲染的進度,無疑可以更好地從整體上把握渲染工作的節(jié)奏。而第一種通過命令行來進行渲染的,所以渲染進度不能直觀的體現(xiàn)在用戶面前,使得用戶難以觀察渲染的具體進度。MEL是Maya的腳本語言,是用戶與Maya內部機制交流的通道,而且是一種強大的命令語言,讓你直接控制Maya的特征、進程和工作流程,可以更好地執(zhí)行渲染任務。為此,利用MEL腳本語言在渲染計算過程中的反饋機制實現(xiàn)對渲染進度的實時感知是較第一種渲染方式更為便捷和易于理解的方案。

    3.1利用Maya渲染選項的PostRender腳本

    調用Autodesk Maya 2009的render.exe程序進行渲染計算,在此過程中我們利用Maya渲染設置中PostRender選項支持的MEL語句。

    圖5 Maya渲染設置中的PostRender選項

    在如圖5所示PostRender選項中“Post render frame MEL:”編輯框中輸入:“exec(“C:\MayaRenderingMiddleWare\UpdateJobStatus\Debug\UpdateJobStatus.exe”)”。利用“UpdateJobStatus.exe”可以實現(xiàn)Maya在渲染完每一幀后,實現(xiàn)對“C:MayaRenderingMiddleWareUpdateJobStatusJobStatus.ini”配置文件中的“RenderedFrames”(已渲染幀數(shù))參數(shù)實現(xiàn)自動加1。進一步在VC++環(huán)境下開發(fā)的渲染中間件主程序設置200毫秒的定時器(Timer),即每隔200毫秒就會觸發(fā)一次事件,這樣在OnTimer事件中讀取“C:MayaRenderingMiddleWareUpdateJobStatusJobStatus.ini”配置文件中的“RenderedFrames”參數(shù),可以實現(xiàn)實時動態(tài)獲取Maya當前渲染進度的功能。

    3.2主要功能測試

    (1)設置渲染任務參數(shù)

    打開JobStatus.ini配置文件,設置渲染參數(shù)包括渲染總幀數(shù)、渲染起始幀、渲染結束幀、渲染輸出圖片寬度像素值、渲染輸出圖片高度像素值等,具體數(shù)值如圖6所示。

    圖6 渲染參數(shù)設置

    (2)執(zhí)行渲染計算

    基于render.exe對指定的Maya場景文件man.mb執(zhí)行渲染計算,帶參數(shù)的渲染命令顯示窗口如圖7所示。

    圖7 帶參數(shù)的渲染命令顯示窗口

    C:Program FilesAutodeskMaya2009in下的render.exe渲染執(zhí)行程序將C:MayaRenderingMiddleWareSceneDownloadcrazyoldman目錄下的man.mb文件進行渲染,渲染結束后,將起始幀為1、結束幀為8、jpg格式、渲染輸出圖片寬度像素值為1024、渲染輸出圖片高度像素值為768的圖片輸出到“C:MayaRenderingMiddleWareScene enderoutput”目錄下。

    開始執(zhí)行渲染計算的窗口如圖8所示。

    圖8 “render.exe”開始渲染計算的界面

    我們研發(fā)的渲染計算中間件能實時地感知渲染計算進度,在總渲染任務為8幀、已渲染完成7幀時的進度情況如圖9所示。

    圖9 渲染計算完成87.5%時的中間件界面

    全部完成8幀渲染任務時的進度情況如圖10所示。

    圖10 渲染計算全部完成時的中間件界面

    如圖10所示,中間件給出了8幀渲染任務、輸出1024×768分辨率圖像的渲染總耗時情況,該次渲染的總耗時為5分10秒109毫秒。

    (3)查看渲染輸出

    點擊“查看渲染結果”,在“C:MayaRenderingMiddleWareScene enderoutput”目錄下可以看到渲染輸出,其中8張圖片序列如圖11所示。

    圖11 渲染輸出的8張圖片序列

    4結論

    本文設計并實現(xiàn)了面向Maya制作場景的渲染中間件。在開發(fā)設計階段,利用模型檢測方法對RenderComputing模塊和JobMonitoring模塊進行了建模和分析:基于渲染計算的流程,構建了RenderComputing模塊和JobMonitoring模塊的有限狀態(tài)機并開展了相關分析,利用CTL描述系統(tǒng)的安全性和活性,進一步使用SMV模型檢測工具驗證了所設計模型及交互方式的正確性;在中間件的編碼實現(xiàn)階段,利用Maya MEL腳本語言提供的渲染反饋機制,通過INI文件共享方式,實現(xiàn)了對渲染計算進度的實時獲取,該中間件同時支持用戶的“一鍵式渲染”快捷操作,提供了渲染耗時統(tǒng)計、渲染輸出查看等功能。

    參考文獻

    [1]李樹聲.網(wǎng)絡集群渲染的技術優(yōu)勢[J].現(xiàn)代電視技術,2004,(10):110-111.

    [2]王永濱,石民勇,洪志國.網(wǎng)絡環(huán)境下集群渲染技術綜述[J].微電子學與計算機,2008,(9):81-83.

    [3]Chong A,Sourin A,Levinski K.Grid-based computer animation rendering[C].Proceedings of GRAPHITE 2006,Kuala Lumpur,Malaysia,November 29 - December 02,2006:39-47.

    [4]Gooding S L,Arns L,Smith P,et al.Implementation of a Distributed Rendering Environment for the TeraGrid[C].Proceedings of IEEE Challenges of Large Applications in Distributed Environments(CLADE),Paris,F(xiàn)rance,2006:13-21

    [5]Glez-Morcillo C,Vallejo D,Albusac J.et al.A New Approach to Grid Computing for Distributed Rendering[C].Proceedings of 2011 International Conference on P2P,Parallel,Grid,Cloud and Internet Computing(3PGCIC 2011),Barcelona,Catalonia,Spain,October 26-28,2011:9-16.

    [6]王永濱,洪志國,曹軼臻,王琦,李櫻.面向廣域網(wǎng)的動漫渲染任務分解支持方法及實現(xiàn)系統(tǒng)[P].中國專利:CN201010543756.2,2011-06-08.

    [7]K L McMillan.The SMV language [M].California:Cadence Berkeley Labs,1999.

    [8]林惠民,張文輝.模型檢測:理論、方法與應用[J].電子學報,2002,S1:1907-1912.

    [9]楊瑩,王永濱,閆堅,于寧.SMV在開發(fā)數(shù)字電視硬盤機頂盒中的應用[J].系統(tǒng)仿真學報,2005,17(z1):190-192,203.

    [10]馬玲.分布式在線動漫渲染系統(tǒng)及模型檢驗[D].中國傳媒大學碩士學位論文,2010.

    (責任編輯:王謙)

    Development of Model Checking and Maya MEL Script Feedback Mechanism-based Animation Render Computing Middleware

    HONG Zhi-guo,WANG Yong-bin,SHI Min-yong

    (School of Computer,F(xiàn)aculty of Science and Engineering,Communication University of China,Beijing 100024,China)

    Abstract:Model checking-based methodology is introduced to model animation rendering computing middleware.The properties to be verified of system is described using CTL(Computational Tree Logic).Moreover,the related properties are verified with SMV(Symbolic Model Verification).Furthermore,the Maya MEL Script language’s rendering feedback mechanism is utilized to update the related external INI configuration file.Furthermore,the animation rendering computing middleware is developed under the environment of VC++.Based on the timer response event,it can read the INI file information which achieves the real-time progress of rendering calculation.This software has the characteristics of friendly interface and easy deployment,and it supports the functions of setting parameters,acquiring rendering process and viewing rendering output files etc.

    Keywords:model checking;script;feedback;animation rendering;middleware

    收稿日期:2015-12-18

    基金項目:國家科技支撐計劃課題(2012BAH37F02);中國傳媒大學優(yōu)秀中青年教師培養(yǎng)工程(YXJS201508);中國傳媒大學理工科規(guī)劃項目(3132015XNG1504)

    作者簡介:洪志國(1977-),男(漢族),湖北黃岡人,中國傳媒大學副教授,博士.E-mail:hongzhiguo@cuc.edu.cn

    中圖分類號:TP311.1

    文獻標識碼:A

    文章編號:1673-4793(2016)02-0025-06

    猜你喜歡
    反饋中間件腳本
    酒駕
    安奇奇與小cool 龍(第二回)
    數(shù)據(jù)庫系統(tǒng)shell腳本應用
    電子測試(2018年14期)2018-09-26 06:04:24
    RFID中間件技術及其應用研究
    電子制作(2018年14期)2018-08-21 01:38:10
    基于VanConnect中間件的設計與開發(fā)
    電子測試(2018年10期)2018-06-26 05:54:02
    快樂假期
    中學生(2017年19期)2017-09-03 10:39:07
    對“未來教室”的初步探索
    考試周刊(2016年86期)2016-11-11 09:33:05
    妙用“表揚”和“忽視”
    從運動心理學的角度
    體育時空(2016年8期)2016-10-25 20:29:41
    媒介融合背景下的分眾傳播與受眾反饋
    今傳媒(2016年9期)2016-10-15 22:37:20
    德兴市| 正宁县| 五指山市| 江阴市| 泰宁县| 宝鸡市| 仁怀市| 桑日县| 新竹市| 洪洞县| 高密市| 澄迈县| 台南市| 兴义市| 彝良县| 云安县| 吉林省| 河北省| 温泉县| 新宁县| 塔城市| 林口县| 昔阳县| 织金县| 天等县| 温泉县| 贡嘎县| 安化县| 武定县| 获嘉县| 株洲市| 凭祥市| 望都县| 小金县| 长春市| 永福县| 色达县| 普洱| 香港 | 正定县| 威海市|