[Maya 渲染教程]郑和下西洋特效篇
来源:vacce华设 作者: 发布时间:2007-06-01

 

  //creation expression floats partcles
  vector $ppos = spray_particleShape.position;
  float $pu = $ppos.x;
  float $pv = $ppos.z;
  float $samp[] = `colorAtPoint -o RGBA -u $pu -v $pv oceanShader1`;
  float $py = $samp[3];

  //set initial particle position on ocean surface
  spray_particleShape.position = <<$pu, $py, $pv>>;
  我们还要对粒子的寿命进行控制

点击放大图片

spray_particleShape.lifespanPP = rand(0.5, 2);

  对粒子的速度进行控制。

点击放大图片

 

  //runtime expression for ocean spray

  //check wave surface height
  vector $ppos = spray_particleShape.position;
  float $pu = $ppos.x;
  float $pv = $ppos.z;
  float $samp[] = `colorAtPoint -o A -u $pu -v $pv oceanShader1`;
  float $py = $samp[0];

  //clamp lower particle altitude to wave height
  if($ppos.y <= $py) {
  spray_particleShape.position = <<$pu, $py, $pv>>;
  }
  //drive particle down when it's too high
  else if($ppos.y > $py + ocean_emitterPlane.sprayHeight) {
  vector $pvel = spray_particleShape.velocity;
  spray_particleShape.velocity = <<$pvel.x, $pvel.y - ocean_emitterPlane.sprayPull, $pvel.z>>;
  };