Houdini笔记操作技巧_集锦

2024-04-10 03:04

本文主要是介绍Houdini笔记操作技巧_集锦,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

个人记录下,谨防遗忘。同时丰富下Hou的中文搜素环境。

1、自定义启动界面
① 设置完界面后,保存自定义界面(Save Current Desktop As...)
② Edit-->Preferences-->General UIInterface-->Startup in Desktop:自行选择
Scene窗口底部的底部 ‘帮助提示文字’ 挪个位置:
Edit-->Preference-->Notifications : Help Tip Area-->Status bar
④ 字体设置:
Edit-->Preference-->General User Interface-->Global UI Scale : 1.2(不建议设置过大)
⑤ Scence窗口按D键有更多设置
⑥ 记得保存布局:Build-->Save Current Desktop

2、项目设置
① 点击 new project:命名+路径+勾选需要创建的文件夹
② 保存 hip工程 文件:可保存到上面的项目文件夹内
③ hip工程访问项目内的资源文件:可使用file节点
(④ $HIP == 项目路径)
⑤ 可直接打包整个项目文件给同事/他人
⑥ 更改项目工程路径/名:
Edit-->Aliases and Variables-->Variables : 改

3、摄像机
Houdini单位:1网格=1m(Maya单位1网格=1cm)
② 景深设置:
Sampling-->Focus Distance(景深);
选中相机后,Scene窗口按Z键。
③ Shiter Time快门设置:看文档。

4、给节点注释:节点的 i :Node info里面写

5、变换坐标更改(以法线为坐标、以世界为坐标....)
选中点/线/面后,scene窗口变换坐标原点右键-->Align Handle:自行选择

6、对象枢轴设置
选中点/线/面后,scene窗口变换坐标原点右键-->Align Handle-->Start Orienttation Picking:自行选择
(可选择其它对象上,也可以与吸附功能相结合使用)

7、两个面的最短路径上的面:选择面后,按A键。

8、Select的更多操作
① 选择相同间隔的面:先选2个有间隔的面,右键-->(SELECT(S to overlay))-->Pattern Selection-->Set Pattern(快捷键Shift+P)-->Shift+箭头(逐个加选间隔面)
② 对于上一步的快捷键操作:先选2个有间隔的面-->Shift+P-->Shift+箭头:逐个加选间隔面(Ctr+Shift+箭头:选择一圈间隔面)
③ 右键有更多选择操作:反选、扩选、面选转点选、选择三/四/五边面、……

9、帧移动/选择
shift+左键:可在时间轴上框选帧
鼠标中键:移动帧

10、自定义节点/创建数字资产
选中需要的多个节点,点右上角(subnet)打包-->右键:Creat Digital Asset-->命名,一般使用默认保存路径,保存-->编辑节点参数(需要的参数拖进来及进行关联,方便调节)
修改节点及参数:节点修改完-->资产节点右键-->Type Properties...-->(修改参数)-->点击Apply-->最后右键点击Match Current Definition

11、Foreach节点迭代常用写法
① 如获取迭代值,detail("../foreach_end1/", "iteration", 0)
② detail(-1, "iteration", 0) // -1:如下图,是指在 被操作(carve1)节点 内创建的的通道(参数拖进来就好)(可与 反引号 `` 结合使用)

12、Compiled Block节点,与Foreach节点结合,并勾选Foreach和Compiled的多线程,能大大缩减编译时间。(带齿轮的节点,不能使用Compiled Block节点)

13、导入序列图文件的几种使用技巧
可以使用 padzero 函数进行补位 (函数参数第一个的意思是数字有多少位,下图导入的序列图是从 0002.jpg 到 0192.jpg)

14、通道参数使用的point()表达式,与VEX里面的函数用法略有不同,根据提示去写就好。
(Mix:第一个0表示点序号,第二个0表示数据类型(int、float…)

15、简单螺旋线
float r = chf('r');
float c = chf('c');
@P.x = r*cos(@P.y*c);
@P.z = r*sin(@P.y*c);

16、 for(int pt:pts) 与 foreach(int pt;pts) 功能相同,区别是一个用冒号,一个用分号。

17、一元操作符:a++、a--、++a、--a运算
a++、a--:先赋值,再运算
++a、--a:先运算,再赋值

18、撒点可以使用scatter、add,还可以用pointsfromvolume

19、时间控制:如在解算器内,使某行为20帧运行一次

20、通道隐藏表达式写法(Method是一个选择通道)

21、通道设置面板,Separator是分割线的意思。

22、Clamp函数:ratio = clamp(ratio, 0, 1); // 限制数值范围,ratio小于0时,ratio=0; ratio大于1时,ratio=1

23、sample_direction_cone ※ 在给定0到1之间的均匀数的向量2的情况下,在中心的最大角度内生成统一的单位向量

24、carve节点可以控制Line线UV的插值

25、enumerate:将所选point或primitive的属性设置为顺序数字或字符串。(相当于设置个id)

26、比如使一个模型的面打断后,进行打包Pack
以下两种方法均可,第一种更快

27、Ctr+Shift+Alt复制节点,可以把参数引用等一起复制过来

28、动画与输出缓存(如,水滴落到模型上)
1)导出:模型与水滴动画一起导出,使用rop_alembic节点直接导出(占内存较大)
      导入:使用alembic节点导入,一般还需要解

2)导出:仅导出水滴动画,把不要的属性删除(占内存较小)
3)导出:仅导出水滴动画,使用rop_geometry节点导出,注意命名,可以参考这个来命名,(bgeo是Houdini的格式,sc表示进行一定的压缩,占内存比方法2再小)
      导入:使用file节点导入
4)导出导入:filecache节点(相当于rop_geometry+file节点)

29、Ocean Foam 海洋泡沫。※ 产生基于颗粒的泡沫,一般用贴图更方便好看。

30、oceanevaluate节点的Export to Texture功能
输出选择推荐使用Tif格式。如果输出选择的是PNG格式,只能选择16bit,若选择32bit还是会被压成16bit。
导出后,可使用这些Tif图做置换贴图 ,把海洋复现出来,具体为:grid节点(需细分)—>attribFromMap节点(选择贴图)—>pointWrangle(@P+=@Cd)—>attribDelete(删@Cd属性)

31、资产安装(一般放在安装文件夹内)
资产:otls文件夹
脚本:scripts文件夹
工具架(.shelf格式):toolbar文件夹。(之后在Houdini的工具架那,点击New Shelf...—>……等等)

32、Mantral渲染设置基础
① 一般选择基于物理渲染
mantral-->Rendering-->Rendering Engine:Physical Based Rendering
② 采样值Sampling越高,越清晰,渲的也慢
③ 可以选择是否使用所有CPU核心进行渲染
Render-->Use Max Processors:自行选择
④ Objects设置选项:可以选择渲染部分/指定对象
⑤ 渲染低质量效果来预览:Override Camera Resolution
⑥ 分层渲染
Extra Image Planes:看需勾选(可选折射、粗糙、高光……等等)
⑦ 记得选择保存路径

33、亮度的计算公式:亮度= 0.299×R + 0.587×G + 0.114×B

34、灯光
仅需要灯光照射某一对象
方法一:节点窗口-->“+”-->New Pane Tab Tybe-->Mantra Rendering-->light Linker:自行设置
方法二:Geo设置-->Render-->Light Mesh:自行设置
② 环境光Environment Light
需要渲染Hdr贴图:可勾选 Light-->Render Light Geometry

35、RS渲染器?的凹凸和置换:凹凸仅在视觉上,置换会真的有凹凸。

36、RS渲染通道及合成一般公式

37、VEX实现模型对齐地面(这忘了)

int npoint = npoints(0);
vector minHeight = point(0, 'P', 0);
for(int i=0; i<npoint; i++){vector currentNumPos = point(0, 'P', i);if(currentNumPos.y < minHeight.y){minHeight = currentNumPos;}
}
for(int i=0; i<npoint; i++){vector pointPos = point(0, 'P', i);pointPos.y -= minHeight.y;setpointattrib(0, 'P', i, pointPos);
}

这篇关于Houdini笔记操作技巧_集锦的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/889910

相关文章

Java实现在Word文档中添加文本水印和图片水印的操作指南

《Java实现在Word文档中添加文本水印和图片水印的操作指南》在当今数字时代,文档的自动化处理与安全防护变得尤为重要,无论是为了保护版权、推广品牌,还是为了在文档中加入特定的标识,为Word文档添加... 目录引言Spire.Doc for Java:高效Word文档处理的利器代码实战:使用Java为Wo

sysmain服务可以禁用吗? 电脑sysmain服务关闭后的影响与操作指南

《sysmain服务可以禁用吗?电脑sysmain服务关闭后的影响与操作指南》在Windows系统中,SysMain服务(原名Superfetch)作为一个旨在提升系统性能的关键组件,一直备受用户关... 在使用 Windows 系统时,有时候真有点像在「开盲盒」。全新安装系统后的「默认设置」,往往并不尽编

Python自动化处理PDF文档的操作完整指南

《Python自动化处理PDF文档的操作完整指南》在办公自动化中,PDF文档处理是一项常见需求,本文将介绍如何使用Python实现PDF文档的自动化处理,感兴趣的小伙伴可以跟随小编一起学习一下... 目录使用pymupdf读写PDF文件基本概念安装pymupdf提取文本内容提取图像添加水印使用pdfplum

Python从Word文档中提取图片并生成PPT的操作代码

《Python从Word文档中提取图片并生成PPT的操作代码》在日常办公场景中,我们经常需要从Word文档中提取图片,并将这些图片整理到PowerPoint幻灯片中,手动完成这一任务既耗时又容易出错,... 目录引言背景与需求解决方案概述代码解析代码核心逻辑说明总结引言在日常办公场景中,我们经常需要从 W

Java实现复杂查询优化的7个技巧小结

《Java实现复杂查询优化的7个技巧小结》在Java项目中,复杂查询是开发者面临的“硬骨头”,本文将通过7个实战技巧,结合代码示例和性能对比,手把手教你如何让复杂查询变得优雅,大家可以根据需求进行选择... 目录一、复杂查询的痛点:为何你的代码“又臭又长”1.1冗余变量与中间状态1.2重复查询与性能陷阱1.

Python内存优化的实战技巧分享

《Python内存优化的实战技巧分享》Python作为一门解释型语言,虽然在开发效率上有着显著优势,但在执行效率方面往往被诟病,然而,通过合理的内存优化策略,我们可以让Python程序的运行速度提升3... 目录前言python内存管理机制引用计数机制垃圾回收机制内存泄漏的常见原因1. 循环引用2. 全局变

使用Python的requests库来发送HTTP请求的操作指南

《使用Python的requests库来发送HTTP请求的操作指南》使用Python的requests库发送HTTP请求是非常简单和直观的,requests库提供了丰富的API,可以发送各种类型的HT... 目录前言1. 安装 requests 库2. 发送 GET 请求3. 发送 POST 请求4. 发送

MySQL中查询和展示LONGBLOB类型数据的技巧总结

《MySQL中查询和展示LONGBLOB类型数据的技巧总结》在MySQL中LONGBLOB是一种二进制大对象(BLOB)数据类型,用于存储大量的二进制数据,:本文主要介绍MySQL中查询和展示LO... 目录前言1. 查询 LONGBLOB 数据的大小2. 查询并展示 LONGBLOB 数据2.1 转换为十

Python进阶之列表推导式的10个核心技巧

《Python进阶之列表推导式的10个核心技巧》在Python编程中,列表推导式(ListComprehension)是提升代码效率的瑞士军刀,本文将通过真实场景案例,揭示列表推导式的进阶用法,希望对... 目录一、基础语法重构:理解推导式的底层逻辑二、嵌套循环:破解多维数据处理难题三、条件表达式:实现分支

Python中的filter() 函数的工作原理及应用技巧

《Python中的filter()函数的工作原理及应用技巧》Python的filter()函数用于筛选序列元素,返回迭代器,适合函数式编程,相比列表推导式,内存更优,尤其适用于大数据集,结合lamb... 目录前言一、基本概念基本语法二、使用方式1. 使用 lambda 函数2. 使用普通函数3. 使用 N