houdini中让shader支持udim texture
来源:互联网 发布:c语言函数声明和调用 编辑:程序博客网 时间:2024/06/01 17:19
简介
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。
0 0
- houdini中让shader支持udim texture
- Houdini中全景摄像机shader立体左右眼成像方法
- houdini ocean shader 学习测试
- Shader: texture mask
- unity让shader支持UGUI Mask
- Unity Shader Example 1 : Texture
- Cg shader with single texture
- 修改Shader让NGUI支持灰色滤镜 [Unity3D]
- unity 让自定义 ui shader 支持 UGUI 的 Mask 功能
- <shader>编程中遇到的问题-too many texture interpolators would be used for ForwardBase pass
- 在VS中让Shader自动编译
- 在VS中让Shader自动编译
- Bubbles Shader in Houdini泡泡泡泡泡泡泡泡泡泡
- Shader Model 3 Using Vertex Texture
- Shader Model 3 Using Vertex Texture
- Unity shader教程-第六课:Ramp Texture
- 【Unity5.x Shaders】Shader中的Texture纹理
- Shader Model 3 Using Vertex Texture
- fis文件压缩合并
- Log4j 2.3简易教程 - log4j2.xml
- android shape的使用
- Java学习--(二)使用文本文档写java程序
- Android笔记之Activity
- houdini中让shader支持udim texture
- R语言基础介绍
- 简单观察者模式
- Hibernate基础概念
- AngularJS 中 异步请求$http 对象的使用
- Vmware虚拟网络详解
- 【天池竞赛系列】资金流入流出预测思路
- Leetcode: Contains Duplicate III
- meta标签