欢迎光临散文网 会员登陆 & 注册

Blender几何节点技巧(提取属性,操控属性)

2023-03-20 15:12 作者:火锅料理  | 我要投稿

如何控制移动一个点

思维:要找到能够实现点移动功能的几何节点,确定选中的点,确定移动的方向和距离(总结为矢量


设置位置能够对几何数据中的点进行移动

ID内数据是(0,1,2,............)选中项是布尔输入,0为假,后面点的序号都为真,所以能够看到除了0序号的点都在移动,那么下一步就要找到要移动的点,把他的序号构建为1,其他的序号构建为0

这里我选用运算节点,B值选取的就是自己想要移动的点的序号,如果相等就会输出1,不相等就输出0

然后在偏移量里进行调整就行

只需要打开查看器的三角,然后选中3D视图中的点,就可以再数据查看器的第一列看到点的序号了


如何控制移动多个点

举个例子,我们想要12,15,16....24序号的点移动

如何提取这几个序号的点呢?

我们可以对12——24内进行一个范围提取,先用大于等于和小于等于提取出两个极端范围,再进行一波并集处理

为啥不直接大于且小于,因为它没有嘛,所以多了两个节点感觉有点麻烦
上面白色区域就是选中的点了——记得预览器中一定要选中点模式

接着剔除13, 14这两个序号

后续就是移动了

有没有更加便捷的选取点的方法呢

答案肯定是有的啦,甚至比直接输入点序号还方便,我们可以直接再外部选取要确定的点,储存到顶点组信息中

选中的顶点的值默认是1,所以不需要后续的运算

我想要每个选中的点移动的方向和距离都不相同

最简单的就是用一张噪波纹理图提取出色彩信息(等价于矢量信息

也可以通过随机值来做随机矢量


这种相对来说更加可控一些


这种变化是混乱的,适合后期进行一些变动来增加细节

我想要选中点的偏移量变化是有规矩的
本质上就是要手动构建一个三位向量集合,集合数量要和选中的点数量一致

比如选取三个点分别做(1,1,1)(1,2,1)(1,3,1)的移动

合并XYZ能生成一个向量(矢量)

问题一:我并没有在几何节点中看到有关数值序列的生成节点(比如生成一个1,2,3,4,5,6的数字序列)(为啥我不选取index数列呢,因为和模型的关联度太高了,我希望这个数列能独立出来)

后续询问是几何节点不支持自建数组......

当然,没有办法我们创造办法

首先要解决的就是采用的数据不和原模型关联嘛,那我直接在几何节点里新建一个几何体,用曲线能更加直观的采集数据,也比较节省性能。

但是目前只有两个点的数据,我们得在这条直线上分割以获得更多的点,最后转成网格获得点数据

回到最开始,我们需要的是(1,1,1)(1,2,1)(1,3,1),所以细分一次,调整起始点和终点

到这我们的目标就达成了

后续发现可以在自定义属性里自定义数组(也可以用python直接代码输入)

问题接着出现

自定义的数组无法接入到原始模型中

具体表现为没有一个命名为Fine的数组

思路转换

我们把选中的点的GROUP数值提取出来,再转变为可用数组

直观的转变

[0,0,0,0....,1,....1,....1,.....0,0,0,0]————————[0,0,0,0....,1,....2,....3,.....0,0,0,0]

果然要搞算法过程。。。。


在这用到的是累积场

和之前的初始数据进行一波乘法

可以看到选中的点按规律变化了


如何做进一步的变化呢

答案是通过曲线来调整映射数值

问题出现——浮点曲线只能在0-1的范围内映射数据

解决方法——可以在浮点曲线的首尾进行一个除法,一个乘法,来满足要求。(手动调节比较麻烦,有没有更加智能的)

直接一步到位把正整数映射到0-1范围内的,取倒数

因为没有倒数这个选项,所以选用乘方,指数为-1

输出的时候记得再取一下倒数,(然后这个曲线调整因为进行数值经过倒数所以并不是直接对应调高就能变高的)

为啥模型的颜色都是白色的——因为取倒数的时候0映射成inf了,在倒数变回来就全都是1了


能不能选取边进行移动呢

从网格体基本属性上来说,两点构建一个边,所以选中边的两段点做相同的移动就行(可能多个边操作起来就比较麻烦而已)

学习控制点属性有啥用呢

从点出发,能够更加精细的控制后续的变化,比如后续对散布实例的一些变换控制,


Blender几何节点技巧(提取属性,操控属性)的评论 (共 条)

分享到微博请遵守国家法律