欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

go語(yǔ)言json文件 golang jsonpath

go語(yǔ)言應(yīng)用場(chǎng)景_MEL語(yǔ)言在Maya場(chǎng)景設(shè)計(jì)中的應(yīng)用

[摘 要]本文針對(duì)具體的場(chǎng)景設(shè)計(jì),引入MEL語(yǔ)言,詳細(xì)闡述了Maya的二次開(kāi)發(fā)的流程,通過(guò)比較進(jìn)而說(shuō)明基于三維設(shè)計(jì)軟件平臺(tái)的二次開(kāi)發(fā)在三維設(shè)計(jì)建模中的可用性。 [關(guān)鍵詞]MayaMEL語(yǔ)言場(chǎng)景設(shè)碧棗計(jì)

成都創(chuàng)新互聯(lián)于2013年創(chuàng)立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目做網(wǎng)站、網(wǎng)站建設(shè)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元宜城做網(wǎng)站,已為上家服務(wù),為宜城各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18980820575

[中圖分類號(hào)]TP[文獻(xiàn)標(biāo)識(shí)碼]A[文章編號(hào)]1007-9416(2010)03-0065-03

1 引言

Maya 作為Alias―Wavefront 的旗艦產(chǎn)品,現(xiàn)已成為國(guó)際3D 設(shè)計(jì)制作界的主流軟件。它適用于專業(yè)角色動(dòng)畫(huà)、電影特技、影視廣告等。并以其靈活、開(kāi)放、高速和高效而備受推崇。

MEL 是Maya Embedded Language (Maya嵌入式語(yǔ)言)的縮寫(xiě),是一種強(qiáng)大的命令和腳本語(yǔ)言,讓你直接控制Maya 的特征、進(jìn)程和工作流程。Maya界面的幾乎每一個(gè)要點(diǎn)都是在MEL指令和腳本程序上建立的。由于Maya給出了對(duì)于MEL自身的完全的訪問(wèn),你可以擴(kuò)展和定制Maya。通過(guò)MEL,你可以進(jìn)一步開(kāi)發(fā)Maya使它成為你和你的項(xiàng)目的獨(dú)特而創(chuàng)新的環(huán)境[1]。

2 MEL語(yǔ)言對(duì)Maya的進(jìn)一步開(kāi)發(fā)

目前的主流動(dòng)畫(huà)設(shè)計(jì)軟件都或多或少的給用戶提供了一個(gè)編程接口以進(jìn)行開(kāi)發(fā)。Maya則使用MEL語(yǔ)言對(duì)其進(jìn)行開(kāi)發(fā)。MEL作為一種腳本語(yǔ)言,受腳本解釋器(Command Engine)和Maya內(nèi)置命令的影響,還是有很多局限的。MEL不能使用ActiveX插件,還只能根據(jù)Maya中已有的命令(dll或mll中注冊(cè)過(guò)的命令)進(jìn)行擴(kuò)展,無(wú)法直接調(diào)用dll模塊中的函數(shù)。我們平常使用的dll或exe程序文件是經(jīng)過(guò)編譯器優(yōu)化的二進(jìn)制文件,命令的執(zhí)行速度非常快,而MEL腳本語(yǔ)言是文本,有一個(gè)腳本解釋器分析的過(guò)程,命令的執(zhí)行速度較慢,大約要慢20倍。MEL不支持指針,不能對(duì)內(nèi)存進(jìn)行直接操作。這就導(dǎo)致了很多方面的效率超級(jí)低下,對(duì)內(nèi)存的間接操作可能會(huì)使運(yùn)行速度降低100倍甚至1000倍以上。不過(guò)這樣也有一個(gè)不容爭(zhēng)辯的好處,就是不會(huì)產(chǎn)生內(nèi)存泄漏,保障了Maya的穩(wěn)定性。盡管如此,考慮到MEL在場(chǎng)景設(shè)計(jì)中的許多優(yōu)勢(shì),如快速搭建重復(fù)的場(chǎng)景,MEL仍不失為一個(gè)公認(rèn)的選祥慧洞擇。

2.1 流程簡(jiǎn)化

Maya中的所有的按鈕命令都是通過(guò)MEL來(lái)調(diào)用的,你可以記錄并把其中一些命令組合起來(lái),通過(guò)一鍵或按鈕來(lái)自動(dòng)執(zhí)行這一組命令,就像PhotoShop里的Actions一樣。在場(chǎng)景設(shè)計(jì)中,有些環(huán)節(jié)步驟非常繁瑣,通過(guò)MEL命令將這些步驟整的命令整合在一起,大大簡(jiǎn)化了操作的流程。

2.2 功能擴(kuò)展

對(duì)謹(jǐn)枯于一個(gè)項(xiàng)目來(lái)說(shuō),必然有各種特定的需求,這些是Maya庫(kù)中的基本工具所不能滿足的,但是MEL可以按用戶需求編輯設(shè)計(jì)各種細(xì)微的場(chǎng)景并封裝成塊調(diào)用,這大大擴(kuò)充了Maya的功能,使Maya運(yùn)用起來(lái)更友好,更順手。

2.3 界面友好

MEL有一個(gè)很重要的功能是編寫(xiě)界面,Maya的整個(gè)界面是用MEL編寫(xiě)的,Maya中的所有界面元素都可以編寫(xiě)到你自己的MEL程序界面中,你可以用MEL跟據(jù)自己的習(xí)慣定制自己的操作界面。

實(shí)際的應(yīng)用使我們感到:MEL是Maya使用最方便和控制最靈活的編程接口。Maya中的每一步操作都是在執(zhí)行MEL,因此Maya的任何一個(gè)功能,能做的任何一項(xiàng)操作,都可以加到你自己的MEL程序中。正如Maya的圖形用戶界面(GUI)也是由MEL來(lái)控制的。既然在Maya的每個(gè)角落都有MEL的存在,那么,對(duì)MEL了解得越是深入,Maya就會(huì)運(yùn)用的越好,在場(chǎng)景設(shè)計(jì)中也會(huì)更加得心應(yīng)手。

3 MEL在場(chǎng)景設(shè)計(jì)中的應(yīng)用

3.1 草地建模

場(chǎng)景設(shè)計(jì)中經(jīng)常需要在戶外鋪設(shè)草地。草地的制作可以通過(guò)對(duì)單根小草建模,然后批量復(fù)制,在對(duì)其細(xì)節(jié)進(jìn)行修改,但即便如此,同樣是草地,由于區(qū)域不同,某個(gè)場(chǎng)景下完成的草地效果未必能適合其他場(chǎng)景的需要,所以必須重新建模。這種建模修改的工作非常繁瑣,而且耗時(shí)。

3.1.1 通過(guò)MEL對(duì)草地建模提速

草地的特征是草的高度參差不齊,草的方向也會(huì)隨生長(zhǎng)長(zhǎng)短倒向不同的方向,通過(guò)MEL對(duì)這些細(xì)節(jié)進(jìn)行編寫(xiě),可以制作各種樣式的草地,由于草地的特征數(shù)據(jù)是可以手動(dòng)修改的,這給與設(shè)計(jì)極大的靈活度,所以創(chuàng)建成后只需修改這些參數(shù)就能迅速生成場(chǎng)景設(shè)計(jì)中需要的樣式。結(jié)果如圖1所示。

3.1.2 基于MEL的草地建模流程

●制作一根草,加變形器

string $grassName[]=`polyCone -r $radius -h $height-sx3-sy 10-sz 0 -ax 0 1 0 -tx 1 -ch 1`;

setAttr ($grassName[0]+".translateY") ($height/2);

setAttr($grassName[0]+".scaleX") 0.25;

string $bendName[]=`nonLinear -type bend-lowBound 0 -highBound $height -curvature $curvature`;

setAttr($bendName[1]+".translateY")0;

草的模型是三棱錐,用polyCone建立單根草的模型,賦予其高度h,底面邊數(shù)sx,棱劃分?jǐn)?shù)sz,再用縮放scaleX對(duì)其進(jìn)行變形,令底面沿x軸方向由頂點(diǎn)向底邊靠近,以體現(xiàn)草扁的特質(zhì),然后設(shè)置彎曲軌跡曲線curvature[2],顯出草的彎折。效果如圖2所示。

●隨機(jī)放置每根草

global proc genGrass(float $minX,float $maxX,float $minZ,float $maxZ, int $num,string $style)

{

int $i;

for($i=0;$i 本文為全文原貌 未安裝PDF瀏覽器用戶請(qǐng)先下載安裝 原版全文 ●帶入具體場(chǎng)景需求的參數(shù),生成草地。

generateGrass(x方向最小值,x方向最大值,z方向最小值,z方向最大值,草的個(gè)數(shù),“草的長(zhǎng)短”)

genGrass(-10,10,-10,10,20,"long")

效果如圖3所示。

經(jīng)過(guò)以上流程,一塊草地的設(shè)計(jì)就初步完成了。實(shí)際設(shè)計(jì)中還要對(duì)草地進(jìn)行渲染,加上光線,這里重點(diǎn)在于介紹草地模型的建立,故不贅述。

可以看出,我們只要修改genGrass()中的參數(shù)即可生成各種樣式的草地,但是這樣在工作中,如果每次設(shè)計(jì)草地場(chǎng)景都要復(fù)制整段的MEL,再修改參數(shù)也是不人性化的。因?yàn)閺?fù)制中如果漏了一個(gè)符號(hào)很可能導(dǎo)致整段MEL語(yǔ)言就無(wú)法運(yùn)行,所以這里就要再次利用MEL對(duì)以上的模塊進(jìn)行封裝。

3.1.3 基于MEL的草地建模腳本的封裝

事實(shí)上,我們?cè)谑褂肕aya時(shí),在菜單中創(chuàng)建某個(gè)物體,選擇某個(gè)工具,對(duì)某項(xiàng)操作進(jìn)行參數(shù)設(shè)置,在屬性編輯器中對(duì)物體的屬性進(jìn)行調(diào)節(jié),等等操作都是在Maya提供的用戶圖形界面上進(jìn)行的。這些用戶圖形界面的使用方法已經(jīng)以MEL命令的方式公開(kāi)給了用戶,使我們可以通過(guò)這些命令,創(chuàng)建自己的界面,在界面上輸入或選擇相關(guān)參數(shù),調(diào)用編寫(xiě)好的腳本,起到封裝的效果。

●定義圖形界面框體

window -title "makeGrass" -w 400 -h 300 grassWin;

通過(guò)window命令建立了窗體的寬w,高h(yuǎn),以及formLayout的標(biāo)題title。

●劃分框體份數(shù)

string $form=`formLayout-numberOfDivisions 3`;

通過(guò)numberOfDivisions,將formLayout劃分為3份,這在后面的用attachPosition定位時(shí)會(huì)起到作用。

●定義各參數(shù)按鈕

floatSliderGrp -label "mindirectx" -field true -min -100 -max 0 minX;

floatSliderGrp -label "maxdirectx" -field true -min 0 -max 100 maxX;

floatSliderGrp -label "mindirecty" -field true -min -100 -max 0 minY;

floatSliderGrp -label "maxdirecty" -field true -min 0 -max 100 maxY;

floatSliderGrp -label "number" -field true -min 1 -max 1000 num;

radioButton -label "long" long;

radioButton -label "normal" normal;

radioButton -label "short" short;

string $but =`button -label "make grass" -command genGrass`;

根據(jù)設(shè)計(jì)需要,通過(guò)floatSliderGrp.生成拖動(dòng)條,可以定義場(chǎng)景范圍,快捷的選擇場(chǎng)景需要的數(shù)據(jù),通過(guò)radioButton生成單選按鈕,選擇草地的類型。最后設(shè)置功能按鈕,用-command命令將生成草地genGrass模塊與button按鈕聯(lián)系起來(lái)。

●顯示封裝模塊操作窗口

showWindow makegrass;該命令將之前設(shè)置的按鈕屬性以圖形界面顯示出來(lái),效果如圖4所示。

通過(guò)以上闡述,繁瑣重復(fù)的草地場(chǎng)景設(shè)計(jì)就可以通過(guò)幾個(gè)拖動(dòng)條,幾個(gè)單選框方便的完成。

3.2 MEL運(yùn)用的在場(chǎng)景設(shè)計(jì)中的收益

MEL的運(yùn)用在設(shè)計(jì)過(guò)程中無(wú)疑大大節(jié)省了時(shí)間,降低了工作人員的工作強(qiáng)度,效率也得到極大的提高,制作人員可以將更多地精力投放到其他諸如場(chǎng)景燈光,道具設(shè)計(jì)等更重要的工作中去。與之前的重復(fù)建模,細(xì)節(jié)修改相比,運(yùn)用MEL后一個(gè)同樣規(guī)模的場(chǎng)景設(shè)計(jì)從之前的1個(gè)/2小時(shí)縮減到1個(gè)/10分鐘,并且完成每個(gè)場(chǎng)景所需時(shí)間隨著工作時(shí)間增長(zhǎng),前者所需時(shí)間會(huì)進(jìn)一步增加,而后者則保持不變,可見(jiàn)MEL帶來(lái)的不僅僅是單個(gè)任務(wù)的效率提高,對(duì)項(xiàng)目整體也是進(jìn)一步的優(yōu)化和提高。

3.3 MEL在場(chǎng)景設(shè)計(jì)中的應(yīng)用擴(kuò)展

MEL功能強(qiáng)大,上述草地場(chǎng)景只是其運(yùn)用的很小一部分,但通過(guò)該設(shè)計(jì),可以使我們了解到Maya出色的個(gè)性化控制, 其極大的靈活性和良好的開(kāi)放性可見(jiàn)一斑。運(yùn)用想象力, 改變上面的程序,還可以變化出更多更出色的效果[3]。MEL不僅在靜態(tài)場(chǎng)景中表現(xiàn)出眾,在設(shè)計(jì)動(dòng)態(tài)場(chǎng)景如小溪緩緩流下高山,原子彈模擬爆炸,遨游太空行走一樣表現(xiàn)不俗,Maya 為實(shí)現(xiàn)上述種種效果提供了一個(gè)豐富的工具庫(kù),而MEL使得動(dòng)畫(huà)師可以簡(jiǎn)便地設(shè)置模型或粒子關(guān)系,來(lái)精確地模擬真實(shí)世界中存在的一些作用力(如摩擦、重力和風(fēng)),而這在過(guò)去用二維Flash 軟件要花上幾個(gè)小時(shí)的時(shí)間用關(guān)鍵幀方法才能實(shí)現(xiàn)。

4 結(jié)語(yǔ)

有效地使用MEL可以加深對(duì)Maya理解 。通過(guò)在Maya 的工作流程中使用MEL 語(yǔ)言進(jìn)行開(kāi)發(fā)工作,可以給你提供最大程度的流程簡(jiǎn)化,從而節(jié)省時(shí)間,降低強(qiáng)度,提高效率。同時(shí),人機(jī)界面的改進(jìn)也是亟待解決的問(wèn)題,現(xiàn)有的工具在實(shí)現(xiàn)功能的前提下界面還不夠友好,有的工具需要使用者進(jìn)行簡(jiǎn)單的學(xué)習(xí)才能使用。創(chuàng)建簡(jiǎn)單易學(xué),功能強(qiáng)大,適合設(shè)計(jì)師自身的界面也是工作的重要部分。MEL不是運(yùn)用Maya必須精通的,但掌握MEL將會(huì)讓Maya更好的為我們服務(wù)。

[參考文獻(xiàn)]

[1] 陳綠春. Maya8.5從新手到高手[M].北京:清華大學(xué)出版社,2007.

[2] CompleteMayaProgrammingAnExtensiveGuide[M].北京:電子工業(yè)出版社.

[3] 陳汗青,呂杰鋒.數(shù)碼設(shè)計(jì)藝術(shù)[M].上海:人民美術(shù)出版社,2004.

本文為全文原貌 未安裝PDF瀏覽器用戶請(qǐng)先下載安裝 原版全文

新聞標(biāo)題:go語(yǔ)言json文件 golang jsonpath
分享鏈接:http://chinadenli.net/article5/dspphoi.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設(shè)標(biāo)簽優(yōu)化網(wǎng)站排名做網(wǎng)站移動(dòng)網(wǎng)站建設(shè)網(wǎng)頁(yè)設(shè)計(jì)公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化