在Houdin內連接BMRT的做法!

各Houdini用戶可在這裡交流問題和分享制作經驗

版主: kelvincai

在Houdin內連接BMRT的做法!

文章ChildPark » 11日 2月 2005年, 12:00

BMRT在Houdini的環境下預見的問題和解決方法:
Houdini和BMRT的連接方法
1) 創造一些folder負責存放各種類的文件或資料。
附加檔案
folder.jpg
folder.jpg (68.78 KiB) 被瀏覽 11592 次
最後由 ChildPark 於 12日 2月 2005年, 19:59 編輯,總共編輯了 2 次。
ChildPark
CGV討論區會員
CGV討論區會員
 
文章: 316
註冊時間: 2日 6月 2002年, 12:03
來自: Hong Kong

Share On:

Share on Facebook Facebook Share on Twitter Twitter

文章ChildPark » 11日 2月 2005年, 12:01

2) 然後開啟Houdini。
3) 先設置ROP層,然後選擇renderman作為渲染工具,再往Specific page設置Shader Path,要Houdini找尋到BMRT的shader便需要加入詳細的指定路徑,如下:
“./$home/bmrt/shop/surface”

“./E:/home/bmrt/shop/surface”
兩種找尋方式一樣方式,但必需注意 “ / ” 和 “ \ “的分別寫法,設立不當會尋找shader不成功,同樣地這做法也適合Texture Path的設置。
附加檔案
path.jpg
path.jpg (58.73 KiB) 被瀏覽 11627 次
ChildPark
CGV討論區會員
CGV討論區會員
 
文章: 316
註冊時間: 2日 6月 2002年, 12:03
來自: Hong Kong

文章ChildPark » 11日 2月 2005年, 12:02

4) 回到Standard page設置渲染器,在Render Command區設入BMRT的渲染器名稱rendrib或rlg,rendrib是負責生成高質量的圖片,rlg是負責生成標淮的圖片,詳情請看BMRT的負帶幫助文章。
附加檔案
renderCommod.jpg
renderCommod.jpg (42.48 KiB) 被瀏覽 11624 次
ChildPark
CGV討論區會員
CGV討論區會員
 
文章: 316
註冊時間: 2日 6月 2002年, 12:03
來自: Hong Kong

文章ChildPark » 11日 2月 2005年, 12:03

5) 最後設置shader的工作,RenderMan的shader大部份可用,但需要將它們轉成 .slc,其實每種渲染器都有自已的編譯器,它能編譯自身觀看的編碼,BMRT只能看 .slc的shader,提醒各位要將 “.sl” 轉換成 “.slc” ,BMRT先能使用它們。
附加檔案
shader.jpg
shader.jpg (56.59 KiB) 被瀏覽 11622 次
ChildPark
CGV討論區會員
CGV討論區會員
 
文章: 316
註冊時間: 2日 6月 2002年, 12:03
來自: Hong Kong

文章ChildPark » 11日 2月 2005年, 12:04

6) render看看
附加檔案
Lchecker.jpg
Lchecker.jpg (11.93 KiB) 被瀏覽 11620 次
ChildPark
CGV討論區會員
CGV討論區會員
 
文章: 316
註冊時間: 2日 6月 2002年, 12:03
來自: Hong Kong

文章ChildPark » 11日 2月 2005年, 12:04

這是一個Pattern類型Lchecker shader
surface Lchecker(
float srepect = 8,
trepect = 8,
Ka = 1,
Kd = 0.8;
color color1 = color (1, 0.5,0);
color color2 = color(1,1,1);
)
{
normal Nn = normalize(faceforward(N,I));
vector In = -normalize(I);

float ss = mod(srepect * s,1);
float tt = mod(trepect * t,1);

float checker1 = 1 - step(0.25 , ss) - step(0.75 , ss);
float checker2 = 1 - step(0.25 , tt) - step(0.75 , tt);

float final = checker1 - checker2;

color sum = mix(color1, color2, final);

Oi = Os;
Ci = mix(color1,color2,final);
Ci = Oi * Os * (sum * (Ka * ambient() + Kd * diffuse(Nn)));
}

這是reflection類型的shader,是在BMRT example內部提供的,我將它加入顏色。
surface reflection(
float Ka = 1,
Kd = 0.5,
Ks = 1,
Kr = 0.5,
blur = 0,
samples = 1,
roughness = 0.05;
color specularcol = 1,
col1 = (1,0.8,0),
col2 = (0,0.8,1);
)
{
normal Nf;
vector In;
vector uoffset, voffset;
color ev;
vector R, Rdir;
uniform float i, j;

Nf = faceforward(normalize(N), I);
In = normalize(I);
float final = ycomp(P);
ev = 0;

if (Kr > 0.001){
Rdir = normalize(reflect(In, Nf));
if (blur > 0){
uoffset = blur * normalize (vector(zcomp(Rdir) - ycomp(Rdir),
xcomp(Rdir) - zcomp(Rdir),
ycomp(Rdir) - xcomp(Rdir)));
voffset = Rdir ^ uoffset;
for (i = 0; i < samples; i += 1){
for (j = 0; j < samples; j += 1){
R = Rdir +
((i + float random()) / samples - 0.5) * uoffset +
((j + float random()) / samples - 0.5) * voffset;
ev += trace (P, normalize(R));
}
}
ev *= Kr / (samples * samples);
} else {
ev = Kr * trace (P, Rdir);
}
}
color sum = mix(col2, col1, final);
Oi = Os;
Ci = Os* (sum *(Ka *ambient() + Kd * diffuse(Nf)) +
specularcol * (ev + Ks*specular(Nf, -In, roughness)));
}

BMRT主要工作閱讀RenderMan 的RIB,詳情請看BMRT User Manual – release 2.6,因這渲染器是免費的所以大家可在網路上找到。
補充:以上的設置也適用於RenderMan ,如果想令BMRT的shader可在Houdini的SHOP內觀看便需要轉換 “.sl” 為 “.ds” Dialods Script。

Houdini + RenderMan + MentalRay + BMRT + Maya如能灌通它們的Data你便能在CG的空間隨意飛翔,我想擁有這種力量!: )
ChildPark
CGV討論區會員
CGV討論區會員
 
文章: 316
註冊時間: 2日 6月 2002年, 12:03
來自: Hong Kong


回到 Sidefx Houdini

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 7 位訪客

cron