-
Notifications
You must be signed in to change notification settings - Fork 19
Concepts
The basic concept of Waterfall is to provide mesh-based, shader-driven engine effects that can more easily replicate certain types of real world engines and fill in some of the weak points that basic particle systems have. This page tries to describe the high level concept of the Waterfall effect system.
Everything in Waterfall is based around the concept of Effects. An Effect is a single Effect Model, which likely has one or more meshes that have associated Unity materials. Effects are driven by a set of Modifiers, which control how the Effect Model, its material and meshes, respond to inputs like engine throttle, atmospheric depth and other values, which are driven by Controllers. Learn about Effects here and Controllers here
Modifiers are functions that do things to the meshes and material of the Effect Model in response to an input from the game, such as throttle or atmospheric Modifiers. Modifiers are curve-driven, so can be set up in almost limitless fashions, and can be combined, so multiple modifiers can affect one item.
- Material Color Modifier: change a color on a material in response to an input
- Material Parameter Modifier: change a value on a material in response to an input
- Scale Modifier: change the scale of an object in response to an input
- Light Color Modifier: change the color of a light in response to an input
As discussed, an Effect Model is acted upon by Modifiers as part of an Effect. Typically an Effect Model is exported in Unity just like a standard part model, and contains some meshes. Waterfall ships several example Effect Models for effect developers to use, but it's easy to add and reference your own.
A cool Effect can be very complex and tedious to write into a lot of engine configs, but might also be re-usable. The Template system allows Templates to be defined outside of part config files and referenced with a few lines only, so multiple parts can share effects in this way. Learn more about Templates here.