HeroEngine Forums
Welcome, Guest. Please login or Register for HeroCloud Account.

Author Topic: billboard particles dynamics  (Read 1360 times)

AWW_boss

  • General Accounts
  • *
  • Posts: 846
  • gdfgd
    • View Profile
billboard particles dynamics
« on: Aug 25, 15, 01:25:46 AM »

Before i dig deep into the particle system.

Is it possible to spawn a billboard particle and then dynamically adjusts its
a) rotation
b) position
c) scale

I need to be able to adjust all three.
Logged

FI-ScottZ

  • General Accounts
  • *
  • Posts: 1407
    • View Profile
    • Forever Interactive, Inc.
Re: billboard particles dynamics
« Reply #1 on: Aug 25, 15, 10:18:22 AM »

Can you explain what you mean by "dynamically adjust"?  If you mean to manually change values on a particular particle, I don't think so. As I understand it, the emitters do the adjusting of particles based on the emitter and particle settings.

If you want a client-side-only billboard that you can manually control, you might consider making one from a prop bucket.  We use some billboards that way.  But I suppose it depends on just what it is you wish to accomplish.
Logged
Scott Zarnke
Lead Programmer, Visions of Zosimos
CTO, Forever Interactive, Inc.

AWW_boss

  • General Accounts
  • *
  • Posts: 846
  • gdfgd
    • View Profile
Re: billboard particles dynamics
« Reply #2 on: Aug 25, 15, 10:45:49 AM »

Yes "manually change values on a particular particle". That is what i ment.
I am trying to accomplish a laser effect like in this video. I am spawning two billboards from prop bucket for each laser beam (just like you said), and than adjusting the properties of each billboard, its rotation, position and scale.
https://www.youtube.com/watch?v=Gm86ncoBefE&feature=youtu.be

The problem is, spawning this amount of billboards is a huge impact on performance [quotes Herb]
Quote
There's not much difference between adding 200 billboard nodes to a scene vs 200 of any other non-animated node.  It takes some time to process 200 nodes, and then they have to be rendered.
200 single material, non-animated mesh nodes with 1500 triangles each would probably have an equivalent performance differential.
There's a huge performance difference between rendering a particle system node that has 200 billboard particles, and 200 separate billboard nodes.

I am trying to find out if it is possible to accomplish this effect with particle system.

« Last Edit: Aug 25, 15, 10:47:29 AM by AWW_boss »
Logged

FI-ScottZ

  • General Accounts
  • *
  • Posts: 1407
    • View Profile
    • Forever Interactive, Inc.
Re: billboard particles dynamics
« Reply #3 on: Aug 25, 15, 11:03:52 AM »

In that case, I think that can be done with particle effects by making an effect that goes straight from an emitter and then adjusting those properties on the emitter in real time, though I haven't tried that personally.
Logged
Scott Zarnke
Lead Programmer, Visions of Zosimos
CTO, Forever Interactive, Inc.

AWW_boss

  • General Accounts
  • *
  • Posts: 846
  • gdfgd
    • View Profile
Re: billboard particles dynamics
« Reply #4 on: Aug 25, 15, 11:09:42 AM »

So in theory i could create an emitter, get a reference to it and adjust its properties... all that via HSL?
Logged

FI-ScottZ

  • General Accounts
  • *
  • Posts: 1407
    • View Profile
    • Forever Interactive, Inc.
Re: billboard particles dynamics
« Reply #5 on: Aug 25, 15, 12:47:20 PM »

Yes, the emitter instance itself should be able to be changed in terms of position, rotation, etc.  Just not the emitter or particle specs.
Logged
Scott Zarnke
Lead Programmer, Visions of Zosimos
CTO, Forever Interactive, Inc.

keeperofstars

  • General Accounts
  • *
  • Posts: 998
    • View Profile
    • StarKeeper Online
Re: billboard particles dynamics
« Reply #6 on: Sep 06, 15, 06:01:56 PM »

http://hewiki.heroengine.com/wiki/Particle_effects

Have two pieces.
First lets you create a temp customized version of a particle. The 2nd lets you spawn / emite the particle from a set location, rotation, and trajectory.

Quote
function CustomizeParticleSpec(instance as NodeRef, name as String, value as String) as Boolean

Allows setting the properties of a particle spec used for a specific instance of a particle emitter. Internally, this creates a temporary unique copy of the spec -- changes will not be persisted, nor will they affect other instances of the emitter.

Quote
function EmitParticle(emitter as NodeRef of Class HBNode, position as Vector3, rotation as Vector3, trajectory as Vector3)

Causes an emitter to emit a particle at the given position, with the given rotation and trajectory. The particle is independent of the emitter's position, rotation, and normal timing for emissions. This is a powerful and flexible technique which can be used, for example, to emit particles at a character's feet when an animation note is triggered, whenever the mouse moves (at the world location pointed to by the mouse), whenever keys are pressed, or at any other time and place. And by calling the function multiple times for a given event, multiple particles can be emitted from different positions using the same emitter, creating, for example, a "wall of fire" effect.

Logged
[img]http://screencast.com/t/x7btcSSyp3h0[\img]