注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

oxeyeball杂谈

CG技术,动慢等个人喜欢的一切

 
 
 

日志

 
 
关于我

不要穿着拖鞋去扔垃圾哦

网易考拉推荐

Pixie Multipass Rendering (AOV)  

2007-08-10 12:48:21|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

最近对Pixie的兴趣非常大,配合上LiquidMaya,ShaderMan,感觉可以实用化,极度想在生产中应用这套东西(都是开源软件)

 AOV 就是Arbitrary Output Variables  就是让RM把任意变量输出成图像,特别适合合成处理。Pixie目前的dos对此并没有多少说明.

 

要在使用一个rib输出多个图像文件,用以下命令:

Display “D:/temp/myImage.tif” “file” “rgba”

Display “+D:/temp/myImage.N.tif” “file” “N”

…………

上面的N是输出RM的常用的全局变量,要输出自定义的变量,需要写shader配合,以下为一个默认的“plastic” shader 代码:

surface plastic(
float Ks = .5;
float Kd = .5;
float Ka = 1;
float roughness = .1;
color specularcolor = 1; )
{
normal Nf;
vector V;

Nf = faceforward( normalize(N), I );
V = -normalize( I );

Oi = Os;
Ci = ( Cs * (Ka * ambient() + Kd * diffuse(Nf)) +
specularcolor * Ks * specular(Nf, V, roughness) );

Ci *= Oi;
}

 

改写成以下样子:

 

surface plastic(
float Ks = .5;
float Kd = .5;
float Ka = 1;
float roughness = .1;
color specularcolor = 1;
output varying color Cdif = 0;
output varying color Camb = 0;
output varying color Cspec = 0;
)
{
normal Nf;
vector V;

Nf = faceforward( normalize(N), I );
V = -normalize( I );

/* Initialize outputs */
Camb = Cs * Ka * ambient();
Cdif = Cs * Kd * diffuse(Nf);
Cspec = specularcolor * Ks * specular(Nf,V,roughness);

Oi = Os;
Ci = (Camb + Cdif) + Cspec;

Ci *= Oi;
}

 

在Pixie中应用,要把rib改成以下样子:

 

Display "D:/temp/myImage.tif" "file" "rgba"   

Display "+D:/temp/myImage.diffuse.tif" "file" "color Cdif"

Display "+D:/temp/myImage.specular.tif" "file" "color Cspec"

 

 

具体细节可以看一下连接:

http://www.rendermanacademy.com/docs/multipass.htm

不同的RenderMan兼容渲染器可能有一点点不同。

 

 

  评论这张
 
阅读(192)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017