houdini 函数演示 流光

实现方式

1.noise

2.primuv

3.boolean group

4.使用sort  @Time   group(0)

使用vex 

1.findshort 创建连线 

2.explodeview分散线

3

point vex

f@u = frac(d*@Time*s+rand(@ptnum)*@r);
@P = primuv(1,'P',@ptnum,@u);

light vex

v@p0 = point(1,'P',@primnum);
f@cd = distance(@p0,@P);
@Cd = @Cd+5*fit(@cd,0,0.03,1,0)*@u;

【points]

float s = chf("speed");
i@r = chi("random");
f@s = rand(@ptnum)*s;
if(@s>0.5)
    @s = @s*2;
f@u = frac(@Time*@s+rand(@ptnum)*@r);
@P = primuv(1,'P',@ptnum,@u);


[light]

f@dec = chi("diffuse");  //光随线长度衰减
if(!@dec)
    f@u = 1;
else
    f@u = (float)1-point(1,'u',@primnum);
    
f@lightLen = fit01(rand(@primnum+11),chf("light_minlen"),chf("light_maxLen"));  //限制光长度范围

v@p0 = point(1,'P',@primnum);
f@s = point(1,'s',@primnum);
f@cd = distance(@p0,@P);
v@speedcolor = chramp('speed_color',@s);
@Cd = @Cd+@speedcolor*fit(@cd,0,@lightLen*0.1,1,0)*@u;

控制光或线颜色

v@speedcolor = chramp('speed_color',@s);
@Cd = @speedcolor*0.3;

sort-》shift  $F

color -> group point 0

foreach prim 

2

nprims  distance 实现

 

copy nprim('../copy1')

3

primuv pcopen 实现 

随机添加 random @time

4 labs mops 模块实现点移动 

通过copytopoint ,fuse ,findshortestpath 建立起基本结构

对只选择的点进行流光

@u = vertexprimindex(0,@ptnum)/float(@numvtx);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值