(vfx0025)Maya nCloth 教程 3 (解算精度和碰撞層)_第1頁(yè)
(vfx0025)Maya nCloth 教程 3 (解算精度和碰撞層)_第2頁(yè)
(vfx0025)Maya nCloth 教程 3 (解算精度和碰撞層)_第3頁(yè)
(vfx0025)Maya nCloth 教程 3 (解算精度和碰撞層)_第4頁(yè)
(vfx0025)Maya nCloth 教程 3 (解算精度和碰撞層)_第5頁(yè)
已閱讀5頁(yè),還剩1頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

好,這次我們來(lái)看一下nucleus節(jié)點(diǎn)的SolverAttributes欄下的三個(gè)屬性SolverAttributesSubsteps|34000Max:CollisionIterations4000CollisionLayerRangeSubsteps:直譯過(guò)來(lái)就是''子步〃,我們就當(dāng)作解算精度來(lái)理解,即每一幀的計(jì)算次數(shù),默認(rèn)為3次。什么時(shí)候需要改動(dòng)這個(gè)數(shù)值呢?我們來(lái)看下面這個(gè)場(chǎng)景:從第0到第50幀,一個(gè)pCylinder快速沿+Z方向穿過(guò)懸掛的布料。我們以默認(rèn)值看一下圓柱穿過(guò)布匹的那一幀。(補(bǔ)充一下:在作布料演算的時(shí)候,回放速度必須是playeveryFrame或更低,除非你的CPU比PS3的強(qiáng)大。以后我們會(huì)講到如何運(yùn)用回放速度這個(gè)選項(xiàng)結(jié)果非常糟糕,如果你遇到像這種碰撞物體快速移動(dòng)的情況下,可能需要提高Substeps的數(shù)值,我們嘗試一下將Subsetps設(shè)置為6,12和24:

Subsetps=6Subsetps=12Subsetps=24觀察解算結(jié)果,發(fā)現(xiàn),當(dāng)Substeps從3提高到6的時(shí)候,效果非常顯著,結(jié)果可以讓人接受,數(shù)值為12的時(shí)候,已經(jīng)非常好了,如果再高到24就浪費(fèi)了。實(shí)際工作中,我們需要反復(fù)嘗試一下,找到最合理的數(shù)值。下面我們看一下MaxCollisionIterations(最大碰撞檢測(cè)次數(shù)),這個(gè)數(shù)值是指,在每一個(gè)Substeps,發(fā)生碰撞事件時(shí),所做的碰撞檢測(cè)次數(shù)。我們來(lái)實(shí)際看一下它的效果,Substeps改回默認(rèn)的3,MaxCollisionIterations分別為6、12、24:MaxCollisionIterations=6(default)MaxCollisionIterations=12

MaxCollisionIterations=24是不是發(fā)現(xiàn)了MaxCollisionIterations和Substeps對(duì)解算結(jié)果起到了同樣的效果?沒(méi)錯(cuò)。那我們?cè)趺磪^(qū)分和設(shè)置這兩個(gè)看上去十分相似的數(shù)值呢?如果你足夠細(xì)心的觀察圖中布料的下擺,你就會(huì)發(fā)現(xiàn)它們之間的一個(gè)顯著區(qū)別。當(dāng)我們修改Substeps屬性的時(shí)候,隨著數(shù)值的提高,布料下擺變得越來(lái)越光滑,而MaxCollisionIterations卻沒(méi)有這個(gè)效果。我們可以這樣去理解這兩個(gè)數(shù)值的關(guān)系,MaxCollisionIterations是Substeps的子集。Substeps對(duì)布料的全局精度,方方面面都有影響,而MaxCollisionIterations只對(duì)布料碰撞事件發(fā)生影響。最后,我們來(lái)看一下nucleus的重頭戲:CollisionLayerRange(碰撞層范圍)。說(shuō)碰撞層范圍,我們就不得不提前提到碰撞層的概念了。我們來(lái)看如下場(chǎng)景:大家有沒(méi)有用過(guò)Syflex的碰撞層哦,是不是還記得在Syflex里面,兩層布料如果要做碰撞,那是費(fèi)了老勁了,拓?fù)湟粯?,大小要一樣,還有一堆參數(shù)。當(dāng)我拿到nCloth的幫助文件,我差點(diǎn)跳起來(lái)了,太他媽好使了。在這個(gè)場(chǎng)景里面,兩塊布料大小不一,拓?fù)洳煌玭Cloth就不管這些瑣碎。先講一下nCloth的碰撞層是怎么回事,然后我們?cè)賮?lái)看實(shí)例。不管是布料(cloth)還是碰撞物體(Passive或者collisionMesh)都被指定了一個(gè)所屬的碰撞層(在nClothShape節(jié)點(diǎn)中):〒SurfacePropertiee*CollideJSelfCoilideCollisionLayerf^.000fJ每一個(gè)碰撞層都有一個(gè)編號(hào),從0開(kāi)始為第一層,依次類(lèi)推。每一個(gè)層內(nèi),可以指定任意多的nCloth物體,當(dāng)發(fā)生碰撞的時(shí)候,編號(hào)較低的層中的nCloth對(duì)編號(hào)高的層中的物體,扮演PassiveObject的角色,高層中的物體對(duì)低層的物體只扮演被碰撞的角色。如果兩個(gè)cloth物體處于同一層,那么他們之間會(huì)互相影響。這么說(shuō)可能有些糊涂,我們來(lái)看實(shí)例:球體是一個(gè)PassiveObject處于層0,中間帶棋方格的布料和球體處于同一層(0),最上層的布料,處在編號(hào)1層。碰撞檢測(cè)就有一個(gè)自球向上的過(guò)程。好,如果我們將棋方格該到層2,看看解算結(jié)果:

棋方格被上方的布料狠狠的壓制住,毫無(wú)反抗能力,連四角的約束也救不了它。因?yàn)樗膶泳幪?hào)咼于上層布料。我們?cè)侔哑宸礁竦膶泳幪?hào)改為3:看到,結(jié)果是一樣的,雖然發(fā)生了層級(jí)的跨越。collisionRangs決定了兩個(gè)對(duì)象之間所能發(fā)生碰撞的最大范圍,如果超出這個(gè)范圍,則不發(fā)生碰撞,計(jì)算公式:clothA的層號(hào)-clothB的層號(hào)的絕對(duì)值減去collisionRangs的值<0則發(fā)生碰撞,否則不發(fā)生碰撞。則我們可以通過(guò)設(shè)置這個(gè)數(shù)值來(lái)排除不需要的碰撞事件。(感謝火星時(shí)代bbs論壇上的ID“盜亦有道”同學(xué)的指正)在我現(xiàn)在進(jìn)行的短片中,CollisionLayerRange足可以對(duì)付如

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論