载入中...
搜索中...
未找到
SurfaceDropletSimulation.cpp
浏览该文件的文档.
27 if (!binding_ || !binding_->isValid() || location.triangle >= uint32_t(binding_->triangleCount()) ||
35 droplet.relativeVelocity = relativeVelocity - sample.normal * glm::dot(relativeVelocity, sample.normal);
42 if (!binding_ || !binding_->isValid() || dt <= 0.f || (droplets_.empty() && airborne_.empty())) return;
89 airborne_.push_back({edge.position, edge.velocity + droplet.relativeVelocity, droplet.volume, 0.f});
Dynamic triangle surface used to bind films and droplets to deforming meshes.
Definition FluidSurfaceBinding.h:45
SurfaceSample evaluate(const SurfaceLocation &location, float dt) const
Evaluate a surface address in the current and previous poses.
Definition FluidSurfaceBinding.cpp:194
SurfaceWalkResult walkAcrossSurface(const SurfaceLocation &start, const glm::vec3 &worldDisplacement, int maxCrossings=16) const
Move a location by a world-space displacement, crossing triangle edges.
Definition FluidSurfaceBinding.cpp:240
bool project(const glm::vec3 &worldPosition, float maxDistance, SurfaceLocation &outLocation) const
Find the closest material point on the current surface.
Definition FluidSurfaceBinding.cpp:216
void step(float dt)
Advance all bound droplets and rebuild the detached event list.
Definition SurfaceDropletSimulation.cpp:40
void clear()
Remove attached droplets and pending detach events.
Definition SurfaceDropletSimulation.cpp:148
bool addDroplet(const SurfaceLocation &location, float volume=1.f, const glm::vec3 &relativeVelocity=glm::vec3(0.f))
Add one bound droplet. Invalid locations are rejected.
Definition SurfaceDropletSimulation.cpp:25
SurfaceDropletSimulation(FluidSurfaceBinding *binding, const SurfaceDropletParams ¶ms={}, SurfaceWetnessField *wetness=nullptr)
Surface droplet simulation.
Definition SurfaceDropletSimulation.cpp:10
Lightweight material-space wet-film field stored at mesh vertices.
Definition SurfaceWetnessField.h:28
void deposit(const SurfaceLocation &location, float amount)
Deposit a wet trace at a material-space location.
Definition SurfaceWetnessField.cpp:32
Material and integration parameters for surface-bound droplets.
Definition SurfaceDropletSimulation.h:16
float reattachDistance
Maximum distance at which an airborne droplet can reattach.
Definition SurfaceDropletSimulation.h:36
int maxCrossings
Maximum number of triangle edges crossed by one step.
Definition SurfaceDropletSimulation.h:26
float mergeRadiusScale
Multiplier for the sum of cap radii used by droplet merging.
Definition SurfaceDropletSimulation.h:30
float adhesionAcceleration
Maximum outward acceleration retained by adhesion.
Definition SurfaceDropletSimulation.h:24
float airDrag
Air drag applied after a droplet leaves the surface.
Definition SurfaceDropletSimulation.h:34
float trailDeposition
Wet-film amount deposited per world-space unit travelled.
Definition SurfaceDropletSimulation.h:32
float contactAngleDegrees
Water contact angle in degrees, used to derive a visible cap radius.
Definition SurfaceDropletSimulation.h:28
glm::vec3 gravity
World-space gravity in units per second squared.
Definition SurfaceDropletSimulation.h:18
float friction
Exponential damping of velocity relative to the surface.
Definition SurfaceDropletSimulation.h:20
One droplet addressed in material space on a dynamic triangle surface.
Definition SurfaceDropletSimulation.h:40
glm::vec3 relativeVelocity
Definition SurfaceDropletSimulation.h:43
SurfaceLocation location
Definition SurfaceDropletSimulation.h:42
Stable material-space address of a point on a triangle surface.
Definition FluidSurfaceBinding.h:13
Evaluated world-space frame and motion at a surface location.
Definition FluidSurfaceBinding.h:19