User:Talia Tokugawa/concept/CrazyParticle

From Second Life Wiki
< User:Talia Tokugawa
Revision as of 01:37, 14 April 2024 by Talia Tokugawa (talk | contribs) (Added the section about exceeding particle limits and headers as it was all looking a bit of a wall of text.)
Jump to navigation Jump to search
  1. Crazy Particles
    1. Intro

This entire idea hinges on the fact that Parcel Media runs by assigning a texture to it and then if the viewer has parcel media set to run it will replace ALL instances of that texture with the media set in the parcel settings. As such if you take the UUid of the texture and add it to a particle script (or in firestorm drop the texture from your inventory into the slot on the particle editor) if the viewer is playing the parcel media that texture will be replace with the media set in the media settings.

    1. Guide

[| Step by Step Guide ]

    1. Additional Experiments
      1. Excessive particles

One of the first things I did when I returned to Second Life after a long break was the creation of the "Viz Hud". I used started with a js script by Iacopo Sassarini featuring Hopalong Orbit Generator and a variation on some work by Barry Martin. I have put many many hours work into the script since. The script itself uses Three.JS to render particles in geometric patterns with a few extra features.

I went to a particle show put on by dOOb and Kaly at Burn2.0 shortly after to test it. At that time I believe I had it running with 128k particles as a hud overlay. However, with the discovery of the Video particles it was only a matter of time before I would try this out. If you attended the Octoburn 23 event it's also possible you might have seen this had you been to my parcel and turned on media as I had it running as an overlay to my land texture.

I believe regular particles are done by OpenGL, and then the particles I'm doing extra are covered by Chromium, Three.JS and WebGL. Chromium and WebGL come with Second Life (firestorm) and Three.js is being cached by the client so it's able to render. Whilst not techncially the same particles they are still defined as particles and they are all being rendered by the client itself using (with the exception of three.js) components that everyone has as they came with the install files.

I guess you could say I am using a form of preprocessor to render particles to use as particles. I think really the on argument "Should" be... Is should it really be 8192+ rather than 8192*. As it's a fair argument to point out that it's the "SAME" 32000 particles being rendered to be used in each of the 8192 particles...

8192*32000 = 2.62144e+08 = 262144000 ( Or 8192 +32000 = 40192 (still beats out the original figure ;P ))

I could push that an extreme amount, 32k was a figure I got to before which there was not significant drop off in the complexity of the patterns. Soo before this gets into arms race of "how many particles.." this was not me trying for the most. This was my optimising for a balance between complexity and particle count. I was going for the best look for the least hit in performance.

[[1]]


    1. History

I would like to preface this with the fact I've never seen anyone else do this and I spent a lot of the weekend going around asking particle performers, installation artists and Machinimarists various questions the answers to which would confirm this is not something they tried without actually giving it away.

      1. Discovery:

Basically, the story goes as follows. Friday night I was in need of some distraction and Frontside gave me a shout and there is no-where better for pure distraction IMHO.

I landed had his and I don't know why but the idea just hit me... that and an onslaught of Dubstep and vibrant flashing colours. At this point I was assuming it most have been tried and probably part the reason I thought to try is a lot of the surfaces there were already parcel media textures.

So I managed to get the UUid for the Parcel Media which had his live VJ show running on it, found a quie... Less chaotic area. Open up the Particle creator in firestorm, The last thing people would have heard of me was "Holy **** it actually worked..." as when I stopped playing around with it the place was near empty just sleeping AFKs.. I couldn't understand why I'd not had a very excited Frontside shaking me doing anything to get my attention.

[| frontside first video]

Then it occurred to me that maybe the particle creator in Firestorm was client side until you injected the script. I did a quick experiment to confirm, and it was the case.

[| image from the inversion tests]

I am sure it's obvious what it was that I did. You get the UUiD for the Parcel media and then feed that into a particle script so that when people have media playing over the parcel stream it will be replace the particle texture with the media. But the possibilities for this are astounding.

      1. Examples:
        1. Burn2.0

[| Burn2.0 was not the first place I tried to offer somewhere else but they never replied.]

Most of what I have done so far as involved ribbon particles. Just cause they look pretty cool and are quick to get a good result from.

[| at the burn when I first got them live, Took this as a preview teaser for skye who'd been helping out.]

I did my first big(ish) public reveal last night. During the tidy up and the Burn2.0 event it's tradition to run around and burn everything. I jumped in on the last burn before the deadline asking if I could "light it".. I said I had discovered some "new magic", I pressed inject, the window closed and no script appeared. So in about 20 secs flat I rebuilt the entire particle tried again and I filled the sky with trails of animated fire that arc it's way down to ignite the final burn :) (Thank you Zoren for allow me to hijack the burn, Skye for putting the media stream on and Puddles for getting me the texture.)

[| getting close to what I wanted]

I think my next experiments are going to have to be with the various shaders and layering images. There are too many possibilities for me to try keep this secret. SO I will be doing exactly the opposite. Finding every one and group that I think is going to make some good usage of it. Broadcasting it :P

[| another experiment after the actual reveal. I didn't get video of that as there was a deadline, first attempt failed and so i was wearing the emitter and dived into/under the burn to get it going.]

And, yeah, I know as soon as I post this twenty people will come out of the woodwork with examples of it in use, but I have not. I am in machinima groups, particle groups, and art groups so if it was widely known I am fairly sure I would have heard about it.