基础原理以及公式
float Fr= ch(“fixed_radius"); // assign the value for the fixed radius
float Mr =ch(“movable_radius"); //assign the value for the moveable radius
float Sp= ch(“speed")*@Time; // how quickly do you want to draw the pattern
float Sc = ch(“spiro_scale"); // the global scale of the drawing
float Po = ch(“pen_offset"); // point offset to the moveable radius
if(Mr==0)Mr = 1; // make sure that moveable radius is not zero
if(Fr==0)Fr = 1; // make sure that moveable radius is not zero
@P.x = (Fr+Mr)*cos(Sp) - (Mr*Po)*cos(((Fr+Mr)/Mr)*Sp);
@P.y = (Fr+Mr)*sin(Sp) - (Mr*Po)*sin(((Fr+Mr)/Mr)*Sp);
1. 创建几何体
创建一个geometry,然后命名spirorama。双击进入geometry层级,然后删除掉file节点,新建一个球体,并将它的尺寸设置成0.01.
在sphere节点下建立一个attribute wrangle节点,并且在vexpression选项中写上我们之间提到的表达式。
2. 创建引导几何体
接下来我们创建3个circle,分别对应Fixed radius circle, Moveable radius circle, Pen Offset.并且按图设置他们的参数,然后给他们加上color节点。
3. 合并集合体
接着我们将目前有的节点按照图中的样子合并在一起,然后再加一个switch节点,来切换他们的显示。最后再加个null节点,并且设定成粒子的发射体。
4. 将几何体设置成粒子的发射体
回到obj层级,选中spirorama1节点。然后点击一下particles工具栏上面的Source Particles图标,就会生成另外2个独立的节点。AutoDOPNetwork和Source Particles。
5. 设置粒子发射参数
双击进入AutoDOPNetwork节点,选中POP Source节点。设置Impulse Activation - $FF>2, Impulse Count - 1 (1 frame per cook), Life Expectancy - 40 (in seconds)。
6. 设置2次采样参数
为了让粒子发射的效果更好,我们将AutoDopNetwork的Sub Steps设置成8.
7. 增加一些风力
我们可以在AutoDOPNetwork节点下给粒子增加一些风力,这样粒子飘散的形态会更加的丰富。并且按照图中的参数进行设置。
8. 渲染粒子
回到obj层级,然后进入Source Particles层级。我们需要创建3个物体进行渲染。线条,蜘蛛网,和球体。
a. 线条
我们在import_source下面增加一个Attribute Wrangle节点,然后写上
@Cd.r = @age/@life;
@Cd.g = 1.0 - @age/@life;
来控制粒子的颜色。
接着在下面创建一个add节点,类型选为By Group,add设置成All Points。
b. 蜘蛛网
在Attribute Wrangle节点下另外再加一个ConnectAdjacentPieces节点,Connection Type 设置成Adjacent Points, Search Radius设置成0.2, Max Search Points设置成8.
控制线条的粗细
最后我们添加一个Attribute Wrangle节点,然后写上@width = 0.0025;。用来控制线条渲染时候的粗细。