成为赌徒。
钱不是万能的,没有钱是万万不能的。在生活的压力下,在金钱的驱动驱使下,在诱人的暴富神话下,多少人开始蠢蠢欲动。血脉膨胀,最后被利欲冲昏了头脑,甚至借高利贷,卖房子的义无反顾冲进 股市,币圈,P2P,以及各种骗局从而成为了赌徒。一旦成为赌徒最后都会被爆仓,被崩盘,被收割的,被巧取豪夺,血本无归,家破人亡。从不例外。
天堂新来两个,一个只身穿内衣,一个干脆就是骷髅,上帝好奇。
亲自接待问只身穿内衣的:你怎么裸着身呢?
这位说:我是赌徒,输的只剩内衣了!
上帝又问骷髅:你怎么更惨呢?
骷髅回答:报告上帝,我是股民,割完肉来的。
今天这节内容:
如何实现几个随机的激活点驱动一堆实例拷贝的欲望盒子放大,碰撞。
这一节要实现的效果
.....
▉今天是42岁第025天周一
这是写给houdini的
第051封“情书”
我是geo流程图//--- 1a 类型matrix3
matrix3 mytransform = primintrinsic(0,"transform",@primnum);
//--- 5 找到影响点附近的点;
int pntcnt = npoints(1); //返回引入端口1中的点数
//--- 6 初始化变量
vector tarpos = {0,0,0};
float dist = 0;
float falloff = 0;
//--- 7 循环
for(int i = 0; i< pntcnt; i++){
//--- 2 比较box和引入的随机影响点的位置
//--- 2a 影响点的位置:引入的第一个影响点"0"的位置 ---
//--- 2 比较box和引入的随机影响点的位置
//--- 2a 影响点的位置:引入的第一个影响点"0"的位置 ---
tarpos = point(1,"P",i); //同一时间有多个影响点
//--- 2b 两点间距:
dist = distance(@P,tarpos);
//--- 3 缩放需要的衰减变量,缩放变量
//--- 3a 衰减场变量 "2"=2个单位 ,映射范围远处2个半径位置=0,非常接近点的位置=1
falloff += fit(dist,0,2,1,0); //循环所有衰减值相加
}
//--- 3b 缩放变量: 衰减=0时,scale=1;衰减=1时,scale=1.4
float myscale = fit(falloff,0,1,1,1.4);
//--- 1b 更新矩阵的tranform
setprimintrinsic(0,"transform",@primnum,mytransform,"set");
//--- 4 现在可以根据缩放变量放大矩阵变量mytransform
setprimintrinsic(0,"transform",@primnum,mytransform*myscale,"set");
改变影响点的ID代码
i@id = -1;
1
关于pack primitive1) 是一种引用和参考。它的rotation和scale属性都进入primitve通道的intrinsics属性内部。transfrom属性在point通道。
2) intrinsics的tranform是3乘3矩阵模式,在后面影响点产生缩放效果时会调用这个属性。
3) 结合point通道可以生成4乘4的变换矩阵。
2
取消orient属性1) copytopoint继承了orient属性。它会转移了bullet前进的方向。所以播放时,box阵列会炸开。
2) copytopoint节点里:to Point :输入 ^orient。 就移除了orient属性。
3
实现引入影响点驱动pack box阵列产生box放大既而动力碰撞1) 使用两个geowrangle。一个使用影响点驱动pack box放大,一个重置id,使bullet solver重置id,产生动力碰撞。
2) 第一个geowrangle:
a)首先指定输入:input1:myself需要参考内部geo发生的变化,input2:就是输入外部接口,比如影响点连接第二个接口。
b)代码部分:
// 1 引入影响点创建缩放比例//首先获取box的transform
//--- 类型matrix3
matrix3 mytransform = primintrinsic(0,"transform",@primnum);
// 设置矩阵的更新的transformsetprimintrinsic(0,"transform",@primnum,mytransform,"set");
到这里基本完成一个回路,但是中间还没有加入缩放的信息。 中间部分: // 然后比较box和引入的随机影响点的位置//--- 影响点的位置:引入的第一个影响点"0"的位置 ---
vector tarpos = point(1,"P",0);
//--- 两点间距:
float dist = distance(@P,tarpos);
// 2 同时引入多个影响点 //--- 找到影响点的数目int pntcnt = npoints(1);
//--- 循环 --- 改变引入点的P改成变量ifor(int i = 0; i< pntcnt; i++){
tarpos = point(1,"P",i); //同一时间有多个影响点
dist = distance(@P,tarpos);
falloff += fit(dist,0,2,1,0); //循环所有衰减值相加
}
// 3 重置id1)Geometrywrangle
改变id=-1,让bullet认为是新的物体,从而产生新的id,就产生了相互碰撞的几何体,从而进行动力学运算。
4
设置间隔12帧启动一次随机的影响点1) 使用 enablesolver1节点:
$SF%12 == 0 //除12余0,就是隔12帧运行一次。
接下来理论部分