Houdini VEX笔记

一、基本变量

在这里插入图片描述
如图,可以理解其实wrangle里的代码本身就在一个for循环里面,所以其实是操作一个子函数,这个概念很重要!

detail 的话,只运行一次
在这里插入图片描述

切线

vector A1 = point(0,"P",@ptnum);
vector A2 = point(0,"P",@ptnum-1);
@N = cross(@N, A1 - A2) * 30; 

拼接向量

set(i.x, i.y)   // {x,y} => vector2

Tips

在这里插入图片描述
可以看到vop其生成的代码

根据两个点画线

在这里插入图片描述

removeprim(geoself(), @primnum, 1);
vector c1 = getpointbbox_center(0);
int pt0 = addpoint(0, c1 + set(0, 4, 0));
int pt1 = addpoint(0, c1 - set(0, 4, 0));

addprim(0, "polyline", pt0, pt1);

缩写

https://www.it610.com/article/1293836798295875584.htm

移除不必要的点

facet1 选 unique
在这里插入图片描述

int pts[] = nearpoints(0,@P,0.01);

if(len(pts) > 1)
{
    removepoint(0,@ptnum);
}

随机模型

https://www.youtube.com/watch?v=SVRk3sxzpLU

注意 最好是6个输入
在这里插入图片描述

随机数

在这里插入图片描述

@a = rand(@ptnum) * 3 + 1;
printf("%d \n", @a); 

查看unity HDA节点内容

在这里插入图片描述

Unity实例化节点

https://www.sidefx.com/forum/topic/38973/

法线奇怪的问题

模型合并后法线需要重新计算,加个normal节点就好

在这里插入图片描述

把polygon转换为point

在这里插入图片描述

两个点随机一个且不能重复某一个

https://forums.odforce.net/topic/27103-acess-previous-point-attribute-in-wrangle/

在这里插入图片描述

第一个wrangle

i@roof_extra = int(rand(@ptnum + ch("seed")) * 2);

这里随机种子可以增加一个参数,不然随机的不明显(可以是一个可手动调的值)

int(rand(@ptnum * ch("../sort1_window/pointseed")) * 8 + 1)

第二个wrangle

int a = point(0, "roof_extra",@ptnum);
int b = point(0, "roof_extra",@ptnum-1);


if(a == b && a == 1)
{
    @roof_extra = 0;
    // printf("%d %d |", a, b);
}

简单逻辑

要在一个wrangle里做,不然会出问题

if(hasattrib(0, "prim", "chimney"))
{
    @group_delete = 1&@group_roof_extra2;
    // printf("%d ",@ptnum);
}
else
{
    @group_delete = 0&@group_roof_extra2;
}

通过VEX打组

有例子,很好理解,没事可以下拉节点列表查看一下
在这里插入图片描述

添加射线可视化

int points[];
points[0] = addpoint(0, @P);
points[1] = addpoint(0, @P + chv("direct") * ch("scale"));

int l = addprim(0, "polyline", points);

在这里插入图片描述
在这里插入图片描述

  • 21
    点赞
  • 89
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Houdini中,VEX是一种用于编写自定义节和操作的编程语言。VEX层级书写可以根据需要在不同的节中进行编写。例如,在Sublime Text中,可以通过以下步骤进行VEX层级书写: 1. 打开Sublime Text编辑器,并确保已安装最新版本的Sublime Text Package Control插件。 2. 在首选项菜单中,选择“程序包控制”。 3. 在“程序包控制”菜单中,选择“安装程序包”选项。 4. 在弹出的搜索框中,输入“VEX”并选择相应的VEX插件进行安装。 5. 安装完成后,您可以在Sublime Text中使用附加的VEX组件进行编辑和编写VEX代码[1]。 此外,在Houdini的wrangle节中,也可以使用VEX进行编写。例如,使用以下代码可以在wrangle节中进行条件判断: ``` if(hasattrib(0, "prim", "chimney")) { @group_delete = 1; // 其他操作 } else { @group_delete = 0; // 其他操作 } ``` 还可以在wrangle节中使用VEX进行更高级的操作和计算。例如,使用以下代码可以生成随机数: ``` @a = rand(@ptnum) * 3 + 1; printf("%d \n", @a); ``` 通过VEX的语法和函数,可以对Houdini中的节进行自定义操作和计算。 综上所述,Houdini中的VEX层级书写可以在Sublime Text等编辑器中进行,也可以在wrangle节中使用。这样可以实现自定义操作和计算的需求。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [VEX:Houdini Sublime Text附加组件](https://download.csdn.net/download/weixin_42123296/18966372)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Houdini VEX笔记](https://blog.csdn.net/A13155283231/article/details/88418667)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值