animation
Sometimes you need to delete unknown nodes in a Maya scene. You can do it in the following python snippet.
from pymel import * def deleteUnknownNodes(): # 2 things to take care of: # 1) you can't delete nodes from references. # 2) "delete" will delete all children nodes (hierarchy) in default. unknown = ls(type="unknown") unknown = filter(lambda node: not node.isReferenced(), unknown) for node in unknown: if not objExists(node): continue delete(node) Compare it to the MEL way:
slimcmd "plt0 SelectAppearances {func0 func1 func2}" this might failed….!!! use the following.
slimcmd plt0 SelectAppearances "{func0 func1 func2}"
Given that, you might try increasing the amount of time that alfserver waits before escalating to SIGKILL. One second is a long time for a process to be unresponsive. Try small increments, for example, in alfserver.ini change this line:
SetPref timerAlfserverSignalEscalation 3
Also, the log indicates that you are running the server as root, which would be ok if you were causing the actually-launched apps to run as a different user.
大約三週之前,開發 Nuke 的 The Foundry,由 CEO, Bill Collis, 偕同技術人員 Matt Plec 與兩位美麗的華裔女士來台,參與了 SIGGRAPH 2008 Taipei Chapter 的活動,會後立即趕來太極,面對太極的幾位 compositors,給了一個更加深入一點的 talk + demonstration。
Matte 就 Nuke 與 Ocula 做了不少的 demo,像是 3D scene/model/camera importing by FBX、multi-channel manipulation、customized gizmo、stereoscopic vector viewing by Ocula、stereoscopic offset、stereoscopic filein handling…其中我最感興趣的,是 Nuke 的可程式化能力。
Nuke 5 發佈的特色之一是對 Python scripting 的支援。根據我 k 了文件後的了解,幾乎所有在 Nuke 裏頭的操作,都可以使用 Python 來做到,於是乎,有很大的空間可以就「自動化」與「整合其它軟體或服務」做延伸上的開發。我對於這一點感到非常的興奮。相對於 Apple Shake 限制多多的 shake macros 與我們一直無緣拿到手的 Shake SDK,Nuke 對 programmer 實在友善太多了。
我立即寫了個 python script,做了點設定上的調整,在 Nuke 上頭多新增了一個 Digimax 的 menu,然後裏頭有個 Submit To Render Farm 的功能。目的是透過它來產生一個 alfscript 來,然後呼叫 alfred 把 nuke rendering 給送進 render farm。
Guido van Rossum 於 1991 年創造出 Python 這個 scripting language 時,應該是沒有料想到它的風行全球,更不可能會猜到 3D 軟體產業是多麼的愛戴這個語言:
Maya 在被 Autodesk 併購了後,於 2007 年年初釋出了 8.5 版,支援 Python 的環境。 相傳,原本和 Maya 拼得你死我活的 Softimage (不過現在和 Maya 成了親家了@@ 還真的是世事難料呀~)也早就有了 Python 的 binding。 台灣新聞台的最愛 Poser 軟體,2000 的 4.0 版支援 Python。 特效軟體界的傳說 Houdini(也是目前我知道最貴的軟體之一,不過據說 Massive 更貴 @@)於 2007 年投入 Python 的懷抱。 流體模擬(Fluid & Dynamic Simulation)界的第一把交椅 RealFlow 也在最近發表的 RF4 (?) 新增了對 Python 的支援。 因為與 Peter Jackson 的魔戒合作下問世的 Massive,一樣有提供 Python(不過也一樣是有 TCL)。 趁著被 Apple 收購的 Shake 不會有下一版,然後挾天子以令諸侯(啊,不是,是有 Digital Domain 當靠山)的 Nuke ,在今年(2008)推出 5.
今天下午三點時分,遠在美國加州 Activision 最賺錢的 Guitar Hero 團隊裏的 Peter Pon,透過 gtalk 跟我說,他出了一本新書:3D繪圖程式設計–使用Direct3D 10/9與OpenGL 2.0。
快速摘要:
書名:3D繪圖程式設計–使用Direct3D 10/9與OpenGL 2.0 作者:彭國倫 撰寫時間:一年 撰寫原因:打發無聊的美國時間 撰寫後:放了一整週的長假休息 趁著天還沒黑,跑去走了一回四獸山裏的象山,天氣變冷得快,還真的是有點喘。回程跑去信義誠品找這本書來翻翻。
這是一本偏向入門的書籍,但又不像單單教 OpenGL 或是 DirectX 那樣 CG API level 的書籍。前十章由淺入深,由 Transformation, Phong Reflectance Model, Texture Mapping, 乃至於 Procedural Texture 都一一提到,算是入門篇。後面的幾章,分別就 HLSL, GLSL 的介紹,然後舉出幾個實際的範例說明 GPU Shader,像是 Parallax Map, Relief Map, Bloom(我非常喜愛這一頁的 Wikipedia,使用了 Elephant’s Dream 的一張圖來說明), HDR, Deferred Rendering, …。最後,附上了一章說明 XBox 360 與 PS3 的硬體環境介紹,與一些大學教科書上都找得到的線性代數。
今天 cyy 教授的 rendering 課,一樣聽得很過癮,我想過癮的原因之一,在於他說話的那種調調,他那股想讓聽課的學生聽懂的「急迫與認真感」,簡單來說,是一種個人魅力 + 專業教學結合下,一堂讓人覺得還不賴的課。
喔,對了,課堂中他放了兩段 animation,兩段講述 Computer Graphics 中與 Rendering 有關的基礎概念。有趣的東西,放上來讓多一點「有空」或「無聊」的人看看。
這一段是 Trailer,總計有三段,分別是:1) Local Illumination Models, 2) The BRDF, and 3) The Rendering Equation. 每一段都是以一位老師教授一群學生一個觀念為主的小動畫,有趣的地方就在於裏頭老師說話的調調非常誇張,有點像是小時候到大廣場聽的賣膏藥的。原始的三段 animation 都有點大,想看的,就直接去原作者的網站上看吧。
Pymel solution:
def getSGFromMaterial(mat): mat = PyNode(mat) return mat.shadingGroups() The following is the original article and mel codes by Bryan Ewert.
To determine which Material is associated to a Shading Group, get a list of all connection from the Material’s “.outColor” attribute. Iterate this array to find all Shading Groups. The 『nodeType』 command will identify a Shading Group with the string “shadingEngine”.
// //////////////////////////////////////////////////////////////////// // getSGFromMaterial // // Description: Returns the Shading Group set whose '.