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

下載本文檔

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

文檔簡介

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

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

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

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

溫馨提示

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

評論

0/150

提交評論