【houdini】CG猎人第006期houdini完全基础入门学习笔记-自定义材质

——  微资讯 · 微课程  ——利用零碎时间,走上超神之路!课程概述01 houdini基本界面操作,02程序草地案例,03数据资产和灯光材质制作,04自定义 程序化材质纹理制作,05粒子结合程序化材质纹理案例学习建议教程难度 ★★教程质量 ★★★★入门教程(高级卷),这里最后面效果不一定炫酷,但是确实基于houdini官方文旦的技术的全面讲解,对于基础的全面掌握非常有用。第006课包含了程序化建模的案例,数据资产封装(之前已经学习过,这里当做复习)还有很多人觉得难的自定义材质编辑部分学习,程序化材质控制案例等。所以这次课程我们就着重学习程序化的自定义材质编辑,CG猎人已经帮你们归纳出材质编辑的核心模块,让大家更加清晰地学习和了解。非基础同学可以直接观看蓝色字重点部分。学习统计教程观看 2倍速度观看时间 2小时笔记整理 2小时练习实践:1小时学习笔记01 houdini基本界面操作略02程序草地案例知识点一copy和stamp控制知识点二 attributetransfer的使用知识三 point节点对点的控制(基于attributetransfer的属性)03数据资产和灯光材质制作略04自定义 程序化材质纹理制作按下效果分材质分为2大块基本材质属性置换属性按节点块分4大块全局属性(输入)数据控制材质输出制作自定义材质,可以切换shopnetwork或者直接在obj层级创建shopnetwork创建 material shader bulider默认情况下,进入material shader bulider会列举出全局变量(输入)和output输出两部,我们需要完善的就是中间的数据控制和材质选择两个部分。其中,材质模块其实也就是vop模块,和之前学习的vop的内容和要求大致相同,同样需要注意数据类型匹配(浮点,矢量还是字符)

常用的输入属性如下cfofAfPNEyesttime颜色opatity透明alpha位置法线视角uv时间我们可以直接把颜色/贴图直接输出到output中,但是这样只是是把颜色输出,并不带有材质属性。而材质是可以给予灯光的不同的反应:比如漫反射,反射,折射等等属性。houdini中的材质和maya等大部分材质分类都一样,包含了lambert,reflection等材质,教程中使用的surface modle是一个综合材质(包含了绝大部分的属性)在houdini15中有了比较的变化,参数更加复杂,还需要通过computelighting进行解算。实际上surface model是一个封装节点,双击进入内部可以看到各种复杂的节点关系。同样在tab找到shader下面还有多种这样的复合节点,比如principled shadered,houdini15最新的基本材质。当然除了这种复合材质,还有自己选择简单的比如lambert材质,reflection和refraction进行自己组合。

材质选择好之后,就是如何控制输入的属性的问题常用的属性如下fresneldiff_clrsss_crlrefl_intrefl_crlspce_ctrspec_metallicemit_int菲尼尔漫反射颜色3s颜色反射强度反射颜色高光颜色高光金属性自发光强度这里只是一些常用的属性列举出来,还可以点击more找到更多控制(这就是houdini的材质异常强大的地方,几乎任何属性你都可以控制。材质编辑的最重要部分--属性控制一般可以使用内置的程序化纹理或者加载贴图进行控制,当然也可以通过特定的计算(比如菲尼尔和矢量计算进行计算)使用外部输入的p,N等属性或者是uv,color和自定义的属性进行驱动下面是noise和patten的节点内容。

pos的要求连接的是p位置属性。如果是uv或者是st的需要输入的uv属性(st是uv另外一种说法,但是uv实际上是uvw,是个vector,所以需要通过vector to float转换提取出uv这两个通道)pos就是全局变量的中的P,如果模型发射了位移,那么需要把全局坐标P转化为物体坐标;如果物体发发生了形变,那么需要计算获得restpos进行控制。uv属性不能够直接通过全局变量进行获取,可以通过shadinglayer或者bind节点进行获取(前提是模型带有uv属性)shadinglayer有三种属性可以获取 :vucoordinate,RGB,Alphabind可以直接调用任意属性(包括自定义是属性)总结 整体流程输入属性(P,uv,Cd或者是自定义属性)→控制紊乱/partten/贴图→各种计算→分别控制材质中的属性→输出。对于置换同理添加的displacealong normal节点类似于shader节点,通过属性控制紊乱置换的值。dispalcement bound的讲解mantra渲染器通过这个参数进行优化,因为置换是非常耗费资源的,所需要限定一个范围避免无限计算,所以displacment bound这个属性就用来定义需要的置换的最大边界范围(一般比真实置换需求多0.01就足够了),如果没有的话houdini就会按默认进行计算,那么如果置换强超过默认值的话就会看到烂面。定于这个displacement bound是可以添加property属性节点,直接添加渲染属性;或者直接在shader外部通过齿轮添加这个属性。其他节点介绍normalize 对矢量进行的均化处理,保持矢量方向不变,让值为1基本数学add/substat/multiply/divide 加减乘除 如果两个不同数据类型进行计算,以第一连接的数据类型为输出的数据类型(这个很多初学者都会犯错)。pow 次方,次方值越大,过度越平滑,比如0.5的值进行2次方就是0.5*0.5=0.25混合方法mix 可以对各种数据进行混合:各种数据类型或者是shader材质mix color 颜色混合,mix的高级封装。random随机ramp渐变控制clamp限制 直接把最小值和最大值以外的裁切fit range适配范围,线性适配,不会出现clamp那种直接裁切封顶的效果。基本上掌握了上面这些简单的节点(函数)后,材质编辑就非常简单了。05粒子结合程序化材质纹理案例制作原理通过粒子与grid碰撞→传递颜色属性→使用点的颜色控制材质的mix的bias值,继续性材质的切换。这里属性的引入可以使用shaderlayer中的rgb或者使用bind节点 调用Cd获得教程的方法:

(0)

相关推荐