1.1:Houdini group是点或者面的集合,如下图所示:
说明:图中有两个点group,一个是红色点组成的集合,另一个是黑色点组成的集合
(相关资料图)
说明:图中有两个面group,一个是紫色面组成的集合,另一个是黄色面组成的集合
1.2:Houdini中哪些存储单元可以划分group:
1.2.1:Points:本质是几何点(可以参考上一篇),可以划分group
1.2.2:Vertices:本质也是几何点(可以参考上一篇),可以划分group
1.2.3:Edges:两个点组成线,可以划分group(edge在数据面板中不可查看,为了简单起见。本文不介绍这个类型,以后介绍,但是这个仍然很重要)
1.2.4:Primitives:可以是线也可以是面(可以参考上一篇),可以划分group
1.2.5:上述内容可以参考Houdini中group create节点中的group type,如下图:
1.3:认识函数(方法)
1.3.1:Houdini中对组的所有操作都是基于函数(方法)的,这里简单介绍下Houdini中的函数,如下图:
说明:
1.上图int为函数(方法)的返回值,可以是各种类型,int只是其中一种,我们可以用一个变量接收这个返回值,也可以直接当做另一个函数的入参(见说明第3点)
2.setpointgroup为函数名,表示这个函数的功能,比如示例中的的函数功能为:设置点的group
3.括号里的为入参,表示这个函数正常运行所需要的一些数据,不同函数的参数可长可短,也可以没有。
4.更多关于函数的介绍大家可以自行百度编程里的函数(方法),推荐简单入门一个编程语言如c/c++(详细可私信up,帮推荐),这里只是降低这篇专栏难度的简单介绍。
2.Houdini中对group的操作演示2.1:在数据面板中查看group(组):
2.1.1:如图,给一个球体创建一个group:
说明:默认情况下会把一个几何体按照group划分的单位放到一个组里,也就是说默认情况下一个几何体只有一个group
2.1.2:如图Points下创建组:
说明:列名:group:组名,列值:1代表在group内,0则反之,在其他单位下划分group基本一样,改变group type 在相应面板查看即可,这里不再赘述
2.2:Houdini中将划分单元移除或者加入到group
2.2.1:group将单元加入和移除如下图:
1.以上演示都是在Points单元下的操作,切换上图run over在对应数据面板查看效果,函数要切换为setprimgroup和setvertexgroup,setprimgroup和setpointgroup是差不多的,setvertexgroup在参数和效果上是有些不同的
2.setpointgroup参数介绍:第一个参数是输入的端点编号,从左到右从0开始递增;第二个参数是group的名称;第三个参数是point编号,可以是固定编号,也可以使用属性对每个point遍历;第四个参数是0或者1,表示是否在group内,最后一个参数是模式目前只有一个取值"set"。更详细介绍可以去文末api链接里了解
3.setvertexgroup参数介绍:第一个参数是输入的端点编号,从左到右从0开始递增;第二个参数是group的名称;第三个参数是primitive编号,可以是固定编号,也可以使用属性对每个primitive遍历;第四个参数是偏移量,表示每隔几个vertex设置一次;第五个参数是0或者1,表示是否在group内,最后一个参数是模式目前只有一个取值"set"。更详细介绍可以去文末api链接里了解
2.3:group的基本函数
2.3.1:如图,演示节点结构:
说明:为了便于理解三个几何体分别以point,vertex, prinum为单位划分group,演示group的三个基本函数,判断单元在group内,统计group内单元数量,以数组形式返回group内所有单元编号
2.3.2:如图,判断单元在group内:
说明:
1.上面只展示了point单元下的数据,看其他单元下的效果只需要放开相应的函数,改变run over即可
2.inpointgroup函数介绍:这个函数是判断point是否在group内,三个参数从左到右分别为输入的端点编号,从左到右从0开始递增;第二个参数是group名称,第三个参数是要判断的point编号,可以是固定编号,也可以使用属性进行遍历;返回值表示是否存在,0表示不存在,1反之,如上图point_exit列;invertexgroup,inprimgroup函数同理
3.详细内容查阅文末api文档
2.3.3:如图,统计group内单元的数:
说明:
1.统计group内单元数量只需要执行一次就够了,所以在detail单元下查看是最方便的
2. npointsgroup函数介绍:统计group内point的数量,两个参数从左到右分别为输入的端点编号,从左到右从0开始递增;第二个参数为要统计的group的名称;返回值是统计的point的数量;nverticesgroup和nprimitivesgroup同理
3.详细内容查阅文末api文档
2.3.4:如图,以数组形式返回group内所有单元的编号:
说明:
1.以数组形式返回group内所有单元的编号只需要执行一次就够了,所以在detail单元下查看是最方便的
2.expandpointgroup函数介绍:以数组形式返回group内所有point的编号,两个参数从左到右分别为输入的端点编号,从左到右从0开始递增;第二个参数为要统计的group的名称;返回值是group所有point编号的数组;expandvertexgroup和expandvertexgroup同理
3.详细内容查阅文末api文档
2.4:group扩展
2.4.1:如图,演示节点结构:
说明:
1.以上演示都是point单元下的演示
2.扩展是为了给Houdini中使用组的提供一个tip,让大家了解编程操作group的灵活性和强大之处,更多内容在以后的专栏或者读者可以自行研究
2.4.2:寻找group内point的最近point
说明:
1.nearpoint函数介绍:这个函数是point函数,不是group的,函数功能就是寻找group内距离输入point最近的point,一共有三个参数从左到右分别为输入的端点编号,从左到右从0开始递增;第二个参数是组的名称;第三个参数是输入点的坐标,可以是固定点的坐标,也可以用属性遍历;返回值是距离最近point的编号
2.该函数还有很多重载方法,重载是编程术语,意思是函数名相同,但是参数的类型,顺序,长度不同。大家可以自行去文末api链接了解
3.可以看到第二个函数使用了一个"@P.x>0"的group名称,这是一种高阶用法,以表达式匹配生成group,表达式可以很复杂,这里只是限定了坐标x>0的所有point
补充说明:
1.Houdini api 文档链接:https://www.sidefx.com/docs/houdini/vex/functions/
2.示例下载:
链接: https://pan.baidu.com/s/1SFgv8corlJmP-A2pqqVBfg 提取码: abcd
3.温馨提示:api文档很重要,以后编程自由很大一部分要依赖api文档
ps:如有错误留下评论,up改正,一起进步上一篇:Houdini vex 语法第一篇(属性)
下一篇:Houdini vex 语法第三篇(参数):待续
标签:
- Houdini vex 语法第二篇(组)_焦点
- 全球新动态:布莱泽奥特曼:人间体弦人妻子公布,也来自骑士棚,第三话登场
- 10部日本校园动漫推荐,让你感受校园时代的青春浪漫! 世界新动态
- 什么是医疗过错鉴定陈述书,怎么写
- 苏醒晒和梅西合影开心过了头 网友:苏醒的快乐震耳欲聋-世界头条
- 时代光影 百部川扬|《电力运维的“渔光一体” 智能光伏集中运维平台》
- 守护学生“舌尖上的安全” 黄龙溪镇开展学校食品安全专项检查
- 绍兴梯田灯光秀斥资千万引争议 景区:不影响庄稼生长
- 时代光影 百部川扬|《走近成都城市“地下生命线”,构筑美好城市生活》
- 定档父亲节 2023健康南山跑成都站即将开启
- 全球快资讯:北京海淀法院:包丽案被告人一审被判3年2个月
- 全球快报:加强“文化+科技”融合 成都文旅不断丰富文化服务供给 提升人民满意度和幸福感
- 湖北多家企业被举报骗招商补贴数亿 当地已调整补贴政策并追讨补贴_天天滚动
- 环球精选!男子受境外人员雇佣装木马软件盗信息,专门去应聘物流公司
- 天天热议:浙江衢州:驻训部队百名官兵撸起袖子无偿献血
- 融通财险开业首年实现盈利 保险业务收入4.6亿元、意外伤害险占比约72%|全球短讯
- H3Care服务品牌战略焕新升级:我的服务,为更多可能!
- 今天国际(300532)6月15日主力资金净买入2497.61万元
- 计算机安全是指什么(计算机安全中的系统安全主要是指什么)-世界热点评
- 我国成功发射“一箭41星”
- 【天天时快讯】“一箭41星”发射成功
- 每日速读!杜仲平:警惕夏季冠心病 老人度夏重“养心”
- 一小区供暖季爆管140余次 供热投诉重点小区启动专项治理 “一区一策”诊治供热顽疾
- 世界今日讯!哪些痣可能有“问题”?如何识别必须去除的痣?癌变信号别忽视
- 让德者受尊、德者有得,“丰台好人”获颁礼遇大礼包
- 焦点速看:又摊上事!特朗普将迎来第三起诉讼
- 实战演练 守护生命——中国二冶城建分公司河北霸州项目开展“起重伤害”专项应急演练侧记 世界独家
- 农发行珙县支行:扎实开展禁毒反洗钱宣传活动|天天看热讯
- 天天速看:农发行高县支行有效开展“反电信网络诈骗法”普法宣传活动
- 农发行南溪区支行 开展警示教育系列活动
- 1 Houdini vex 语法第二篇(组)_焦点
- 2 全球新动态:布莱泽奥特曼:人间体弦人妻子公布,也来自骑士棚,第三话登场
- 3 10部日本校园动漫推荐,让你感受校园时代的青春浪漫! 世界新动态
- 4 融通财险开业首年实现盈利 保险业务收入4.6亿元、意外伤害险占比约72%|全球短讯
- 5 我国成功发射“一箭41星”
- 6 每日速读!杜仲平:警惕夏季冠心病 老人度夏重“养心”
- 7 一小区供暖季爆管140余次 供热投诉重点小区启动专项治理 “一区一策”诊治供热顽疾
- 8 世界今日讯!哪些痣可能有“问题”?如何识别必须去除的痣?癌变信号别忽视
- 9 让德者受尊、德者有得,“丰台好人”获颁礼遇大礼包
- 10 焦点速看:又摊上事!特朗普将迎来第三起诉讼