载入中...
搜索中...
未找到
SurfaceWetnessField.h
浏览该文件的文档.
1#pragma once
2#include "common/Export.h"
3
4
6
7#include <vector>
8#include <utility>
9
10namespace eve::fluids {
11
15 float diffusion = 0.18f;
17 float evaporation = 0.025f;
19 float maxWetness = 1.f;
20};
21
29public:
31 bool build(const FluidSurfaceBinding& binding);
32
34 void deposit(const SurfaceLocation& location, float amount);
35
37 void step(float dt, const SurfaceWetnessParams& params = {});
38
41 float sample(const SurfaceLocation& location) const;
42
45 const std::vector<float>& values() const { return values_; }
46
48 void clear();
49
50private:
51 std::vector<float> values_;
52 std::vector<std::vector<int>> neighbors_;
53 std::vector<std::pair<uint32_t, uint32_t>> edges_;
54 std::vector<glm::uvec3> triangles_;
55};
56
57} // namespace eve::fluids
#define EVENGINE_API_DOMAINS
Definition Export.h:110
eve::action::ActionVfxBinding binding
float step
Definition TreeMesh.cpp:314
Dynamic triangle surface used to bind films and droplets to deforming meshes.
Lightweight material-space wet-film field stored at mesh vertices.
const std::vector< float > & values() const
Values.
std::vector< ParamSpec > params
GLSL compute kernels for the GPU surface-flow solver.
Definition FluidTarget.h:12
Stable material-space address of a point on a triangle surface.
Parameters controlling persistent wet-film traces on a triangle surface.
float evaporation
Exponential evaporation rate per second.
float maxWetness
Saturation limit for each field vertex.
float diffusion
Material-space diffusion rate per second.