TheGameCreators / GameGuruRepo

The GameGuru Repository For Community Collaboration
http://www.game-guru.com
137 stars 56 forks source link

MAX - Dissolve Shader/Effect #5401

Open fearlesswee opened 4 months ago

fearlesswee commented 4 months ago

A common effect in games, typically in sci-fi/fantasy genres, is a "dissolve" effect. This is typically used to fade out enemy corpses, but can also have applications for other uses. (Imagine a high-tech sci-fi door that instead of opening/closing, is dissolved and then resolved.)

Example of the effect.

In some sci-fi games, like Planetcrafter or Subnautica, it is also used for building/crafting. (These settings have a high-tech "3D printer" or Star-Trek style "Replicator" that allows new items to be 3D-printed from raw crafting materials.) image image

To give us fine-grain control over the effect, it should be possible to set the "dissolved percent" of a given entity, specify the color, etc. at any given point via .Lua, with 0 being fully-visible and no dissolved portions, and 1 being fully dissolved and invisible. (Imagine a "SetDissolve(e,v,color)" command, which takes the given entity "e", given dissolved percent "v", and RGB color "color".)

I can also imagine other cool effects using this shader as well, like imagine a disintegrator ray which dissolves enemies killed by it, or a vehicle that as it takes damage starts losing parts of it's outer shell with burning edges (essentially modeling the outer layer and inner layer of the vehicle as separate entities, and then using SetDissolve(e,v,color) to partially dissolve the outer layer entity, with an orange-red color), etc.

Here's another example of the effect on ShaderToy, with shader code available. ShaderToy

Necrym59 commented 4 months ago

Was asked for over a year ago, is a bit edge case type effect and not a priority, plenty of other things need doing first.