



下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、Houdini解決問題的基本思路在我看來,maya就像 windows 0houdini 就像 unix.主觀的感覺是maya跟windows設(shè)計(jì)得很精明。而houdini跟unix設(shè)計(jì)得很智慧。maya跟windows像是管理的高手,制定的許多規(guī)范。一切按規(guī)范來來規(guī)規(guī)矩矩的。houdini跟unix則是一種抽像和概括的能力,只在一些基本的問題上有規(guī)定,給人很大的自 由。其中給我印像最深的一種是那種碎片加膠水的結(jié)構(gòu)。另一種就是那種一切皆文件的想法。一個(gè)問題是你想作一個(gè)文件瀏覽器。在windows上的做法是寫一個(gè)大大的程序,不斷的改進(jìn)再加上排序,查找的功能。在unix上不是這樣玩的。按unix的
2、思路。這是由四個(gè)到5個(gè)程序程序協(xié)作完成的。一個(gè)ls,來負(fù)責(zé)列出所有的文件名。一個(gè)程序sort,負(fù)責(zé)排序另一個(gè)程序view,顯示表格。還有一個(gè)程序fill,表排好的文件名寫到表格里。接下來的問題是這些程序之間如何協(xié)作交換數(shù)據(jù)呢?通過文件。每一個(gè)程序讀取文件并將輸出寫到一個(gè)文件中。Ls將輸出寫的一個(gè)文件中l(wèi)s.outoSort讀ls.out,排序,再將輸出寫到另一個(gè)文件中sort.out。Fill再讀排序好文件sort.out,將結(jié)果寫成表格文件fill.outoView讀這個(gè)表格fill.out顯示在UI中。對于這么簡單的工作,如果用戶不想操作這么多程序的話,可以通過寫個(gè)腳本來實(shí)現(xiàn)自動化。這便是
3、unix的基本設(shè)計(jì)思路,實(shí)際非常簡單。在上面的例子中,所有的.out文件對用戶來說都是無用的,存在硬盤上對用戶一點(diǎn)意義也沒 有。于是unix提出了一種優(yōu)化的設(shè)計(jì),叫管線pipe,將一個(gè)程序的輸出直接導(dǎo)到另一個(gè)文件的 輸入中,所有的交換在內(nèi)存中進(jìn)行。上面的程序就成了 ls|sort|fill|view.其中|表示管道。其實(shí)在unix上,C語言開發(fā)的程序非常少。系統(tǒng)中的主要程序都是腳本,整個(gè)操作系統(tǒng)的主要行為都是通過腳本來控制的。同樣的,腳本也是程序,也可以供其它的腳本調(diào)用。腳本也是文件,也可以供其它的腳本讀取。程序就是文件數(shù)據(jù),文件數(shù)據(jù)也可以是程序。在houdini中,我們可以把node看成是程
4、序。程序一定是一個(gè)文件,所以它有它的完整路徑。同樣的,程序也一定有輸出,所以文件中的數(shù)據(jù)是即是程序輸出的結(jié)果。在node之間的聯(lián)接就像管道一樣,一個(gè)node的輸出就是另一個(gè)node的輸入。在這一點(diǎn)上,houdini跟maya是不同的。maya的連接表示的是數(shù)據(jù),如果一個(gè)節(jié)點(diǎn)有10個(gè)個(gè)數(shù)據(jù),同另一個(gè)節(jié)點(diǎn)相連時(shí),就要建立 10個(gè)聯(lián)接。如果一個(gè)節(jié)點(diǎn)要同10個(gè)節(jié)點(diǎn)相連,每個(gè)節(jié)點(diǎn)又有10個(gè)數(shù)據(jù)的話,就要有10 0個(gè)連接。houdini的連接只有一條,表示的是文件。一個(gè)問題是如果按這樣的設(shè)計(jì),有多少數(shù)據(jù)會被傳遞到下一個(gè)節(jié)點(diǎn)。另一點(diǎn)是,雖然有許多的節(jié)點(diǎn),但houdini的節(jié)點(diǎn)在設(shè)計(jì)上功能更小更單一。在完成一
5、件工作的時(shí)候,許多時(shí)要用更多的節(jié)點(diǎn)。這其實(shí)不是管道設(shè)計(jì)的問題,這是文件格式設(shè)計(jì)的問題。深入而準(zhǔn)確的說,在底層的數(shù)據(jù)結(jié)構(gòu)中,houdini傳遞的是一種字典式的數(shù)據(jù)結(jié)構(gòu)。每一部分?jǐn)?shù)據(jù)都是有名字的。如果將node理解為一個(gè)腳本程序的話,可能理解為houdini整個(gè)context和符號表都傳遞下 去了。直白的一點(diǎn)說法是,每一份數(shù)據(jù)都是一個(gè)變量的值。當(dāng)數(shù)據(jù)從一個(gè)節(jié)點(diǎn)傳到另一個(gè)節(jié)點(diǎn)時(shí),全部的全局變量都被傳遞下去了。后一個(gè)節(jié)點(diǎn)實(shí)際上是通過變量名來找數(shù)據(jù)的。如houdini中,一個(gè)tri節(jié)點(diǎn)被接到了 一個(gè)color節(jié)點(diǎn)上。tri-color在邏輯上等價(jià)于這幾個(gè)腳本。在建模環(huán)璋中,系統(tǒng)會聲明一個(gè)變量。Snet
6、init:export geo.三角形腳本如下trigeo.add vertex v1geo add vertex v2geo.add vertex v3 geo.add face(v1,v2,v3)著色的腳本export geo.color= red當(dāng)把兩個(gè)節(jié)點(diǎn)聯(lián)起來之后。Color節(jié)點(diǎn)的輸出實(shí)際上是geo=v1,v2,v3, f1=v1,v2,v3 geo.color=red當(dāng)然這只是簡化的比輸,真實(shí)情況產(chǎn)生的數(shù)據(jù)的腳本會理復(fù)雜。從這個(gè)意義上說,color節(jié)點(diǎn)只是向文件中加了一份數(shù)據(jù),并沒有進(jìn)行實(shí)際的渲染操作。至用戶為什么看到了紅色的三角形,那是渲染器的事情。當(dāng)color被接到渲染器上時(shí)。
7、tri-color-render渲染器將color變量的值當(dāng)成了渲染的顏色.rendercolor=geo.color這就是houdini運(yùn)行的最基本原理,其實(shí)非常簡單。Houdini的靈活性理解了 houdini的點(diǎn)基本原理之后,你就解放了。tri-color-render的這種結(jié)構(gòu)實(shí)際上是不必要的。color-tri-render 的效果跟 tri-color-render 效果是一樣的。也完全可以可以不可color節(jié)點(diǎn)。在tri節(jié)點(diǎn)中,加一行腳本export geo.color=red.或是在渲染器render之上,加一行啟動腳本。Export geo.color=red.同maya相比
8、,houdini要靈活得多。在使用maya的時(shí)候,必須通過建產(chǎn)聯(lián)接來實(shí)現(xiàn)數(shù)據(jù)通信。很多時(shí)候,設(shè)置像color這樣的數(shù)據(jù)是容易的,但是找到接收color數(shù)據(jù)的節(jié)點(diǎn)卻不是那么 容易的事。而在houdini中,用戶可以不考慮那么多,只要指定顏色就可以了。還可以把color跟tri節(jié)點(diǎn)合成一個(gè)新的節(jié)點(diǎn)叫tricolor。它以tri的ndoe做輸入,以color的輸出做輸出。這在 houdini 中叫 digital asset.對使用者而言,digitl asset跟一般的節(jié)點(diǎn)完全一樣。使用它會使復(fù)雜的houdini工程更清晰。tricolor還是更簡單了點(diǎn),復(fù)雜的可能有BuildACity-rend
9、er.而buildACity內(nèi)部的節(jié)點(diǎn)可能也是digital asset.如果這種覺得這種digital assert的合成節(jié)點(diǎn)速度太慢,就可以也用C寫一個(gè)Node,叫tricolorC.許多開發(fā)工作只是從context讀取數(shù)據(jù),其它的編程跟通常C編程沒有什么區(qū)別。 因此很容易將己有的代碼集成到houdini中去。最后houdini的所有節(jié)點(diǎn)輸出的都是文件。在houdini中,UI中的viewer只是一個(gè)幾何文件瀏覽器,可以查看任何節(jié)點(diǎn)的輸出結(jié)果。這樣,用戶可以看到數(shù)據(jù)在每個(gè)節(jié)點(diǎn)操作后的數(shù)據(jù)的變化。很像調(diào)試程序一樣,用戶可能輕松的找到出問題的地方。houdini的許多行為都是通過變量控制的,這
10、此變量都是腳本shell的變量,同unix其它腳本 中聲明的變量是一樣的。腳本設(shè)置的變量是可以被外部程序讀取的,同時(shí)houdini節(jié)點(diǎn)也可能通過管線同外部程序相 聯(lián)。houdini可以很方便的同其它程序協(xié)作,許多時(shí)候,如修改的渲染器之類的工作,完全可以 不需加寫插件來實(shí)現(xiàn),改一個(gè)變量值的字符串值就可以了。甚至可以說只要能在unix上運(yùn)行的程序都可以集成到houdini中來。小結(jié):實(shí)際上houdini的核心就是一個(gè)小型的文件系統(tǒng)加上一個(gè)運(yùn)行腳本虛擬機(jī),就是一個(gè)去掉了 內(nèi)核和驅(qū)動的unix操作系統(tǒng)。它的文件系統(tǒng)有著跟unix系統(tǒng)類似的邏輯結(jié)構(gòu),而它的腳本就是修改unix的shell腳本而來。文件系統(tǒng)用來組織腳本,腳本虛擬機(jī)負(fù)責(zé)裝載運(yùn)行腳本程序。雖然都是node結(jié)構(gòu),用起來跟maya感受很不一樣。感覺maya的node好像一個(gè)個(gè)元器件,使用maya時(shí)就好像在連接電路。而houdini的node結(jié)構(gòu),更像是代碼段,使用的時(shí)候感覺就像做復(fù)制粘貼。兩者都很靈活。對于初級用戶,maya的UI做得更完整一些,許多時(shí)候點(diǎn)個(gè)按鈕就可以了,但成為高級之 后,就會發(fā)現(xiàn)maya的node結(jié)構(gòu)很繁鎖。houdini的UI功能不強(qiáng),但node更易用,連接更靈活,調(diào)試也更方便,雖然開始時(shí)有些
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 汽車行業(yè)合同樣本:會員服務(wù)協(xié)議
- 移動基站租賃合同書范本
- 城市老舊小區(qū)消防系統(tǒng)改造項(xiàng)目合同
- 幼兒園臨時(shí)教師聘任合同
- 新版民間房產(chǎn)抵押權(quán)轉(zhuǎn)讓合同
- 腎性水腫課件
- 智能化煤礦培訓(xùn)課件下載
- 舊貨零售互聯(lián)網(wǎng)+創(chuàng)新實(shí)踐考核試卷
- 搪瓷器的創(chuàng)造思維與創(chuàng)意設(shè)計(jì)考核試卷
- 建筑施工現(xiàn)場安全監(jiān)測與預(yù)警考核試卷
- 2025年黑龍江交通職業(yè)技術(shù)學(xué)院單招職業(yè)技能測試題庫必考題
- 個(gè)人畫協(xié)議合同范本
- 2024-2025學(xué)年高一下學(xué)期開學(xué)第一節(jié)課(哪吒精神)主題班會課件
- 人教版2025-初中物理實(shí)驗(yàn)室實(shí)驗(yàn)課程安排
- 2024年無錫科技職業(yè)學(xué)院高職單招語文歷年參考題庫含答案解析
- 舞蹈藝術(shù)賞析課件
- 2025江蘇泰州興化市陳堡鎮(zhèn)村級后備干部招聘10人歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- (完整版)python學(xué)習(xí)課件
- CNAS-RL01:2019實(shí)驗(yàn)室認(rèn)可規(guī)則
- 2025中國人民解放軍空軍部隊(duì)軍工廠招聘21人管理單位筆試遴選500模擬題附帶答案詳解
- 成人腦室外引流護(hù)理-中華護(hù)理學(xué)會團(tuán)體 標(biāo)準(zhǔn)
評論
0/150
提交評論