载入中...
搜索中...
未找到
eve::fluids 命名空间参考

GLSL compute kernels for the GPU surface-flow solver. 更多...

命名空间

namespace  detail
 

类

struct  AirborneDroplet
 Persistent world-space droplet after it has detached from a surface. 更多...
 
struct  DetachedDroplet
 Droplet converted from a surface-bound state to a free world-space state. 更多...
 
struct  FluidParams
 Tuning knobs of one fluid simulation. 更多...
 
struct  FluidParticle
 One simulated particle (CPU reference layout). 更多...
 
struct  FluidRendererSettings
 Complete owning mirror of Fluid3DRendererSettings with package defaults. 更多...
 
class  Fluids
 Fluids module — factory + script binding. 更多...
 
class  FluidSimulation
 CPU reference surface-flow solver. 更多...
 
class  FluidSimulationAdapter
 Adapter exposing the existing CPU FluidSimulation through the contract. 更多...
 
class  FluidSimulator
 GPU-backed surface fluid simulator (falls back to the CPU solver). 更多...
 
class  FluidSurfaceBinding
 Dynamic triangle surface used to bind films and droplets to deforming meshes. 更多...
 
class  FluidSurfaceConstraintAdapter
 Adapter exposing existing FluidSurfaceBinding operations as checked results. 更多...
 
struct  FluidSurfaceParams
 Camera + reconstruction tuning for the SSF pipeline. 更多...
 
class  FluidSurfaceRenderer
 Buffer-level screen-space fluid renderer. 更多...
 
class  IScreenSpaceSurfaceReconstruction
 Presentation contract for screen-space surface reconstruction. 更多...
 
class  ISurfaceConstraint
 Backend-neutral contract for mesh-surface binding and traversal. 更多...
 
class  ISurfaceFluidSimulation
 Backend-neutral contract for advancing a surface-fluid solver. 更多...
 
class  MeshSdf
 Uniform signed-distance voxel field over a box. 更多...
 
struct  MeshSdfSample
 One trilinear SDF sample and its local-space analytic gradient. 更多...
 
class  ScreenSpaceSurfaceReconstructionAdapter
 Minimal SSF adapter over the existing CPU/GPU FluidSurfaceRenderer. 更多...
 
struct  SimGrid
 Uniform grid used for neighbor queries. 更多...
 
struct  SurfaceDroplet
 One droplet addressed in material space on a dynamic triangle surface. 更多...
 
struct  SurfaceDropletParams
 Material and integration parameters for surface-bound droplets. 更多...
 
struct  SurfaceDropletRenderInstance
 World-space oriented cap instance consumed by droplet instancing shaders. 更多...
 
class  SurfaceDropletSimulation
 CPU reference solver for droplets moving over static, rigid or deforming surfaces. 更多...
 
class  SurfaceFluidRenderData
 Builds renderer-independent droplet instances and wet PBR parameters. 更多...
 
struct  SurfaceFluidRenderParams
 Tuning for converting simulated droplets into render instances. 更多...
 
class  SurfaceFluidSceneRenderer
 Draws surface-droplet cap instances through the engine 3D backend. 更多...
 
struct  SurfaceLocation
 Stable material-space address of a point on a triangle surface. 更多...
 
struct  SurfaceSample
 Evaluated world-space frame and motion at a surface location. 更多...
 
struct  SurfaceWalkResult
 Result of walking a material point across triangle adjacency. 更多...
 
class  SurfaceWetnessField
 Lightweight material-space wet-film field stored at mesh vertices. 更多...
 
struct  SurfaceWetnessParams
 Parameters controlling persistent wet-film traces on a triangle surface. 更多...
 
class  VolumeFluid
 CPU position-based free-volume fluid with a bounded spatial grid. @ownership Owns all particle state; no external objects or callbacks are retained. @thread All methods are simulation-thread affine; concurrent access is forbidden. @reentrancy No callbacks are invoked. Renderers consume copied particle positions. 更多...
 
struct  VolumeFluidAttachment
 Owned local anchor for a contact-frozen particle; indices refer to its snapshot particle array. 更多...
 
struct  VolumeFluidAttachmentReaction
 Opposite impulse produced by a prescribed solid-particle attachment constraint. 更多...
 
struct  VolumeFluidCollider
 Owned obstacle sample; the caller updates moving obstacles before stepping. 更多...
 
struct  VolumeFluidColorKey
 One strictly ordered [0,1] coordinate and linear RGBA gradient color. 更多...
 
struct  VolumeFluidContact
 Owned contact event; opposite impulse can be applied to the caller's rigid body. 更多...
 
struct  VolumeFluidContactEvent
 Owning deduplicated actor/collider contact lifecycle event. 更多...
 
class  VolumeFluidContactTracker
 Explicit bounded contact lifecycle tracker; owns no solver reference. 更多...
 
class  VolumeFluidCoupling
 Process-local generation-checked bridge between fluid samples and rigid bodies. @ownership Owns local collider descriptions and typed physics links, never world/body/solver pointers. @thread Simulation-thread affine; no callbacks, concurrent mutation or reentrancy. 更多...
 
class  VolumeFluidDiffuse
 Bounded, one-way fluid-advected secondary particle pool. @ownership Owns particles and capacity; no fluid/world pointers are retained. @thread Simulation-thread only, including snapshots; no concurrent calls. @reentrancy Invokes no callbacks. Advance borrows its fluid only for that call. 更多...
 
struct  VolumeFluidDiffuseParticle
 Owned secondary particle; it contributes no mass or pressure to the liquid solver. 更多...
 
struct  VolumeFluidDiffuseSnapshot
 Strict version-1 diffuse pool state; unknown fields and versions are rejected. 更多...
 
struct  VolumeFluidDistanceHit
 Owning signed surface-distance result for a native query shape. 更多...
 
struct  VolumeFluidDistributionPoint
 Owned precomputed local emission sample, including shape-specific color. 更多...
 
struct  VolumeFluidEmission
 Value-owned emission description; +Z is mapped to direction. 更多...
 
class  VolumeFluidEmitter
 Bounded runtime stream controller with explicit snapshot/restore. 更多...
 
struct  VolumeFluidEmitterBlueprint3D
 Owning Fluid3DEmitterBlueprint values used to prepare a native 3D emitter. 更多...
 
struct  VolumeFluidEmitterBlueprintApplication3D
 Fully owned native setup prepared from one Fluid3D-emitter blueprint. 更多...
 
struct  VolumeFluidEmitterBlueprintMetrics
 Exact 3D metrics derived by Fluid3DEmitterBlueprintBase from resolution and density. 更多...
 
struct  VolumeFluidEmitterCheckpoint
 Version-1 owning atomic checkpoint for a solver, emission description and controller. 更多...
 
struct  VolumeFluidEmitterSnapshot
 Version-1 owning state for rate (kind 0) or jet (kind 1) controllers. 更多...
 
struct  VolumeFluidFieldSample
 Owned liquid/gas field sample for diffuse-particle emission and advection. 更多...
 
class  VolumeFluidFoam
 Generates secondary particles at high-curl, low-density fluid source positions. @ownership Owns settings, credit and RNG only; neither source nor pool is retained. @thread Simulation-thread affine, including snapshot/restore; no concurrent calls. @reentrancy No callbacks or script invocation. No global time or RNG access. 更多...
 
struct  VolumeFluidFoamSettings
 Foam source thresholds in the native sampled field, plus bounded emission settings. 更多...
 
struct  VolumeFluidFoamSnapshot
 Owning strict version-1 foam controller state; checkpoint the diffuse pool separately. 更多...
 
struct  VolumeFluidGridCell
 Owning occupied-cell sample for Fluid3DParticleGridDebugger-style visualization. 更多...
 
struct  VolumeFluidHeightFieldCollider
 Owned regular-grid terrain collider matching Fluid3D height-field sample layout. 更多...
 
class  VolumeFluidJetEmitter
 Spacing-driven planar/distribution jet controller with independent, owned stream phase. 更多...
 
struct  VolumeFluidMassProperties
 Owning mass summary for one Fluid3D-compatible actor group. 更多...
 
struct  VolumeFluidMaterial
 Per-particle material, copied at emission; densities enable multiphase buoyancy. 更多...
 
struct  VolumeFluidNozzlePose
 Owning world-space nozzle pose; rotation is a unit quaternion in XYZW order. 更多...
 
struct  VolumeFluidParticle
 Owning particle value with world position and velocity in SI units. 更多...
 
struct  VolumeFluidParticleEvent
 Owning particle lifecycle event captured before the dense pool changes again. 更多...
 
struct  VolumeFluidParticleEventBatch
 Owning result of one explicit particle lifecycle-event drain. 更多...
 
struct  VolumeFluidParticleFrame
 Owning local-axis sample for DebugParticleFrames-style visualization. 更多...
 
struct  VolumeFluidParticleInstance
 One owning mesh-instance transform/color row for Fluid3DInstancedParticleRenderer-style presentation. 更多...
 
struct  VolumeFluidQueryHit
 Owning result from one entry in a mixed query batch. 更多...
 
struct  VolumeFluidQueryShape
 Owning transient query description compatible with Fluid3D QueryShape semantics. 更多...
 
struct  VolumeFluidRayHit
 Owning ray hit against one native oriented-ellipsoid volume-fluid particle. 更多...
 
struct  VolumeFluidSdfCollider
 Owned sampled mesh/SDF collider with a uniform world transform. 更多...
 
struct  VolumeFluidSdfPose
 Transient transform update for one owned SDF collider, identified by stable label. 更多...
 
struct  VolumeFluidSdfSlice
 Owning normalized SDF slice plus its world-space sample lattice. 更多...
 
struct  VolumeFluidSettings
 Meter-space (+Y up) volume-fluid material and solver policy. 更多...
 
class  VolumeFluidShadowCaster
 One-draw particle shadow caster matching Fluid3D ShadowmapExposer behavior. @ownership Borrows Graphics for its lifetime and owns one Graphics-managed dynamic mesh. @thread Construction, update and destruction are render-thread affine. @reentrancy Invokes no script callbacks; destruction must occur outside shadow traversal. 更多...
 
struct  VolumeFluidSimplex
 A point, edge or triangle over snapshot-local particle indices. 更多...
 
struct  VolumeFluidSimplexHit
 Owning Fluid3D-compatible nearest result for one simplex and query pair. 更多...
 
struct  VolumeFluidSnapshot
 Canonical version-20 owning state; older codecs migrate collider, attachment, stitch, filter, group, material, shape, topology, height-field, trigger and collision-material fields. 更多...
 
struct  VolumeFluidStitch
 One Fluid3DStitcher-compatible zero-distance particle-pair constraint. 更多...
 
struct  VolumeFluidThermalRule
 One-step contact transfer into user channels x/y; negative rate heats, positive cools. 更多...
 
struct  VolumeFluidViscosityColorKey
 Transient linear RGBA gradient key at an absolute material viscosity. 更多...
 
struct  VolumeFluidWindZone
 Owning description of one transient ambient or spherical wind zone. 更多...
 
struct  VolumeGranularEmitterBlueprint3D
 Owning Fluid3DGranularEmitterBlueprint values used to prepare a native 3D emitter. 更多...
 
struct  WetSurfaceMaterialParams
 Material mapping from simulated wetness to a PBR surface response. 更多...
 
struct  WetSurfaceMaterialSample
 Evaluated material values suitable for a wet-surface shader. 更多...
 

枚举

enum class  FluidBlendFactor : int {
  Zero = 0 , One = 1 , DestinationColor = 2 , SourceColor = 3 ,
  OneMinusDestinationColor = 4 , SourceAlpha = 5 , OneMinusSourceColor = 6 , DestinationAlpha = 7 ,
  OneMinusDestinationAlpha = 8 , SourceAlphaSaturate = 9 , OneMinusSourceAlpha = 10
}
 Unity/Fluid3D blend factors used by fluid render settings. 更多...
 
enum class  VolumeFluidPhase : uint8_t { Liquid , Gas , Granular , Solid }
 Constitutive phase; solids are world-fixed or follow their owned collider attachment. 更多...
 
enum class  VolumeFluidMaterialCombineMode : uint8_t { Average = 0 , Minimum = 1 , Multiply = 2 , Maximum = 3 }
 Fluid3D collision-material coefficient combination, with package integer values. 更多...
 
enum class  VolumeFluidWindZoneType { Ambient , Spherical }
 Shape used by a transient Fluid3D-style wind force zone. 更多...
 
enum class  VolumeFluidColliderShape { Sphere , Box , Capsule }
 Analytic obstacle geometry. 更多...
 
enum class  VolumeFluidSdfSliceAxis { X = 0 , Y = 1 , Z = 2 }
 Local axis normal used by an explicit SDF diagnostic slice. 更多...
 
enum class  VolumeFluidContactEventType : uint8_t { Enter , Stay , Exit }
 Contact lifecycle classification matching Fluid3DContactEventDispatcher. 更多...
 
enum class  VolumeFluidParticleEventType : uint8_t { Emitted , Killed }
 Lifecycle kind matching Fluid3DEmitter OnEmitParticle/OnKillParticle. 更多...
 
enum class  VolumeFluidQueryType : unsigned { Sphere = 0 , Box = 1 , Ray = 2 }
 Shape kind for one bounded batched particle query. 更多...
 
enum class  VolumeFluidEmissionShape {
  Edge , Square , Disk , Sphere ,
  Cube , Distribution
}
 Local nozzle domain; disk/square lie in XY, edge lies on X. 更多...
 

函数

float fluidPoly6 (float r2, float h)
 Poly6 kernel value W(r2, h).
 
glm::vec3 fluidSpikyGrad (const glm::vec3 &dx, float h)
 Spiky gradient of the kernel w.r.t. particle i position.
 
float fluidViscLaplacian (float r, float h)
 Viscosity Laplacian kernel value.
 
float fluidCohesionKernel (float r, float h)
 Akinci-style cohesion kernel C(r) for droplet surface tension.
 
glm::vec3 fluidClampSpeed (const glm::vec3 &v, float maxSpeed)
 Clamp a vector's magnitude to maxSpeed.
 
 Module_IMPL (Fluids, new Fluids())
 
void exposeVolumeFluidType (ssq::Table &table)
 Registers the script-owned volume-fluid class on the VM thread.
 
void exposeVolumeFluidFactory (ssq::Class &cls)
 Registers volume-fluid factories on the existing Fluids class.
 
Value encodeFluidRendererSettings (const FluidRendererSettings &settings)
 Projects one complete Fluid3D-renderer settings value.
 
Result< FluidRendererSettings > decodeFluidRendererSettings (const Value &value)
 Strictly decodes one complete owning Fluid3D-renderer settings value.
 
Value encodeVolumeFluid (const VolumeFluidSnapshot &snapshot)
 Canonical schema-17 value projection, shared by JSON, scripts and authoring.
 
Value encodeVolumeFluidFoam (const VolumeFluidFoamSnapshot &snapshot)
 Projects owning schema-1 foam settings, credit text and RNG state.
 
Result< VolumeFluidFoamSnapshot > decodeVolumeFluidFoam (const Value &value)
 Strict decode with atomic-controller validation; rejects unknown fields and versions.
 
Value encodeVolumeFluidDiffuse (const VolumeFluidDiffuseSnapshot &snapshot)
 Projects the owning version-1 secondary particle pool state.
 
Result< VolumeFluidDiffuseSnapshot > decodeVolumeFluidDiffuse (const Value &value)
 Strict bounded decode; validates the entire pool before returning owning state.
 
Result< std::vector< VolumeFluidDiffuseParticle > > decodeVolumeFluidDiffuseParticles (const Value &value)
 Strict transient batch decode of at most 65536 particles; emit validates domains.
 
Value encodeVolumeFluidFieldSamples (const std::vector< VolumeFluidFieldSample > &samples)
 Projects owning field samples, preserving query order.
 
Value encodeVolumeFluidRayHits (const std::vector< VolumeFluidRayHit > &hits)
 Projects owning ray hits including captured particle values.
 
Value encodeVolumeFluidDistanceHits (const std::vector< VolumeFluidDistanceHit > &hits)
 Projects owning signed-distance hits including captured particle values.
 
Value encodeVolumeFluidQueryHits (const std::vector< VolumeFluidQueryHit > &hits)
 Projects owning mixed-query hits with their source query indices.
 
Value encodeVolumeFluidSimplexHits (const std::vector< VolumeFluidSimplexHit > &hits)
 Projects owning Fluid3D-compatible simplex query results.
 
Result< std::vector< VolumeFluidSimplex > > decodeVolumeFluidSimplexes (const Value &value)
 Strict owning decode of at most 65536 point, edge or triangle topology entries.
 
Result< std::vector< VolumeFluidStitch > > decodeVolumeFluidStitches (const Value &value)
 Strict owning decode of at most 65536 Fluid3DStitcher particle pairs.
 
Result< std::vector< VolumeFluidQueryShape > > decodeVolumeFluidQueries (const Value &value)
 Strict owning decode of at most 256 transient mixed query descriptions.
 
Result< std::vector< glm::vec4 > > decodeVolumeFluidColors (const Value &value)
 Strict owning decode of at most 256 transient linear RGBA colors.
 
Result< std::vector< glm::vec3 > > decodeVolumeFluidFieldPositions (const Value &value)
 Strict owning decode of up to 65536 transient world-space field query positions.
 
Result< std::vector< VolumeFluidWindZone > > decodeVolumeFluidWindZones (const Value &value)
 Strict owning decode of at most 64 transient Fluid3D-style wind zones.
 
Value encodeVolumeFluidCollider (const VolumeFluidCollider &collider)
 Projects an owning collider description for script construction.
 
Value encodeVolumeFluidSdfCollider (const VolumeFluidSdfCollider &collider)
 Projects one complete owning SDF collider.
 
Value encodeVolumeFluidHeightFieldCollider (const VolumeFluidHeightFieldCollider &collider)
 Projects one complete owning regular height field.
 
Value encodeVolumeFluidSdfPose (const VolumeFluidSdfPose &pose)
 Projects one transform-only SDF update for script construction.
 
Result< std::vector< VolumeFluidSdfPose > > decodeVolumeFluidSdfPoses (const Value &value)
 Strict transient decode of at most 16 SDF transform-only updates.
 
Result< std::vector< VolumeFluidSdfCollider > > decodeVolumeFluidSdfColliders (const Value &value)
 Strict owning decode of at most 16 sampled SDF colliders.
 
Result< std::vector< VolumeFluidHeightFieldCollider > > decodeVolumeFluidHeightFieldColliders (const Value &value)
 Strict owning decode of at most 16 regular sampled height fields.
 
Value encodeVolumeFluidWindZone (const VolumeFluidWindZone &zone)
 Projects one complete wind-zone description for script construction.
 
Value encodeVolumeFluidContacts (const std::vector< VolumeFluidContact > &contacts)
 Projects last-step contacts, including world-space point and opposite impulse.
 
Value encodeVolumeFluidContactEvents (const std::vector< VolumeFluidContactEvent > &events)
 Projects owning Enter/Stay/Exit contact lifecycle events.
 
Value encodeVolumeFluidThermalRule (const VolumeFluidThermalRule &rule)
 Owning default-rule projection for script construction.
 
Result< std::vector< VolumeFluidViscosityColorKey > > decodeVolumeFluidViscosityColors (const Value &value)
 Strict owning decode of at most 32 transient viscosity color keys; application validates domains.
 
Result< std::vector< VolumeFluidColorKey > > decodeVolumeFluidColorGradient (const Value &value)
 Strict owning decode of a 2..32-key normalized linear RGBA gradient.
 
Result< std::vector< VolumeFluidThermalRule > > decodeVolumeFluidThermalRules (const Value &value)
 Strict owning decode of at most 1024 transient thermal rules; step validates domains.
 
Value encodeVolumeFluidParticles (const std::vector< VolumeFluidParticle > &particles)
 Projects an owning particle batch without copying the live solver.
 
Value encodeVolumeFluidParticleEvents (const VolumeFluidParticleEventBatch &batch)
 Projects one owning bounded particle lifecycle-event drain.
 
Result< VolumeFluidMaterial > decodeVolumeFluidMaterial (const Value &value)
 Strict transient material decode; paint validates numeric domains before mutation.
 
Value encodeVolumeFluidEmitterBlueprint3D (const VolumeFluidEmitterBlueprint3D &blueprint)
 Projects default or caller-prepared Fluid3D-emitter blueprint values.
 
Result< VolumeFluidEmitterBlueprint3D > decodeVolumeFluidEmitterBlueprint3D (const Value &value)
 Strictly decodes one owning Fluid3D-emitter blueprint value.
 
Value encodeVolumeGranularEmitterBlueprint3D (const VolumeGranularEmitterBlueprint3D &blueprint)
 Projects default or caller-prepared Fluid3D granular-emitter blueprint values.
 
Result< VolumeGranularEmitterBlueprint3D > decodeVolumeGranularEmitterBlueprint3D (const Value &value)
 Strictly decodes one owning Fluid3D granular-emitter blueprint value.
 
Value encodeVolumeFluidEmitterBlueprintApplication3D (const VolumeFluidEmitterBlueprintApplication3D &application)
 Projects the complete native solver/emission setup produced from a blueprint.
 
Result< std::vector< VolumeFluidCollider > > decodeVolumeFluidColliders (const Value &value)
 Strict transient collider batch decode; setColliders validates geometry atomically.
 
Result< VolumeFluidNozzlePose > decodeVolumeFluidNozzlePose (const Value &value)
 Strict transient pose-argument decode; advanceMoving validates the unit quaternion.
 
Value encodeVolumeFluidEmitterState (const VolumeFluidEmitterSnapshot &state)
 Encodes controller state without converting phase text to VM floating point.
 
Result< VolumeFluidEmitterSnapshot > decodeVolumeFluidEmitterState (const Value &value)
 Strict version-1 controller-state decode; unsupported fields, kinds and phase values fail.
 
Result< std::vector< VolumeFluidParticle > > decodeVolumeFluidParticles (const Value &value)
 Decodes an owning emission batch without serializing the live solver; admission validates domains.
 
Value encodeVolumeFluidEmitterCheckpoint (const VolumeFluidEmitterCheckpoint &checkpoint)
 Encodes one version-1 solver/emission/controller checkpoint.
 
Result< VolumeFluidEmitterCheckpoint > decodeVolumeFluidEmitterCheckpoint (const Value &value)
 Strictly decodes and validates all owning checkpoint members without publishing state.
 
Value encodeVolumeFluidEmission (const VolumeFluidEmission &emission)
 Encodes a version-9 emission description including precomputed points and particle state.
 
Result< VolumeFluidEmission > decodeVolumeFluidEmission (const Value &value)
 Strict structural decode; nozzle/material domain validation occurs atomically at emission.
 
EVENGINE_API_DOMAINS Result< VolumeFluidSnapshot > decodeVolumeFluid (const Value &value)
 Strict owning decode; unknown/missing fields, unsupported versions and invalid state are rejected.
 
Result< VolumeFluidEmitterBlueprintMetrics > evaluateVolumeFluidEmitterBlueprint3D (float resolution, float restDensity, float smoothing)
 Evaluates Fluid3DEmitterBlueprintBase/Fluid3DEmitterBlueprint formulas in 3D.
 
Result< VolumeFluidEmitterBlueprintApplication3D > prepareVolumeFluidEmitterBlueprint3D (const VolumeFluidEmitterBlueprint3D &blueprint)
 Atomically maps every Fluid3DEmitterBlueprint field to native 3D setup values.
 
Result< VolumeFluidEmitterBlueprintApplication3D > prepareVolumeGranularEmitterBlueprint3D (const VolumeGranularEmitterBlueprint3D &blueprint)
 Atomically maps an Fluid3DGranularEmitterBlueprint to owned native 3D setup values.
 
Result< unsigned > emitVolumeFluidBurst (VolumeFluid &solver, const VolumeFluidEmission &emission, unsigned count)
 Generates at most 4096 particles and admits the entire burst atomically.
 
Result< std::vector< VolumeFluidDistributionPoint > > buildVolumeFluidSphereDistribution (float radius, float spacing, bool surface)
 Builds an Fluid3D-compatible spherical surface or volume lattice during setup.
 
Result< std::vector< VolumeFluidDistributionPoint > > buildVolumeFluidCubeDistribution (glm::vec3 size, float spacing, bool surface)
 Builds an Fluid3D-compatible box surface or volume lattice during setup.
 
Result< std::vector< VolumeFluidDistributionPoint > > buildVolumeFluidEdgeDistribution (float length, float spacing, float radialVelocityDegrees)
 Builds Fluid3D's edge lattice with per-sample radial velocity directions.
 
Result< std::vector< VolumeFluidDistributionPoint > > buildVolumeFluidDiskDistribution (float radius, float spacing, bool edgeEmission)
 Builds Fluid3D's concentric disk or circumference-only distribution.
 
Result< VolumeFluidEmission > composeVolumeFluidEmitterShapes (const VolumeFluidEmission &base, std::span< const VolumeFluidEmission > shapes)
 Builds one emitter distribution from an ordered set of Fluid3D emitter shapes.
 
Result< std::vector< VolumeFluidDistributionPoint > > buildVolumeFluidImageDistribution (std::span< const glm::vec4 > pixels, unsigned width, unsigned height, float pixelScale, float maximumSize, float spacing, float alphaThreshold)
 Precomputes a bilinear alpha-masked image distribution on a spacing lattice.
 
VolumeFluidEmitterCheckpoint captureVolumeFluidEmitterCheckpoint (const VolumeFluid &solver, const VolumeFluidEmission &emission, const VolumeFluidEmitter &controller)
 Captures one completed-step rate-emitter checkpoint without retaining references.
 
VolumeFluidEmitterCheckpoint captureVolumeFluidEmitterCheckpoint (const VolumeFluid &solver, const VolumeFluidEmission &emission, const VolumeFluidJetEmitter &controller)
 Captures one completed-step moving-jet checkpoint without retaining references.
 
Result< void > restoreVolumeFluidEmitterCheckpoint (VolumeFluid &solver, VolumeFluidEmitter &controller, const VolumeFluidEmitterCheckpoint &checkpoint)
 Atomically restores solver and rate controller after validating the complete owning candidate.
 
Result< void > restoreVolumeFluidEmitterCheckpoint (VolumeFluid &solver, VolumeFluidJetEmitter &controller, const VolumeFluidEmitterCheckpoint &checkpoint)
 Atomically restores solver and moving-jet controller under the same checkpoint contract.
 
EVENGINE_API_DOMAINS Result< std::vector< VolumeFluidDistributionPoint > > buildVolumeFluidMeshDistribution (std::span< const glm::vec3 > vertices, std::span< const uint32_t > indices, glm::vec3 scale, float spacing)
 Voxelizes indexed triangles, returning surface and enclosed interior cell centers.
 

变量

const char * kFluidClearGrid
 Zero the linked-list cell heads.
 
const char * kFluidBuildGrid
 Insert every particle into its grid cell (linked list via atomicExchange).
 
const char * kFluidDensityLambda
 Density, gradient sum and PBF lambda in one pass (mirror computeDensitiesAndGrads + computeLambdas).
 
const char * kFluidComputeDelta
 Accumulate PBF position deltas into the (reused) grad buffer.
 
const char * kFluidApplyDelta
 Apply PBF deltas and re-project onto the SDF surface.
 
const char * kFluidIntegrate
 Viscosity + cohesion + adhesion + gravity + integration + SDF projection.
 
const char * kSsfClear
 Reset depth (0xFFFFFFFF), thickness, normal and color buffers.
 
const char * kSsfSplat
 Splat particles into depth + thickness (atomic min / add).
 
const char * kSsfColorClear
 Clear lazily-created fixed-point multicolor accumulation buffers. @lifetime The returned pointer remains valid for the process lifetime.
 
const char * kSsfColorSplat
 Accumulate isotropic particle colors using the CPU tint pass' disc weights. @lifetime The returned pointer remains valid for the process lifetime.
 
constexpr auto kSsfAnisotropicSplat
 
const char * kSsfSmooth
 One bilateral smoothing pass (read depthA, write depthB).
 
const char * kSsfNormal
 Reconstruct view-space normals from the smoothed depth.
 
const char * kSsfShade
 Water/mud shading from depth + normal + thickness.
 

详细描述

GLSL compute kernels for the GPU surface-flow solver.

GLSL compute kernels for screen-space fluid surface reconstruction.

CPU reference fluid solver for surface flows.

Voxelized signed distance field (SDF) of a solid surface.

Core math shared by the CPU reference solver and the GLSL kernels.

The kernels mirror FluidSimulation.cpp 1:1. Push-constant layout (float[32]):

[0] count [1] dt [2] particleRadius [3] supportRadius h [4] restDensity [5] gravityX [6] gravityY [7] gravityZ [8] viscosity [9] yieldStress (Phase 3) [10] cohesion [11] adhesion [12] damping [13] maxVelocity [14] gridResX [15] gridResY [16] gridResZ [17] gridOriginX [18] gridOriginY [19] gridOriginZ [20] gridCellSize [21] sdfResX [22] sdfResY [23] sdfResZ [24] sdfOriginX [25] sdfOriginY [26] sdfOriginZ [27] sdfCellSize [28] iterations [29] mode (0 water, 1 mud) [30] time [31] pbfIterations

Buffer bindings: 0 pos(vec4) 1 vel(vec4) 2 cellHead(int) 3 cellNext(int) 4 densities(float) 5 sdf(float) 6 lambdas(float) 7 gradSums/deltas(vec4)

FluidMath holds the SPH kernel functions (poly6 / spiky gradient / viscosity Laplacian), the tuning parameters and the particle layout used by both the reference implementation in FluidSimulation and the GPU kernels in FluidGpuKernels. Keep the two in step: every formula here is mirrored 1:1 in GLSL, and the push-constant layout is documented in FluidGpuKernels.h.

The mesh is baked into a uniform 3D grid once at setup; particles then query distance + gradient per frame in the GPU kernels (trilinear interpolation, central differences) to stay glued to the surface while gravity pushes them tangentially along it. Positive distance = outside the solid.

This is the executable spec for the GPU kernels in FluidGpuKernels: uniform grid neighbor search, SPH density, PBF density constraints, XSPH viscosity, Akinci-style cohesion/adhesion, gravity, surface projection through the mesh SDF and velocity decomposition. Tests exercise it numerically; the GLSL kernels mirror it 1:1.

Pipeline (mirrors FluidSurfaceRenderer.cpp): clear -> splat (particles to depth+thickness) -> smooth (bilateral, ping-pong) -> normals (depth gradients) -> shade (water or mud).

Push-constant layout (float[32]): [0..15] viewProj (column-major, glm) [16] particleCount [17] orthographic (0 perspective, 1 orthographic) [18] pad [19] nearZ [20] farZ [21] tanHalfFov [22] aspect [23] screenW [24] screenH [25] particleRadius [26] mode (0 water, 1 mud) [27] thicknessScale [28] depthFalloff (bilateral depth edge falloff) [29] blurRadiusWorld (-1 keeps the established fixed radius) [30..31] pad

Buffer bindings: 0 particles(vec4 xyz+radius) 1 depthA(uint) 2 depthB(uint) 3 thickness(uint) 4 normal(vec4) 5 color(packed RGBA8 uint) 6 particle colors(vec4) 7 multicolor accum(5 uint/pixel)

枚举类型说明

◆ FluidBlendFactor

enum class eve::fluids::FluidBlendFactor : int
strong

Unity/Fluid3D blend factors used by fluid render settings.

枚举值
Zero 
One 
DestinationColor 
SourceColor 
OneMinusDestinationColor 
SourceAlpha 
OneMinusSourceColor 
DestinationAlpha 
OneMinusDestinationAlpha 
SourceAlphaSaturate 
OneMinusSourceAlpha 

在文件 FluidSurfaceRenderer.h 第 46 行定义.

◆ VolumeFluidColliderShape

Analytic obstacle geometry.

枚举值
Sphere 
Box 
Capsule 

在文件 VolumeFluid.h 第 136 行定义.

◆ VolumeFluidContactEventType

enum class eve::fluids::VolumeFluidContactEventType : uint8_t
strong

Contact lifecycle classification matching Fluid3DContactEventDispatcher.

枚举值
Enter 
Stay 
Exit 

在文件 VolumeFluid.h 第 267 行定义.

◆ VolumeFluidEmissionShape

Local nozzle domain; disk/square lie in XY, edge lies on X.

枚举值
Edge 
Square 
Disk 
Sphere 
Cube 
Distribution 

在文件 VolumeFluidEmitter.h 第 12 行定义.

◆ VolumeFluidMaterialCombineMode

enum class eve::fluids::VolumeFluidMaterialCombineMode : uint8_t
strong

Fluid3D collision-material coefficient combination, with package integer values.

枚举值
Average 
Minimum 
Multiply 
Maximum 

在文件 VolumeFluid.h 第 23 行定义.

◆ VolumeFluidParticleEventType

enum class eve::fluids::VolumeFluidParticleEventType : uint8_t
strong

Lifecycle kind matching Fluid3DEmitter OnEmitParticle/OnKillParticle.

枚举值
Emitted 
Killed 

在文件 VolumeFluid.h 第 360 行定义.

◆ VolumeFluidPhase

enum class eve::fluids::VolumeFluidPhase : uint8_t
strong

Constitutive phase; solids are world-fixed or follow their owned collider attachment.

枚举值
Liquid 
Gas 
Granular 
Solid 

在文件 VolumeFluid.h 第 20 行定义.

◆ VolumeFluidQueryType

enum class eve::fluids::VolumeFluidQueryType : unsigned
strong

Shape kind for one bounded batched particle query.

枚举值
Sphere 
Box 
Ray 

在文件 VolumeFluid.h 第 417 行定义.

◆ VolumeFluidSdfSliceAxis

Local axis normal used by an explicit SDF diagnostic slice.

枚举值
X 
Y 
Z 

在文件 VolumeFluid.h 第 241 行定义.

◆ VolumeFluidWindZoneType

Shape used by a transient Fluid3D-style wind force zone.

枚举值
Ambient 
Spherical 

在文件 VolumeFluid.h 第 120 行定义.

函数说明

◆ buildVolumeFluidCubeDistribution()

EVENGINE_API_DOMAINS Result< std::vector< VolumeFluidDistributionPoint > > eve::fluids::buildVolumeFluidCubeDistribution ( glm::vec3  size,
float  spacing,
bool  surface 
)

Builds an Fluid3D-compatible box surface or volume lattice during setup.

size is the full local box size. Surface points emit along the normalized sum of their incident face normals; volume points emit along local +Z. Candidate and output counts are limited to 65536 and 4096; failure returns no partial distribution.

在文件 VolumeFluidEmitter.cpp 第 497 行定义.

引用了 count, direction, output, point, size, source, spacing, x, y , 以及 z.

被这些函数引用 exposeVolumeFluidFactory().

◆ buildVolumeFluidDiskDistribution()

EVENGINE_API_DOMAINS Result< std::vector< VolumeFluidDistributionPoint > > eve::fluids::buildVolumeFluidDiskDistribution ( float  radius,
float  spacing,
bool  edgeEmission 
)

Builds Fluid3D's concentric disk or circumference-only distribution.

Radius/spacing must be finite and positive. Edge samples emit along their radial normal; filled-disk samples emit along local +Z. Setup-time only, owning, with 65536 candidate and 4096 output limits.

在文件 VolumeFluidEmitter.cpp 第 549 行定义.

引用了 angle, direction, output, point, r, radius, source, spacing , 以及 steps.

被这些函数引用 exposeVolumeFluidFactory().

◆ buildVolumeFluidEdgeDistribution()

EVENGINE_API_DOMAINS Result< std::vector< VolumeFluidDistributionPoint > > eve::fluids::buildVolumeFluidEdgeDistribution ( float  length,
float  spacing,
float  radialVelocityDegrees 
)

Builds Fluid3D's edge lattice with per-sample radial velocity directions.

length is the full local X extent. Samples use spacing plus Fluid3D's 0.01 metre separation bias; radialVelocityDegrees rotates local +Z around X for each successive sample. Setup-time only, owning, and limited to 4096 points.

在文件 VolumeFluidEmitter.cpp 第 529 行定义.

引用了 angle, direction, length, output, separation, source , 以及 spacing.

被这些函数引用 exposeVolumeFluidFactory().

◆ buildVolumeFluidImageDistribution()

EVENGINE_API_DOMAINS Result< std::vector< VolumeFluidDistributionPoint > > eve::fluids::buildVolumeFluidImageDistribution ( std::span< const glm::vec4 >  pixels,
unsigned  width,
unsigned  height,
float  pixelScale,
float  maximumSize,
float  spacing,
float  alphaThreshold 
)

Precomputes a bilinear alpha-masked image distribution on a spacing lattice.

Pixels are linear RGBA, bottom row first. No image pointers are retained. Aspect ratio is preserved when clamping world dimensions to maximumSize. At most 65536 lattice candidates and 4096 output points are allowed; excess returns a diagnostic without partial output. Call during authoring/setup.

在文件 VolumeFluidEmitter.cpp 第 633 行定义.

引用了 color, eve::Diagnostic::error(), height, eve::InvalidArgument, nx, ny, pixels, points, scale, spacing, sx, sy, text, width, x , 以及 y.

被这些函数引用 exposeVolumeFluidFactory().

◆ buildVolumeFluidMeshDistribution()

Result< std::vector< VolumeFluidDistributionPoint > > eve::fluids::buildVolumeFluidMeshDistribution ( std::span< const glm::vec3 >  vertices,
std::span< const uint32_t >  indices,
glm::vec3  scale,
float  spacing 
)

Voxelizes indexed triangles, returning surface and enclosed interior cell centers.

Setup-time only, owns its result and retains no mesh pointers. Scaled bounds determine voxel size, at least spacing and at least longest extent/32. Open meshes produce surface cells without assuming an enclosed interior. Limits: 65536 triangles, 4M cell/triangle checks, 4096 output samples; exceeding any budget returns a diagnostic rather than a partial distribution.

在文件 VolumeFluidMeshEmitter.cpp 第 30 行定义.

引用了 a, b, c, cells, center, direction, directions, eve::Diagnostic::error(), index, indices, eve::InvalidArgument, maximum, minimum, origin, p, points, scale, size, spacing, t, text, vertices, x, y , 以及 z.

被这些函数引用 exposeVolumeFluidFactory().

◆ buildVolumeFluidSphereDistribution()

EVENGINE_API_DOMAINS Result< std::vector< VolumeFluidDistributionPoint > > eve::fluids::buildVolumeFluidSphereDistribution ( float  radius,
float  spacing,
bool  surface 
)

Builds an Fluid3D-compatible spherical surface or volume lattice during setup.

Radius and spacing must be finite and positive. Surface points emit along their radial normals; volume points emit along local +Z. Candidate and output counts are limited to 65536 and 4096 respectively; failure returns no partial distribution.

在文件 VolumeFluidEmitter.cpp 第 444 行定义.

引用了 angle, count, output, point, radius, side, source, spacing, step, x, y , 以及 z.

被这些函数引用 exposeVolumeFluidFactory().

◆ captureVolumeFluidEmitterCheckpoint() [1/2]

EVENGINE_API_DOMAINS VolumeFluidEmitterCheckpoint eve::fluids::captureVolumeFluidEmitterCheckpoint ( const VolumeFluid &  solver,
const VolumeFluidEmission &  emission,
const VolumeFluidEmitter &  controller 
)

Captures one completed-step rate-emitter checkpoint without retaining references.

在文件 VolumeFluidEmitter.cpp 第 681 行定义.

引用了 eve::fluids::VolumeFluid::snapshot() , 以及 eve::fluids::VolumeFluidEmitter::snapshot().

◆ captureVolumeFluidEmitterCheckpoint() [2/2]

EVENGINE_API_DOMAINS VolumeFluidEmitterCheckpoint eve::fluids::captureVolumeFluidEmitterCheckpoint ( const VolumeFluid &  solver,
const VolumeFluidEmission &  emission,
const VolumeFluidJetEmitter &  controller 
)

Captures one completed-step moving-jet checkpoint without retaining references.

在文件 VolumeFluidEmitter.cpp 第 687 行定义.

引用了 eve::fluids::VolumeFluid::snapshot() , 以及 eve::fluids::VolumeFluidJetEmitter::snapshot().

◆ composeVolumeFluidEmitterShapes()

EVENGINE_API_DOMAINS Result< VolumeFluidEmission > eve::fluids::composeVolumeFluidEmitterShapes ( const VolumeFluidEmission &  base,
std::span< const VolumeFluidEmission >  shapes 
)

Builds one emitter distribution from an ordered set of Fluid3D emitter shapes.

base owns emitter-wide material, speed, lifetime, filter and RNG settings. Each shape must be a Distribution description; its pose transforms its owned local samples into solver space. An empty shape contributes its pose origin/direction, and an empty shape list contributes the base pose, matching Fluid3DEmitter's default point behavior. The setup-time operation accepts at most 64 shapes and 4096 total samples, publishes no partial result, retains no input storage and adds no per-step allocation or GPU work. Same ordered inputs produce the same ordered distribution on the same build. Simulation-thread affinity applies when the returned value is later used by an emitter; this pure composition call itself touches no solver and invokes no callbacks.

参数
baseBorrowed emitter-wide description, copied into the returned owning value.
shapesBorrowed ordered shape descriptions, valid only for this synchronous call.
返回
Owning combined Distribution description, or a structured validation diagnostic.

在文件 VolumeFluidEmitter.cpp 第 579 行定义.

引用了 color, eve::fluids::VolumeFluidEmission::direction, direction, Distribution, eve::fluids::VolumeFluidEmission::distribution, eve::Diagnostic::error(), eve::Result< T >::failure(), eve::InvalidArgument, eve::fluids::VolumeFluidEmission::origin, point, position, reference, right, eve::fluids::VolumeFluidEmission::shape, shape, source, eve::Result< T >::success(), up , 以及 valid.

被这些函数引用 exposeVolumeFluidFactory().

◆ decodeFluidRendererSettings()

EVENGINE_API_DOMAINS Result< FluidRendererSettings > eve::fluids::decodeFluidRendererSettings ( const Value &  value)

Strictly decodes one complete owning Fluid3D-renderer settings value.

在文件 VolumeFluidCodec.cpp 第 5 行定义.

引用了 error, eve::Diagnostic::error(), eve::Result< T >::failure(), eve::InvalidArgument, eve::Result< T >::success() , 以及 value.

◆ decodeVolumeFluid()

Result< VolumeFluidSnapshot > eve::fluids::decodeVolumeFluid ( const Value &  value)

◆ decodeVolumeFluidColliders()

Result< std::vector< VolumeFluidCollider > > eve::fluids::decodeVolumeFluidColliders ( const Value &  value)

Strict transient collider batch decode; setColliders validates geometry atomically.

在文件 VolumeFluidCodec.cpp 第 257 行定义.

引用了 error, eve::Diagnostic::error(), eve::InvalidArgument , 以及 value.

被这些函数引用 exposeVolumeFluidType().

◆ decodeVolumeFluidColorGradient()

Result< std::vector< VolumeFluidColorKey > > eve::fluids::decodeVolumeFluidColorGradient ( const Value &  value)

Strict owning decode of a 2..32-key normalized linear RGBA gradient.

在文件 VolumeFluidCodec.cpp 第 182 行定义.

引用了 error, eve::Diagnostic::error(), eve::InvalidArgument , 以及 value.

◆ decodeVolumeFluidColors()

EVENGINE_API_DOMAINS Result< std::vector< glm::vec4 > > eve::fluids::decodeVolumeFluidColors ( const Value &  value)

Strict owning decode of at most 256 transient linear RGBA colors.

在文件 VolumeFluidCodec.cpp 第 97 行定义.

引用了 error, eve::Diagnostic::error(), eve::InvalidArgument , 以及 value.

◆ decodeVolumeFluidDiffuse()

EVENGINE_API_DOMAINS Result< VolumeFluidDiffuseSnapshot > eve::fluids::decodeVolumeFluidDiffuse ( const Value &  value)

Strict bounded decode; validates the entire pool before returning owning state.

在文件 VolumeFluidCodec.cpp 第 32 行定义.

引用了 error, eve::Diagnostic::error(), eve::Result< T >::failure(), eve::InvalidArgument, eve::fluids::VolumeFluidDiffuse::restore(), eve::Result< T >::success() , 以及 value.

被这些函数引用 exposeVolumeFluidType().

◆ decodeVolumeFluidDiffuseParticles()

EVENGINE_API_DOMAINS Result< std::vector< VolumeFluidDiffuseParticle > > eve::fluids::decodeVolumeFluidDiffuseParticles ( const Value &  value)

Strict transient batch decode of at most 65536 particles; emit validates domains.

在文件 VolumeFluidCodec.cpp 第 48 行定义.

引用了 error, eve::Diagnostic::error(), eve::InvalidArgument , 以及 value.

被这些函数引用 exposeVolumeFluidType().

◆ decodeVolumeFluidEmission()

EVENGINE_API_DOMAINS Result< VolumeFluidEmission > eve::fluids::decodeVolumeFluidEmission ( const Value &  value)

◆ decodeVolumeFluidEmitterBlueprint3D()

EVENGINE_API_DOMAINS Result< VolumeFluidEmitterBlueprint3D > eve::fluids::decodeVolumeFluidEmitterBlueprint3D ( const Value &  value)

Strictly decodes one owning Fluid3D-emitter blueprint value.

在文件 VolumeFluidCodec.cpp 第 219 行定义.

引用了 error, eve::Diagnostic::error(), eve::Result< T >::failure(), eve::InvalidArgument, eve::Result< T >::success() , 以及 value.

被这些函数引用 exposeVolumeFluidFactory().

◆ decodeVolumeFluidEmitterCheckpoint()

EVENGINE_API_DOMAINS Result< VolumeFluidEmitterCheckpoint > eve::fluids::decodeVolumeFluidEmitterCheckpoint ( const Value &  value)

Strictly decodes and validates all owning checkpoint members without publishing state.

在文件 VolumeFluidCodec.cpp 第 317 行定义.

引用了 decodeVolumeFluid(), decodeVolumeFluidEmission(), decodeVolumeFluidEmitterState(), eve::Diagnostic::error(), eve::Result< T >::failure(), eve::InvalidArgument, message, eve::Result< T >::success() , 以及 value.

◆ decodeVolumeFluidEmitterState()

EVENGINE_API_DOMAINS Result< VolumeFluidEmitterSnapshot > eve::fluids::decodeVolumeFluidEmitterState ( const Value &  value)

Strict version-1 controller-state decode; unsupported fields, kinds and phase values fail.

在文件 VolumeFluidCodec.cpp 第 281 行定义.

引用了 error, eve::Diagnostic::error(), eve::Result< T >::failure(), eve::InvalidArgument, eve::fluids::VolumeFluidEmitterSnapshot::kind, rate, eve::fluids::VolumeFluidJetEmitter::restore(), eve::Result< T >::success() , 以及 value.

被这些函数引用 decodeVolumeFluidEmitterCheckpoint().

◆ decodeVolumeFluidFieldPositions()

Result< std::vector< glm::vec3 > > eve::fluids::decodeVolumeFluidFieldPositions ( const Value &  value)

Strict owning decode of up to 65536 transient world-space field query positions.

在文件 VolumeFluidCodec.cpp 第 108 行定义.

引用了 error, eve::Diagnostic::error(), eve::InvalidArgument , 以及 value.

被这些函数引用 exposeVolumeFluidType().

◆ decodeVolumeFluidFoam()

EVENGINE_API_DOMAINS Result< VolumeFluidFoamSnapshot > eve::fluids::decodeVolumeFluidFoam ( const Value &  value)

Strict decode with atomic-controller validation; rejects unknown fields and versions.

在文件 VolumeFluidCodec.cpp 第 18 行定义.

引用了 error, eve::Diagnostic::error(), eve::Result< T >::failure(), eve::InvalidArgument, eve::fluids::VolumeFluidFoam::restore(), eve::Result< T >::success() , 以及 value.

被这些函数引用 exposeVolumeFluidType().

◆ decodeVolumeFluidHeightFieldColliders()

Result< std::vector< VolumeFluidHeightFieldCollider > > eve::fluids::decodeVolumeFluidHeightFieldColliders ( const Value &  value)

Strict owning decode of at most 16 regular sampled height fields.

在文件 VolumeFluidCodec.cpp 第 156 行定义.

引用了 error, eve::Diagnostic::error(), eve::InvalidArgument , 以及 value.

◆ decodeVolumeFluidMaterial()

Result< VolumeFluidMaterial > eve::fluids::decodeVolumeFluidMaterial ( const Value &  value)

Strict transient material decode; paint validates numeric domains before mutation.

在文件 VolumeFluidCodec.cpp 第 207 行定义.

引用了 error, eve::Diagnostic::error(), eve::Result< T >::failure(), eve::InvalidArgument, eve::Result< T >::success() , 以及 value.

◆ decodeVolumeFluidNozzlePose()

Result< VolumeFluidNozzlePose > eve::fluids::decodeVolumeFluidNozzlePose ( const Value &  value)

Strict transient pose-argument decode; advanceMoving validates the unit quaternion.

在文件 VolumeFluidCodec.cpp 第 269 行定义.

引用了 error, eve::Diagnostic::error(), eve::Result< T >::failure(), eve::InvalidArgument, eve::Result< T >::success() , 以及 value.

被这些函数引用 exposeVolumeFluidType().

◆ decodeVolumeFluidParticles()

EVENGINE_API_DOMAINS Result< std::vector< VolumeFluidParticle > > eve::fluids::decodeVolumeFluidParticles ( const Value &  value)

Decodes an owning emission batch without serializing the live solver; admission validates domains.

在文件 VolumeFluidCodec.cpp 第 296 行定义.

引用了 error, eve::Diagnostic::error(), eve::InvalidArgument , 以及 value.

被这些函数引用 exposeVolumeFluidType().

◆ decodeVolumeFluidQueries()

EVENGINE_API_DOMAINS Result< std::vector< VolumeFluidQueryShape > > eve::fluids::decodeVolumeFluidQueries ( const Value &  value)

Strict owning decode of at most 256 transient mixed query descriptions.

在文件 VolumeFluidCodec.cpp 第 86 行定义.

引用了 error, eve::Diagnostic::error(), eve::InvalidArgument , 以及 value.

◆ decodeVolumeFluidSdfColliders()

Result< std::vector< VolumeFluidSdfCollider > > eve::fluids::decodeVolumeFluidSdfColliders ( const Value &  value)

Strict owning decode of at most 16 sampled SDF colliders.

在文件 VolumeFluidCodec.cpp 第 145 行定义.

引用了 error, eve::Diagnostic::error(), eve::InvalidArgument , 以及 value.

◆ decodeVolumeFluidSdfPoses()

EVENGINE_API_DOMAINS Result< std::vector< VolumeFluidSdfPose > > eve::fluids::decodeVolumeFluidSdfPoses ( const Value &  value)

Strict transient decode of at most 16 SDF transform-only updates.

在文件 VolumeFluidCodec.cpp 第 134 行定义.

引用了 error, eve::Diagnostic::error(), eve::InvalidArgument , 以及 value.

◆ decodeVolumeFluidSimplexes()

Result< std::vector< VolumeFluidSimplex > > eve::fluids::decodeVolumeFluidSimplexes ( const Value &  value)

Strict owning decode of at most 65536 point, edge or triangle topology entries.

在文件 VolumeFluidCodec.cpp 第 64 行定义.

引用了 error, eve::Diagnostic::error(), eve::InvalidArgument , 以及 value.

◆ decodeVolumeFluidStitches()

Result< std::vector< VolumeFluidStitch > > eve::fluids::decodeVolumeFluidStitches ( const Value &  value)

Strict owning decode of at most 65536 Fluid3DStitcher particle pairs.

在文件 VolumeFluidCodec.cpp 第 75 行定义.

引用了 error, eve::Diagnostic::error(), eve::InvalidArgument , 以及 value.

被这些函数引用 exposeVolumeFluidType().

◆ decodeVolumeFluidThermalRules()

Result< std::vector< VolumeFluidThermalRule > > eve::fluids::decodeVolumeFluidThermalRules ( const Value &  value)

Strict owning decode of at most 1024 transient thermal rules; step validates domains.

在文件 VolumeFluidCodec.cpp 第 194 行定义.

引用了 error, eve::Diagnostic::error(), eve::InvalidArgument , 以及 value.

被这些函数引用 exposeVolumeFluidType().

◆ decodeVolumeFluidViscosityColors()

EVENGINE_API_DOMAINS Result< std::vector< VolumeFluidViscosityColorKey > > eve::fluids::decodeVolumeFluidViscosityColors ( const Value &  value)

Strict owning decode of at most 32 transient viscosity color keys; application validates domains.

在文件 VolumeFluidCodec.cpp 第 171 行定义.

引用了 error, eve::Diagnostic::error(), eve::InvalidArgument , 以及 value.

◆ decodeVolumeFluidWindZones()

EVENGINE_API_DOMAINS Result< std::vector< VolumeFluidWindZone > > eve::fluids::decodeVolumeFluidWindZones ( const Value &  value)

Strict owning decode of at most 64 transient Fluid3D-style wind zones.

在文件 VolumeFluidCodec.cpp 第 119 行定义.

引用了 error, eve::Diagnostic::error(), eve::InvalidArgument , 以及 value.

被这些函数引用 exposeVolumeFluidType().

◆ decodeVolumeGranularEmitterBlueprint3D()

EVENGINE_API_DOMAINS Result< VolumeGranularEmitterBlueprint3D > eve::fluids::decodeVolumeGranularEmitterBlueprint3D ( const Value &  value)

Strictly decodes one owning Fluid3D granular-emitter blueprint value.

在文件 VolumeFluidCodec.cpp 第 233 行定义.

引用了 error, eve::Diagnostic::error(), eve::Result< T >::failure(), eve::InvalidArgument, eve::Result< T >::success() , 以及 value.

被这些函数引用 exposeVolumeFluidFactory().

◆ emitVolumeFluidBurst()

EVENGINE_API_DOMAINS Result< unsigned > eve::fluids::emitVolumeFluidBurst ( VolumeFluid &  solver,
const VolumeFluidEmission &  emission,
unsigned  count 
)

Generates at most 4096 particles and admits the entire burst atomically.

Simulation-thread only. Retains no solver/description pointers, invokes no callbacks. Same seed/count/input produces repeatable results on the same build; float parity is tolerance-based.

在文件 VolumeFluidEmitter.cpp 第 216 行定义.

引用了 active, eve::fluids::VolumeFluidEmission::actorCapacity, eve::fluids::VolumeFluidParticle::actorGroup, eve::fluids::VolumeFluid::actorParticleCount(), count, eve::Result< T >::failure(), eve::fluids::VolumeFluidEmission::prototype , 以及 valid.

◆ encodeFluidRendererSettings()

EVENGINE_API_DOMAINS Value eve::fluids::encodeFluidRendererSettings ( const FluidRendererSettings &  settings)

Projects one complete Fluid3D-renderer settings value.

在文件 VolumeFluidCodec.cpp 第 4 行定义.

引用了 settings.

◆ encodeVolumeFluid()

EVENGINE_API_DOMAINS Value eve::fluids::encodeVolumeFluid ( const VolumeFluidSnapshot &  snapshot)

Canonical schema-17 value projection, shared by JSON, scripts and authoring.

在文件 VolumeFluidCodec.cpp 第 16 行定义.

被这些函数引用 encodeVolumeFluidEmitterBlueprintApplication3D(), encodeVolumeFluidEmitterCheckpoint(), exposeVolumeFluidFactory() , 以及 exposeVolumeFluidType().

◆ encodeVolumeFluidCollider()

Value eve::fluids::encodeVolumeFluidCollider ( const VolumeFluidCollider &  collider)

Projects an owning collider description for script construction.

在文件 VolumeFluidCodec.cpp 第 130 行定义.

被这些函数引用 exposeVolumeFluidFactory().

◆ encodeVolumeFluidContactEvents()

Value eve::fluids::encodeVolumeFluidContactEvents ( const std::vector< VolumeFluidContactEvent > &  events)

Projects owning Enter/Stay/Exit contact lifecycle events.

在文件 VolumeFluidCodec.cpp 第 169 行定义.

引用了 events.

被这些函数引用 exposeVolumeFluidType().

◆ encodeVolumeFluidContacts()

Value eve::fluids::encodeVolumeFluidContacts ( const std::vector< VolumeFluidContact > &  contacts)

Projects last-step contacts, including world-space point and opposite impulse.

在文件 VolumeFluidCodec.cpp 第 168 行定义.

◆ encodeVolumeFluidDiffuse()

EVENGINE_API_DOMAINS Value eve::fluids::encodeVolumeFluidDiffuse ( const VolumeFluidDiffuseSnapshot &  snapshot)

Projects the owning version-1 secondary particle pool state.

在文件 VolumeFluidCodec.cpp 第 31 行定义.

被这些函数引用 exposeVolumeFluidType().

◆ encodeVolumeFluidDistanceHits()

Value eve::fluids::encodeVolumeFluidDistanceHits ( const std::vector< VolumeFluidDistanceHit > &  hits)

Projects owning signed-distance hits including captured particle values.

在文件 VolumeFluidCodec.cpp 第 61 行定义.

◆ encodeVolumeFluidEmission()

EVENGINE_API_DOMAINS Value eve::fluids::encodeVolumeFluidEmission ( const VolumeFluidEmission &  emission)

Encodes a version-9 emission description including precomputed points and particle state.

在文件 VolumeFluidCodec.cpp 第 346 行定义.

引用了 eve::Value::set().

被这些函数引用 encodeVolumeFluidEmitterBlueprintApplication3D(), encodeVolumeFluidEmitterCheckpoint() , 以及 exposeVolumeFluidFactory().

◆ encodeVolumeFluidEmitterBlueprint3D()

EVENGINE_API_DOMAINS Value eve::fluids::encodeVolumeFluidEmitterBlueprint3D ( const VolumeFluidEmitterBlueprint3D &  blueprint)

Projects default or caller-prepared Fluid3D-emitter blueprint values.

在文件 VolumeFluidCodec.cpp 第 218 行定义.

被这些函数引用 exposeVolumeFluidFactory().

◆ encodeVolumeFluidEmitterBlueprintApplication3D()

◆ encodeVolumeFluidEmitterCheckpoint()

◆ encodeVolumeFluidEmitterState()

EVENGINE_API_DOMAINS Value eve::fluids::encodeVolumeFluidEmitterState ( const VolumeFluidEmitterSnapshot &  state)

Encodes controller state without converting phase text to VM floating point.

在文件 VolumeFluidCodec.cpp 第 280 行定义.

引用了 state.

被这些函数引用 encodeVolumeFluidEmitterCheckpoint().

◆ encodeVolumeFluidFieldSamples()

Value eve::fluids::encodeVolumeFluidFieldSamples ( const std::vector< VolumeFluidFieldSample > &  samples)

Projects owning field samples, preserving query order.

在文件 VolumeFluidCodec.cpp 第 59 行定义.

被这些函数引用 exposeVolumeFluidType().

◆ encodeVolumeFluidFoam()

EVENGINE_API_DOMAINS Value eve::fluids::encodeVolumeFluidFoam ( const VolumeFluidFoamSnapshot &  snapshot)

Projects owning schema-1 foam settings, credit text and RNG state.

在文件 VolumeFluidCodec.cpp 第 17 行定义.

被这些函数引用 exposeVolumeFluidType().

◆ encodeVolumeFluidHeightFieldCollider()

Value eve::fluids::encodeVolumeFluidHeightFieldCollider ( const VolumeFluidHeightFieldCollider &  collider)

Projects one complete owning regular height field.

在文件 VolumeFluidCodec.cpp 第 132 行定义.

被这些函数引用 exposeVolumeFluidFactory().

◆ encodeVolumeFluidParticleEvents()

Value eve::fluids::encodeVolumeFluidParticleEvents ( const VolumeFluidParticleEventBatch &  batch)

Projects one owning bounded particle lifecycle-event drain.

在文件 VolumeFluidCodec.cpp 第 206 行定义.

被这些函数引用 exposeVolumeFluidType().

◆ encodeVolumeFluidParticles()

Value eve::fluids::encodeVolumeFluidParticles ( const std::vector< VolumeFluidParticle > &  particles)

Projects an owning particle batch without copying the live solver.

在文件 VolumeFluidCodec.cpp 第 205 行定义.

◆ encodeVolumeFluidQueryHits()

Value eve::fluids::encodeVolumeFluidQueryHits ( const std::vector< VolumeFluidQueryHit > &  hits)

Projects owning mixed-query hits with their source query indices.

在文件 VolumeFluidCodec.cpp 第 62 行定义.

◆ encodeVolumeFluidRayHits()

Value eve::fluids::encodeVolumeFluidRayHits ( const std::vector< VolumeFluidRayHit > &  hits)

Projects owning ray hits including captured particle values.

在文件 VolumeFluidCodec.cpp 第 60 行定义.

◆ encodeVolumeFluidSdfCollider()

Value eve::fluids::encodeVolumeFluidSdfCollider ( const VolumeFluidSdfCollider &  collider)

Projects one complete owning SDF collider.

在文件 VolumeFluidCodec.cpp 第 131 行定义.

被这些函数引用 exposeVolumeFluidFactory().

◆ encodeVolumeFluidSdfPose()

EVENGINE_API_DOMAINS Value eve::fluids::encodeVolumeFluidSdfPose ( const VolumeFluidSdfPose &  pose)

Projects one transform-only SDF update for script construction.

在文件 VolumeFluidCodec.cpp 第 133 行定义.

引用了 pose.

被这些函数引用 exposeVolumeFluidFactory().

◆ encodeVolumeFluidSimplexHits()

Value eve::fluids::encodeVolumeFluidSimplexHits ( const std::vector< VolumeFluidSimplexHit > &  hits)

Projects owning Fluid3D-compatible simplex query results.

在文件 VolumeFluidCodec.cpp 第 63 行定义.

◆ encodeVolumeFluidThermalRule()

Value eve::fluids::encodeVolumeFluidThermalRule ( const VolumeFluidThermalRule &  rule)

Owning default-rule projection for script construction.

在文件 VolumeFluidCodec.cpp 第 170 行定义.

被这些函数引用 exposeVolumeFluidFactory().

◆ encodeVolumeFluidWindZone()

EVENGINE_API_DOMAINS Value eve::fluids::encodeVolumeFluidWindZone ( const VolumeFluidWindZone &  zone)

Projects one complete wind-zone description for script construction.

在文件 VolumeFluidCodec.cpp 第 167 行定义.

被这些函数引用 exposeVolumeFluidFactory().

◆ encodeVolumeGranularEmitterBlueprint3D()

EVENGINE_API_DOMAINS Value eve::fluids::encodeVolumeGranularEmitterBlueprint3D ( const VolumeGranularEmitterBlueprint3D &  blueprint)

Projects default or caller-prepared Fluid3D granular-emitter blueprint values.

在文件 VolumeFluidCodec.cpp 第 230 行定义.

被这些函数引用 exposeVolumeFluidFactory().

◆ evaluateVolumeFluidEmitterBlueprint3D()

EVENGINE_API_DOMAINS Result< VolumeFluidEmitterBlueprintMetrics > eve::fluids::evaluateVolumeFluidEmitterBlueprint3D ( float  resolution,
float  restDensity,
float  smoothing 
)

Evaluates Fluid3DEmitterBlueprintBase/Fluid3DEmitterBlueprint formulas in 3D.

resolution and restDensity must be finite and at least 0.001; smoothing must be finite and at least 1. The pure setup-time call allocates nothing and mutates no solver.

在文件 VolumeFluidEmitter.cpp 第 145 行定义.

引用了 eve::Diagnostic::error(), eve::Result< T >::failure(), eve::InvalidArgument, eve::fluids::VolumeFluidEmitterBlueprintMetrics::particleMass, eve::fluids::VolumeFluidEmitterBlueprintMetrics::particleSize, eve::fluids::VolumeFluidEmitterBlueprintMetrics::smoothingRadius , 以及 eve::Result< T >::success().

被这些函数引用 exposeVolumeFluidFactory(), prepareVolumeFluidEmitterBlueprint3D() , 以及 prepareVolumeGranularEmitterBlueprint3D().

◆ exposeVolumeFluidFactory()

void eve::fluids::exposeVolumeFluidFactory ( ssq::Class &  cls)

Registers volume-fluid factories on the existing Fluids class.

在文件 VolumeFluidFactoryBindings.cpp 第 7 行定义.

引用了 buildVolumeFluidCubeDistribution(), buildVolumeFluidDiskDistribution(), buildVolumeFluidEdgeDistribution(), buildVolumeFluidImageDistribution(), buildVolumeFluidMeshDistribution(), buildVolumeFluidSphereDistribution(), bytes, c, cls, eve::fluids::VolumeFluidParticle::color, color, composeVolumeFluidEmitterShapes(), eve::fluids::VolumeFluid::create(), created, decodeVolumeFluidEmission(), decodeVolumeFluidEmitterBlueprint3D(), decodeVolumeGranularEmitterBlueprint3D(), Distribution, eve::fluids::VolumeFluidEmission::distribution, encodeVolumeFluid(), encodeVolumeFluidCollider(), encodeVolumeFluidEmission(), encodeVolumeFluidEmitterBlueprint3D(), encodeVolumeFluidEmitterBlueprintApplication3D(), encodeVolumeFluidHeightFieldCollider(), encodeVolumeFluidSdfCollider(), encodeVolumeFluidSdfPose(), encodeVolumeFluidThermalRule(), encodeVolumeFluidWindZone(), encodeVolumeGranularEmitterBlueprint3D(), error, eve::Diagnostic::error(), evaluateVolumeFluidEmitterBlueprint3D(), eve::Status::failure(), height, eve::fluids::VolumeFluidHeightFieldCollider::heights, image, index, indices, eve::InvalidArgument, length, eve::fluids::MeshSdf::makeFromTriangles(), eve::fluids::MeshSdf::makeSphere(), message, model, owned, pixels, points, prepareVolumeFluidEmitterBlueprint3D(), prepareVolumeGranularEmitterBlueprint3D(), eve::script::projectResult(), eve::script::projectStatusResult(), eve::fluids::VolumeFluidEmission::prototype, radius, scale, eve::fluids::VolumeFluidSdfCollider::sdf, eve::Value::set(), eve::fluids::VolumeFluidEmission::shape, shape, source, spacing, eve::Status::success(), sx, sy, sz, value, eve::script::valueFromSquirrel(), vertexCount, vertices, vm, width, x , 以及 y.

◆ exposeVolumeFluidType()

◆ fluidClampSpeed()

glm::vec3 eve::fluids::fluidClampSpeed ( const glm::vec3 &  v,
float  maxSpeed 
)
inline

Clamp a vector's magnitude to maxSpeed.

在文件 FluidMath.h 第 113 行定义.

引用了 s , 以及 v.

◆ fluidCohesionKernel()

float eve::fluids::fluidCohesionKernel ( float  r,
float  h 
)
inline

Akinci-style cohesion kernel C(r) for droplet surface tension.

参数
rdistance between two particles.
hsupport radius.
返回
kernel value, 0 outside the support.

在文件 FluidMath.h 第 104 行定义.

引用了 h, q , 以及 r.

◆ fluidPoly6()

float eve::fluids::fluidPoly6 ( float  r2,
float  h 
)
inline

Poly6 kernel value W(r2, h).

参数
r2squared distance between two particles.
hsupport radius.
返回
kernel value, 0 outside the support.

在文件 FluidMath.h 第 65 行定义.

引用了 h , 以及 q.

◆ fluidSpikyGrad()

glm::vec3 eve::fluids::fluidSpikyGrad ( const glm::vec3 &  dx,
float  h 
)
inline

Spiky gradient of the kernel w.r.t. particle i position.

参数
dxvector from neighbor j to particle i (p_i - p_j).
hsupport radius.
返回
gradient vector, zero outside the support.

在文件 FluidMath.h 第 78 行定义.

引用了 dx, h, q , 以及 r.

◆ fluidViscLaplacian()

float eve::fluids::fluidViscLaplacian ( float  r,
float  h 
)
inline

Viscosity Laplacian kernel value.

参数
rdistance between two particles.
hsupport radius.
返回
laplacian value, 0 outside the support.

在文件 FluidMath.h 第 93 行定义.

引用了 h , 以及 r.

◆ Module_IMPL()

eve::fluids::Module_IMPL ( Fluids  ,
new   Fluids() 
)

◆ prepareVolumeFluidEmitterBlueprint3D()

EVENGINE_API_DOMAINS Result< VolumeFluidEmitterBlueprintApplication3D > eve::fluids::prepareVolumeFluidEmitterBlueprint3D ( const VolumeFluidEmitterBlueprint3D &  blueprint)

Atomically maps every Fluid3DEmitterBlueprint field to native 3D setup values.

Pure setup-time operation. The returned solver settings and emission description own all data; no solver, callback, render resource or GPU work is created. The default shared-solver capacity equals the actor blueprint capacity and may be increased before solver construction.

在文件 VolumeFluidEmitter.cpp 第 159 行定义.

引用了 eve::fluids::VolumeFluidEmission::actorCapacity, eve::fluids::VolumeFluidEmitterBlueprint3D::atmosphericDrag, eve::fluids::VolumeFluidEmitterBlueprint3D::atmosphericPressure, eve::fluids::VolumeFluidEmitterBlueprint3D::buoyancy, eve::fluids::VolumeFluidSettings::capacity, eve::fluids::VolumeFluidEmitterBlueprint3D::capacity, eve::fluids::VolumeFluidParticle::data, eve::fluids::VolumeFluidEmitterBlueprint3D::diffusion, eve::fluids::VolumeFluidEmitterBlueprint3D::diffusionData, eve::fluids::VolumeFluidEmitterBlueprintApplication3D::emission, eve::Diagnostic::error(), evaluateVolumeFluidEmitterBlueprint3D(), eve::Result< T >::failure(), eve::InvalidArgument, Liquid, eve::fluids::VolumeFluidParticle::material, material, maximum, eve::fluids::VolumeFluidEmitterBlueprintApplication3D::metrics, minimum, eve::fluids::VolumeFluidEmitterBlueprintMetrics::particleSize, eve::fluids::VolumeFluidMaterial::phase, eve::fluids::VolumeFluidEmission::prototype, eve::fluids::VolumeFluidEmitterBlueprint3D::resolution, eve::fluids::VolumeFluidEmitterBlueprint3D::restDensity, eve::fluids::VolumeFluidEmitterBlueprintApplication3D::settings, eve::fluids::VolumeFluidEmitterBlueprint3D::smoothing, eve::fluids::VolumeFluidSettings::spacing, eve::Result< T >::success(), eve::fluids::VolumeFluidEmitterBlueprint3D::surfaceTension, value, eve::fluids::VolumeFluidEmitterBlueprint3D::viscosity , 以及 eve::fluids::VolumeFluidEmitterBlueprint3D::vorticity.

被这些函数引用 exposeVolumeFluidFactory().

◆ prepareVolumeGranularEmitterBlueprint3D()

EVENGINE_API_DOMAINS Result< VolumeFluidEmitterBlueprintApplication3D > eve::fluids::prepareVolumeGranularEmitterBlueprint3D ( const VolumeGranularEmitterBlueprint3D &  blueprint)

◆ restoreVolumeFluidEmitterCheckpoint() [1/2]

EVENGINE_API_DOMAINS Result< void > eve::fluids::restoreVolumeFluidEmitterCheckpoint ( VolumeFluid &  solver,
VolumeFluidEmitter &  controller,
const VolumeFluidEmitterCheckpoint &  checkpoint 
)

Atomically restores solver and rate controller after validating the complete owning candidate.

Simulation-thread only. Schema/version, solver state, emission description and controller kind/state are preflighted before either destination changes. No callbacks, external references or GPU work are involved. The emission description remains owned by the checkpoint and is returned to script callers by the binding layer.

在文件 VolumeFluidEmitter.cpp 第 693 行定义.

◆ restoreVolumeFluidEmitterCheckpoint() [2/2]

EVENGINE_API_DOMAINS Result< void > eve::fluids::restoreVolumeFluidEmitterCheckpoint ( VolumeFluid &  solver,
VolumeFluidJetEmitter &  controller,
const VolumeFluidEmitterCheckpoint &  checkpoint 
)

Atomically restores solver and moving-jet controller under the same checkpoint contract.

在文件 VolumeFluidEmitter.cpp 第 698 行定义.

变量说明

◆ kFluidApplyDelta

const char* eve::fluids::kFluidApplyDelta
inline

Apply PBF deltas and re-project onto the SDF surface.

在文件 FluidGpuKernels.h 第 228 行定义.

◆ kFluidBuildGrid

const char* eve::fluids::kFluidBuildGrid
inline
初始值:
= R"GLSL(
#version 450
layout(local_size_x = 64) in;
layout(set = 0, binding = 0) buffer Pos { vec4 p[]; } pos;
layout(set = 0, binding = 2) buffer CellHead { int h[]; } head;
layout(set = 0, binding = 3) buffer CellNext { int nx[]; } next;
layout(push_constant) uniform PC { float d[32]; } pc;
void main() {
uint i = gl_GlobalInvocationID.x;
uint n = uint(pc.d[0]);
if (i >= n) return;
vec3 origin = vec3(pc.d[17], pc.d[18], pc.d[19]);
float cs = pc.d[20];
ivec3 dim = ivec3(int(pc.d[14]), int(pc.d[15]), int(pc.d[16]));
ivec3 c = ivec3(floor((pos.p[i].xyz - origin) / cs));
c = clamp(c, ivec3(0), dim - ivec3(1));
int cell = c.x + dim.x * (c.y + dim.y * c.z);
int prev = atomicExchange(head.h[cell], int(i));
next.nx[i] = prev;
}
)GLSL"

Insert every particle into its grid cell (linked list via atomicExchange).

在文件 FluidGpuKernels.h 第 58 行定义.

◆ kFluidClearGrid

const char* eve::fluids::kFluidClearGrid
inline
初始值:
= R"GLSL(
#version 450
layout(local_size_x = 64) in;
layout(set = 0, binding = 2) buffer CellHead { int h[]; } head;
layout(push_constant) uniform PC { float d[32]; } pc;
void main() {
uint i = gl_GlobalInvocationID.x;
uint resX = uint(pc.d[14]);
uint resY = uint(pc.d[15]);
uint resZ = uint(pc.d[16]);
if (i < resX * resY * resZ) head.h[i] = -1;
}
)GLSL"

Zero the linked-list cell heads.

在文件 FluidGpuKernels.h 第 39 行定义.

◆ kFluidComputeDelta

const char* eve::fluids::kFluidComputeDelta
inline

Accumulate PBF position deltas into the (reused) grad buffer.

在文件 FluidGpuKernels.h 第 165 行定义.

◆ kFluidDensityLambda

const char* eve::fluids::kFluidDensityLambda
inline

Density, gradient sum and PBF lambda in one pass (mirror computeDensitiesAndGrads + computeLambdas).

在文件 FluidGpuKernels.h 第 87 行定义.

◆ kFluidIntegrate

const char* eve::fluids::kFluidIntegrate
inline

Viscosity + cohesion + adhesion + gravity + integration + SDF projection.

在文件 FluidGpuKernels.h 第 331 行定义.

◆ kSsfAnisotropicSplat

constexpr auto eve::fluids::kSsfAnisotropicSplat
inlineconstexpr

在文件 FluidSsfKernels.h 第 223 行定义.

◆ kSsfClear

const char* eve::fluids::kSsfClear
inline
初始值:
= R"GLSL(
#version 450
layout(local_size_x = 64) in;
layout(set = 0, binding = 1) buffer DepthA { uint d[]; } depthA;
layout(set = 0, binding = 2) buffer DepthB { uint d[]; } depthB;
layout(set = 0, binding = 3) buffer Thick { uint t[]; } thick;
layout(set = 0, binding = 4) buffer Normal { vec4 n[]; } normal;
layout(set = 0, binding = 5) buffer Color { uint c[]; } color;
layout(push_constant) uniform PC { float d[32]; } pc;
void main() {
uint i = gl_GlobalInvocationID.x;
uint total = uint(pc.d[23]) * uint(pc.d[24]);
if (i >= total) return;
depthA.d[i] = 0xFFFFFFFFu;
depthB.d[i] = 0xFFFFFFFFu;
thick.t[i] = 0u;
normal.n[i] = vec4(0.0);
color.c[i] = 0u;
}
)GLSL"

Reset depth (0xFFFFFFFF), thickness, normal and color buffers.

在文件 FluidSsfKernels.h 第 37 行定义.

◆ kSsfColorClear

const char* eve::fluids::kSsfColorClear
inline
初始值:
= R"GLSL(
#version 450
layout(local_size_x = 64) in;
layout(set = 0, binding = 7) buffer Accum { uint v[]; } accum;
layout(push_constant) uniform PC { float d[32]; } pc;
void main() {
uint i = gl_GlobalInvocationID.x;
if (i >= uint(pc.d[23]) * uint(pc.d[24])) return;
uint at = i * 5u;
for (uint channel = 0u; channel < 5u; ++channel) accum.v[at + channel] = 0u;
}
)GLSL"

Clear lazily-created fixed-point multicolor accumulation buffers. @lifetime The returned pointer remains valid for the process lifetime.

返回
Process-lifetime static read-only GLSL source; the caller must not free it.

在文件 FluidSsfKernels.h 第 142 行定义.

◆ kSsfColorSplat

const char* eve::fluids::kSsfColorSplat
inline

Accumulate isotropic particle colors using the CPU tint pass' disc weights. @lifetime The returned pointer remains valid for the process lifetime.

返回
Process-lifetime static read-only GLSL source; the caller must not free it.

在文件 FluidSsfKernels.h 第 164 行定义.

◆ kSsfNormal

const char* eve::fluids::kSsfNormal
inline

Reconstruct view-space normals from the smoothed depth.

在文件 FluidSsfKernels.h 第 336 行定义.

◆ kSsfShade

const char* eve::fluids::kSsfShade
inline

Water/mud shading from depth + normal + thickness.

在文件 FluidSsfKernels.h 第 421 行定义.

◆ kSsfSmooth

const char* eve::fluids::kSsfSmooth
inline

One bilateral smoothing pass (read depthA, write depthB).

在文件 FluidSsfKernels.h 第 271 行定义.

◆ kSsfSplat

const char* eve::fluids::kSsfSplat
inline

Splat particles into depth + thickness (atomic min / add).

在文件 FluidSsfKernels.h 第 67 行定义.