一、藤曼主干
首先确定藤曼生长的位置
藤曼生长的位置一般在物体的下表面 这里使用pointwrangle节点根据法线方向来选择;
if (@N.y>0)
removepoint(0,@ptnum);
然后使用scatter在选出的面上进行撒点;这里可以在wrangle之前使用attributepaint节点绘制出想要的部分,类似于ue中的刷草操作,得到的mask属性给到scatter,实现对生成点的位置的控制;
如果藤蔓的下方有物体,则需要删除点;
可以使用intersect来查找竖向方向上的点并删除;
vector p,uv; //定义intersect所需要的p,uvw;
int prim1=intersect(1,@P+set(0,-0.01,0),set(0,-0.5,0),p,uv);//沿着y轴向下寻找0.5个单位的距离;
if (prim1>-1)
removepoint(0,@ptnum);
@id=@ptnum; //给每个点单独的id属性;
这里生成线的方式 用pw写出偏移点的位置,然后merge起来 用add连成线;在add节点使用根据id属性来连接;使用resample加点,选用Maximum Segments可以控制点的数量,不使用距离;
@P.y+=-fit(rand(@ptnum+647),0,1,0,2)*2-1; //用fit和rand控制线的随机长度;
这个时候考虑到在藤曼的起始生长位置添加藤曼的结构
首先找到起点的位置;
int pt=nearpoint(1,@P,0.01);
if(pt>-1)
@top=1;
@Cd=0;
@Cd.x=@top;利用红色标注出来,然后copy五根,在起点做随机偏移;
if(@top