Render Blobs - Hidden Particle Editor Element

edited May 2015 in Tools

So I was looking into how the gel-like blobs on Rubick's staff were made and when I opened up the decompiled particle in the editor I saw this: Render Blobs Element

It's not in the render list when you try to add it manually, so it seems this is a hidden element in the editor. Here's the options it comes with: Render Blobs Options

Playing around with it, I found it's a very powerful method to render thick gooey materials, almost identical to the gel in Portal 2. Here's what it looks like: Blobs Preview

The above pic is with a black material and a yellow glow-sprite so you can see the 3D easier.

There's also a few catches I've noticed that make it different from ordinary particle render types:

  • Blobs do not obey the particle's radius or colour setting, but you CAN set their material
  • Blobs cannot use most textures, but they should render any texture that shows up when you search 'blob'
  • Blobs take a control point as their size, and will not show at their default [0,0,0] size; so this must be preset
  • Blobs' scale control point is not [SizeX,SizeY,SizeZ] and acts strange if X, Y and Z are not kept equal
  • Blobs can be made more detailed by lowering the cube width value, or the scale control point's X value
  • The render radius and the CP's Z value set the blob's radius, but all other values should be kept proportionate
  • Changing or removing the 'lifetime random' element causes the blobs to act rigid and slow after a few seconds

I've prepared a download link for a base particle if anyone wants it, since there doesn't seem to be any other way to use it.

Download Base

Anyone think there's anything else hidden in the editor we could find?

EDIT: Found some more info on it's usable textures; it fails to render anything complex like transparency or masks, but it can handle most-anything flat. There are also a few materials it can use with reflectivity, such as that used for Jakiro's Ice Path. There is also an ugly-purple texture for oil and a seemingly broken (yet working) scrolling texture for water. Just search 'blob' under materials.

Comments

  • edited May 2015 Posts: 13

    Thanks for this! I was actually thinking of doing exactly this a few days ago but never got around to it. Also glad that you uncovered the way it's used (in regards to operator and initializer), saves me some time trying to figure out myself (although I'm sure there's still more to it) :)

  • edited May 2015 Posts: 13

    So it seems even though it is technically editable, it is not rendered or usable outside of its own particle system. In other words, putting the blob particle system into another one as a child does not render it unfortunately. :(

  • edited May 2015 Posts: 22

    I've noticed that too, but it definitely is possible - they did it with the Rubick staff's ambient (rubick_staff_ambient.vcpf) which has the centre-piece as a child, which shows up even if you hide all the other elements (including the emitter) and just leave the child visible.

    EDIT: It looks like if you save your particle and then close and reopen it, the child shows.

    They probably couldn't be bothered to work out how to fix that and decided to hide it since they didn't want to deal with the bug reports.

  • edited June 2015 Posts: 13

    Yea, so it seems render blobs is very picky about what materials it will use (even if some of them are rendering the blob particle in the preview when selecting a material). It will generally accept materials and show the blob when using the Ice Surface Dota shader or the Refract shader. Other material shaders don't seem to allow it to render properly (I haven't tested them extensively though).

  • Posts: 1

    Render blobs is leftover from Source. The fact that it's hidden and still doesn't work properly implies to me that it's either deprecated or not fully ported.

    I have some videos showing it from SFM1

    Render_blobs is NOT the same as Portal 2 gel. It's generally considered a probable prototype. It was very laggy in Source1 and didn't render 100% properly. They never really used it in games as it was so expensive.

    Also, hi! This is my first but probably not my last post here. I was absolutely huge with SFM and the technical side of things (figured out HWM for Source 1) and I'm loving Source 2 so expect to see me around.

  • Posts: 22

    Hey there Narry, and welcome!

    It does look pretty darned similar to the gel from Portal 2 at least when it gets to small blobs, maybe they ported it over. At the very least I can say it's not deprecated, as it's used in DotA. The particle effects on Rubick's staff are blobs and so is Jakiro's Ice Path.

    Aside from that it's not used much elsewhere from what I can see so you might be right about it being expensive, but it's pretty darned fast in Source2 compared to how it was in Source1, so I wouldn't worry about using it now and then if you need to. Besides, if you're SFMing it won't lag for your viewers since it's pre-rendered to video.

    I think they just hid it because it behaves so strange it's pretty darned hard to figure out how to use it. I have a feeling that blobs were developed and managed by just one guy on the dev team and he made it so complex even he can't explain it, so maybe the dev team themselves don't know. If you decompile the particles that use blobs it's pretty freaky what they've used to make them work.

    That aside, I have to say this community has helped me so much with the mod tools that I was able to finish my old broke-as-hell DotA SFM from almost 18 months ago using the new SFM for Source2 in the Reborn client. Thank you so much, guys!

  • edited July 2015 Posts: 1

    Hi, just joined to share some info about those "Render Blobs" I have from testing them in Source1 Filmmaker. Strangely enough, most of it applies on Source2 too. I wanted to do video tutorial on how to use them, but couldn't force myself to do so, yet.

    • A bit of History

    As mentioned on this site, the first incarnation of render_blobs started as experiment for new enemy type for Half-Life 2. That experiment was called "Blobulator", which happened to be used (in some form) in Portal 2, not as particles though. There's also some info about them in Portal 2's dev commentary, but anyway.

    That blob implementation is using Metaballs with marching cube's algorithm (here's 2d demo and more technical info) to minimize CPU usage on rendering them, [not scientific explanation] by projecting blobs' onto grid (instead of sampling each possible position in 3d space), interpolates position of each generated vertices, and connects together as a mesh-y, blobby thingy.

    • Now to the particle blobs themselves.

    "Cube Width" is size of that grid I've mentioned. Lower values produces more vertices, giving more detailed/smoothed mesh at cost of performance, or even crashing/hanging engine itself.

    "Render Radius" is overall size of blobs.

    "Cutoff Radius" is the "magic" value" controlling "stickiness" of blobs. It tells how far between 0 and "Render Radius" can blobs grow. Thus "Cutoff radius" can't be higher than "Render Radius" (well, it can, but there's no effect on doing that)

    "Scale CP" - as you've figured out (the hard way I guess), it doesn't scales blobs on X,Y and Z axes. It is a multiplier value for "Cube Width", "Render Radius" and "Cutoff Radius". As in "Cube Width" will be multiplied by CP's X position, "Render Radius" by CP's Y position and "Cutoff Radius" by CP's Z position. It also allows to animate those 3 values in Filmmaker or by code (not quite sure on that one). The only problem I had with Scale CP in Source1, is that engine used CP's position from not center of particle system, but from center of the whole map/world

    As it comes to materials, it's better to use one-color ones, with some kind of shininess for cool look. From what I've checked, there's not many shaders to choose from in Source2. "GlobalLitSimple", "Hero", or, probably used in DotA2 only, "IceSurface".

    On Source1 there was also problem with lighting blobs (well, lights on particles in general is still a problem in Source1). They could only use map lights and only from player position. They wasn't receiving light from dynamic lamps(all of Filmmaker's lights are dynamic).

    Maybe, with release of Source2 some of those problems are/will be fixed, but only maybe.

  • edited July 2015 Posts: 22

    Wonderful info, I think that's literally everything we need to know about blobs!

    Maybe, with release of Source2 some of those problems are/will be fixed, but only maybe.

    I doubt it. Knowing VALVe and the DotA dev team they're likely to just figure it works as is, and leave it at that, since it is barely used. They really don't care about small stuff that only affect a few people.

    Proof? For about 2 months now I've had an issue that prevents me from getting any further than the loading screen in DotA, and this issue affects my account and ONLY my account. My smurf and other accounts can play DotA fine on my computer, but my account cannot get past the loading screen on mine or other computers. Confirmed that the issue is something on Valve's servers and contacted steam support twice as well as the DotA dev team directly, and I have ZERO responses. They don't care. (Direct any replies to this here to prevent digression.)

    Back on topic, has anyone figured out Status Effect particles yet?