【houdini16】大师班自定义材质完全学习_CG猎人独家
—— 微资讯 · 微课程 ——
利用零碎时间,走上超神之路!
houdini16对于材质网络做了非常大的提升,更加快速便捷和强大。但是也让很多旧的用户非常不习惯。官网发布的houdini16大师班自定义材质课程,讲解了更新的功能和自定义材质需要注意的事情,相信大家看完一定会被新材质网络方便和强大所震撼~
教程目录
1新旧网络对比(整体概述)
2vop节点渲染可视化
3材质封装
4混合材质
5属性导出和AOV
6视图实时预览设置
视频教程
学习笔记
1新旧网络对比(整体概述)
在旧版本中,我们需要创建自定义节点会在shop网络下 material shader bulider,进入内部再进行shader vop的编辑。所以其实在sop中我们需要先创建一个容器,然后在进入这个容器里面创建爱各种材质和vop节点。
在houdini16中,我们可以切换到mat标签,或者类似于shop一样同样可以在obj层级下创建mat网络
在这个mat中我们同样可以创建 material builder,不同的是,之前必须在这个material builder内部创建的vop节点现在直接在外部就可以创建了。这个就是让很多旧用户来说非常不习惯的,但是其实现在的方式更加直接简单~
material builder中的的预制节点和之前的是一样的。
可以直接在mat层级创建各种vop和shader
2vop节点渲染可视化
principled shader,并且可以直接把这个shader直接赋予物体渲染查看效果。除了材质之外,各种纹理,或者中间转化节点,都可以直接赋予给物体渲染(因为vex代码中直接为你创建默认材质),这个功能就非常方便,以前想看某个属性的效果都必须先转化为颜色然后输出给材质节点的颜色才能够渲染预览,更新的功能真心好用。
principled shader和principled shader core 的对比
principled shader是最全的贴图选项,包含了贴图和置换
principled shader core是除去贴图和置换后的核心参数选项
在setting标签中添加了uv的参数选项,这个终于可以非常方便地调整uv的缩放,旋转等参数了。
3材质封装
对于在mat连接好的vop节点,可以选择菜单Edit/collapse Selected into Material塌陷选择的节点到材质中进行封装(在sop节点是是封装为subnetwork)
会自动创建 surface export→ouput→collect节点,如果需要使用到置换系统,那么需要使用collect节点,只是材质的话就没必要(小编测试houdini16.0.504版本是不会自动创建ouput节点连接的,所以材质不能输出显示,需要手动创建连接,要到新一点的版本才有,在houdini16自动绑定教程小拜年已经更新了一个最新的houdini16的版本)
注意material bulider左上角的紫色标识 实时编译→缓存(在同一个文件中,如果渲染过一次,那么就会缓存编译结果,只要不修改内部节点这个缓存依旧存在,这样可以加快渲染速度)
如果你保存了工程文件,再次打开,这个材质还是未缓存状态。如果想直接就是缓存文件(类似于其他预制的材质)那么必须存储为数据集资产,并且勾选save/save cached code保存缓存代码。这样自定义的材质就和material pallete中的一致了。
4混合材质
在material pallete中新建预制材质 gold和metalgrate,新建layer mix,可以讲两个材质进行混合,
通过alpha进行调整
创建resposition节点,这个用于转化各种坐标体系,默认是object space物体坐标,常用的还有世界坐标和摄像机坐标等。具体效果可以直接把这个节点拖入到视图中渲染查看
rgb分别对应xyz三个方向的值
这里我们提取r通道的值进行控制layermix的alpha值,使用vector to float进行提取,然后使用fitrange节点进行适配
如果想对全局变量global节点的属性查看(各种属性的混合)需要使用null节点进行单独提取。把null节点传递出来的属性拖动渲染物体中。
5属性导出和AOV
对于自定义的材质
如果需要输出到layer混合材质,那么需要添加
parameter节点连接到principledshader的layer中
参数设置
name属性名字为layer(必须)
label标签名字 shader layer 非必须
type类型 struct shaderlayer 必须
export 输出 Always 一直
export in context 输出类容为surface(相对于置换输出)
invisible 不可见(非必须)
设置完毕之后才能够使用mix layer混合图层进行混合。
PBR材质类型介绍
principled shader是一个复合材质,包含了各种材质属性,但是也可以使用pbr基本材质记性材质组合,组合方式就是直接连接,会自动叠加,比如difuss+relection反射,
pbr relect中自带了 index of refraction参数,不在需要之前的frenel节点进行反射的菲尼尔设置
置换的输出
与旧版本连接方法一样
diplacement texture→output
创建properties属性节点,设置displacement bound置换属性,值设置为置换的值大就行。
但是对于mix layer的混合输出,还需要把
创建layerpack节点,把置换texuture打包为layer信息
surface的parameter输出的layer节点复制出来,,激活use own Export context 使用自定义的导出内容,修改export in context 通道为displace
渲染参数导出和AOV设置
默认情况下对于单独的材质,mantra可以直接输出各个通道图片
但是对于mix layer 混合材质,那么需要进行baking烘焙才行(在bake Texture节点有)
直接在mantra的渲染参数中找到bake 文件直接添加
激活 add baking exports to shader layers选项就可以
这样对于layer mix的材质才可以使用分层渲染AOV
对于自定义的materail材质设置,还需做2步
设置输出属性
bind节点,在输出属性名字前需要添加前缀export_XXXX
type数据类型需要匹配,不过如果勾选了下面的override type with input使用输入端的数据类型进行覆盖,就不用管了,
这样如果单独渲染这个材质是就可以输出AOV 通道属性了。但是如果要添加到mix layer中还需要做第二步设置
添加 set layer export设置图层输出节点,分别连接材质和输出属性,设置输出名字和bind输出的一样
有多少个属性输出就要连接多少个这样的节点,其实挺麻烦的感觉。
6视图实时预览设置
对于预制的材质,很多置换效果和贴图效果都可以在视图中实时预览,并且效果和最终效果很接近,对于自定义的材质,需要手动指定
二这种设定必须创建HDA也就是把材质存储为数据资产之后才行
编辑数据资产面板,选择参数,在右下角找到built in tag内置的标签(这些都是openGL支持的一些视图显示的材质标签,一一对应好设置就行了)
对于texture贴图的设置有些特殊
因为默认支持多张贴图进行混合,所以tex*标示,如果只有一张贴图,那么把*号修改为1,以此类推。
之后对于difusse,spec和displace置换的设置都是一次类推,可以通过下面的属性栏进行手搜索。
支持非常多的视图预览效果。
获得教程的方法: