houdini中让shader支持udim texture
2015-07-28 23:24
836 查看
简介
udim,arnold的一个很好的机制,可以充分利用0~1之外的UV空间,最爽的在于不同的tile可以指定不同的分辨率,是一种比普通UV更加先进的mapping方式。一则很好的科普:http://www.fxguide.com/featured/udim-uv-mapping/可是Houdini shop 的texture 节点还是只从0~1找啊咋办,0~1之外就重复啊咋办?
经过尝试只要几个节点就可以让texture以udim的方式读取。
SOP阶段
首先在模型(uv肯定有超出0~1范围的)后挂一个vertex wrangle,里面只填一句话:http://www.fxguide.com/featured/udim-uv-mapping/不好意思ctrl v错了,是这个:i@udim = 1001 + int(@uv[0]) + int(@uv[1])*10;
这句话给模型添加了一个叫做udim的int属性,其值为udim的编号。
SHOP阶段
其中,
parm1用于读入geo所携带的我们添加的udim属性;
parm2为shop添加一个string的parameter,用于在外层指定udim贴图路径,路径中用<udim>来代替udim编号;
uvcoord1是一个普通的uvcoord节点,读取处理前的uv;
snippet1代码如下:
string tex_path = texpath; string tokens[] = re_split('<udim>', tex_path); texpath = tokens[0]+itoa(int(udim))+tokens[1]; s = frac(s); t = frac(t);
此代码做两件事:将原来的路径根据udim来修改成真正的路径,并且将uv修改为在此tile的正确uv。
将此snippet的路径输出到texture的map属性,s和t输出到texture的s和t即可
上图为用udim的效果,只是为了做火星的发射源没有加置换和其他shading。
相关文章推荐
- springmvc + jquery datatable + ajax实现服务端动态分页查询
- Android 控件总结
- 浮点数字符串转换成浮点数实现(2)
- http(3)详解------Web的结构组件
- wordpress极简搭建
- c/c++对数组取地址
- 2015-07-28总结
- SQL语句修改表名和字段名
- 浮点数字符串转换成浮点数实现(2)
- 1.python语法基础-列表、数组、函数、元组和控制语句
- Java ArrayList Sort
- logrotate切割日志文件
- 被困于relative中的absoulute
- plsql无法连接64位oracle数据库的解决方法
- meta标签
- metinfo笔记
- mongodb-1
- 黑马程序员--集合框架
- C#字符串的处理
- objective-c基础