|
Jesu Forager
Registered User
Join date: 17 Oct 2007
Posts: 25
|
01-14-2008 19:52
I've been messing with particles off and on for a few weeks and have yet to come close to that wispy smoke I see on some cigarettes. Anyone have any tips? I was thinking of trying very low vector force and long life span next. I know I'll need ot make a new texture, but that's easy compared to getting the particle system behaving how I want (in this case wispy smoke). Thanks for all you can help.
Jesu
|
|
Void Singer
Int vSelf = Sing(void);
Join date: 24 Sep 2005
Posts: 6,973
|
01-15-2008 02:52
best suggestion, check out the particle laboratory inworld... it shows you what each property does
_____________________
| | . "Cat-Like Typing Detected" | . This post may contain errors in logic, spelling, and | . grammar known to the SL populace to cause confusion | | - Please Use PHP tags when posting scripts/code, Thanks. | - Can't See PHP or URL Tags Correctly? Check Out This Link... | - 
|
|
Debbie Trilling
Our Lady of Peenemünde
Join date: 17 Oct 2006
Posts: 434
|
01-15-2008 04:55
Here is one I prepared earlier... list StartSmokeVector = [ <1.00, 1.00, 0.913>, <1.00, 1.00, 0.850>, <1.00, 1.00, 0.924>];
list EndSmokeVector = [<0.916,0.916,0.916>, <0.716, 0.716, 0.716>, <0.816, 0.965, 0.616 >];
float TimeChange = 1.00;
ParticleStart() { llParticleSystem([ PSYS_PART_FLAGS, PSYS_PART_EMISSIVE_MASK | PSYS_PART_INTERP_COLOR_MASK | PSYS_PART_INTERP_SCALE_MASK | PSYS_PART_FOLLOW_VELOCITY_MASK, PSYS_SRC_PATTERN, PSYS_SRC_PATTERN_ANGLE, PSYS_PART_START_ALPHA, 0.25 + llFrand(0.40), PSYS_PART_END_ALPHA, llFrand(0.10), PSYS_PART_START_COLOR, llList2Vector(StartSmokeVector,(integer)llFrand(llGetListLength(StartSmokeVector))), PSYS_PART_END_COLOR, llList2Vector(EndSmokeVector,(integer)llFrand(llGetListLength(EndSmokeVector))), PSYS_PART_START_SCALE, <0.05,0.05 + llFrand(0.05),0.00>, PSYS_PART_END_SCALE, <0.01,0.15 + llFrand(0.15),0.00>, PSYS_PART_MAX_AGE, 1.00 + llFrand(1.50), PSYS_SRC_MAX_AGE, 0.00, PSYS_SRC_ACCEL, <0.00,0.00,llFrand(0.10)>, PSYS_SRC_ANGLE_BEGIN, 0.00, PSYS_SRC_ANGLE_END, 0.10 + llFrand(0.15), PSYS_SRC_BURST_PART_COUNT, 1 + (integer)llFrand(3.00), PSYS_SRC_BURST_RADIUS, 0.05, PSYS_SRC_BURST_RATE, 0.10 + llFrand(0.20), PSYS_SRC_BURST_SPEED_MIN, 0.12, PSYS_SRC_BURST_SPEED_MAX, 0.15 + llFrand(0.15), PSYS_SRC_OMEGA, <0.00,0.00,llFrand(0.30)>, PSYS_SRC_TEXTURE, "d114fcdd-8e66-5525-66c7-da5d0cd233c1" ]);
}
default { state_entry() { llSetTimerEvent(TimeChange);
}
timer() { ParticleStart(); TimeChange = 0.75 + llFrand(0.75); } }
You'll note the use of a timer. Some are quite vocal against the use of timers to control particles, as each llParticleSystem() call forces a client update. This can adversely effect lower-end spec PC's (so-called "client-lag"  , altho' higher end specs have no problems coping, in my experience. Your product. Your script. Your world. Your imagination and, ultimately your decision. But you should nevertheless be aware of this.  Looks cool tho' but you'll want to tweek and fine-tune to suit your needs. Perhaps even remove the timer and try PSYS_PART_WIND_MASK instead. I personally think it lessens the aesthetic but you might want to give it a go anyway. Because the effect is so "wispy" you'll need to put it into a small prim; a 0.05 x 0.05 x 0.05 or smaller sphere works well. Hope that helps
|