mirror of
https://github.com/storytold/effectcraft.git
synced 2026-10-29 04:26:55 -06:00
44 lines
1.5 KiB
Rust
44 lines
1.5 KiB
Rust
//! Simulation effects, part 2: layer-shattering and surface simulations — CC Ball Action,
|
|
//! CC Pixel Polly, CC Scatterize, Card Dance, Shatter (planar pieces in perspective), Caustics,
|
|
//! Wave World (stepped 2D wave equation) and Foam (stepped bubble sim).
|
|
//!
|
|
//! Written from the public descriptions of the effects' behaviour. Pieces are textured convex
|
|
//! polygons placed in 3D and drawn through a per-piece inverse homography, far to near.
|
|
|
|
use effectcraft_keyframe::Value;
|
|
use effectcraft_project::ParamUi;
|
|
use effectcraft_raster::{Image, Px};
|
|
use rayon::prelude::*;
|
|
|
|
use crate::card3d::{Lighting, Proj};
|
|
use crate::generate::value_noise;
|
|
use crate::sim::{Acc, Post, Shape, Sprite, SpritePlan, h, hs, pct, pt, raster, spec, splat};
|
|
use crate::util::{Plane, SimCache, gauss_plane, layer_or_self, params_key, unpremul};
|
|
use crate::{Buf, EffectCtx, EffectSpec, col, num, p, popup, slider};
|
|
|
|
mod foam;
|
|
mod pieces;
|
|
mod pixels;
|
|
mod registry;
|
|
mod shatter;
|
|
mod surfaces;
|
|
|
|
pub(crate) use foam::foam_plan;
|
|
#[cfg(test)]
|
|
use foam::foam_pop_age;
|
|
pub use foam::{FoamDisc, FoamEnv, FoamPlan, foam_full_plan};
|
|
#[cfg(test)]
|
|
use pieces::Cam;
|
|
#[cfg(test)]
|
|
pub(crate) use pieces::draw_pieces;
|
|
pub use pieces::{Piece, PiecePlan, PieceTex, piece_plan};
|
|
pub(crate) use pieces::{rot_axis, sort_far_first};
|
|
pub use pixels::{PixelPlan, pixel_plan};
|
|
pub use registry::specs;
|
|
#[cfg(test)]
|
|
use shatter::SHATTER_PATTERNS;
|
|
pub use surfaces::{CausticsSetup, WavePlan, Waves, caustics_setup, wave_world_plan};
|
|
|
|
#[cfg(test)]
|
|
mod tests;
|