FluXY  1.3
2.5D fluid simulator for Unity
 All Classes Namespaces Functions Variables Pages
Fluxy.FluxyContainer Class Reference
Inheritance diagram for Fluxy.FluxyContainer:

Classes

struct  BoundaryConditions
 
struct  EdgeFalloff
 

Public Types

enum  LookAtMode { LookAt, CopyOrientation }
 
enum  ContainerShape { Plane, Volume, Custom }
 

Public Member Functions

virtual void UpdateContainerShape ()
 
virtual void Clear ()
 
Vector3 TransformWorldVectorToUVSpace (in Vector3 vector, in Vector4 uvRect)
 
Vector3 TransformUVVectorToWorldSpace (in Vector3 vector, in Vector4 uvRect)
 
Vector3 TransformWorldPointToUVSpace (in Vector3 point, in Vector4 uvRect)
 
virtual void UpdateTransform ()
 
virtual void UpdateMaterial (int tile, FluxyStorage.Framebuffer fb)
 
virtual Vector4 ProjectTarget (in Vector3 targetPosition, Vector2 projectionSize, float aspectRatio, bool scaleWithDistance=true)
 
Vector3 UpdateVelocityAndGetAcceleration ()
 
Vector3 GetVelocityAt (Vector3 worldPosition)
 

Public Attributes

ContainerShape containerShape = ContainerShape.Plane
 Shape of the container: can be flat, can be a volume, or can be a custom mesh. More...
 
Vector2Int subdivisions = Vector2Int.one
 Amount of subdivisions in the plane mesh. More...
 
Mesh customMesh = null
 Custom mesh used by the container. If null, a subdivided plane will be used instead. More...
 
Vector3 size = Vector3.one
 Size of the container in local space. More...
 
LookAtMode lookAtMode = LookAtMode.LookAt
 Method using for facing the lookAt transform: look to it, or copy its orientation. More...
 
Transform lookAt
 Transform that the container should be facing at all times. If unused, you can set the container's rotation manually. More...
 
Transform projectFrom
 Transform used as raycasting origin for splatting targets onto this container. If unused, simple planar projection will be used instead. More...
 
Texture2D clearTexture
 Texture used for clearing the container's density buffer. More...
 
Color clearColor
 Color used to tint the clear texture. More...
 
Texture2D surfaceNormals
 Normal map used to determine container surface normal. More...
 
Vector2 normalTiling = Vector2.one
 Tiling of surface normals. More...
 
float normalScale = 1
 Intensity of the surface normals. More...
 
EdgeFalloff edgeFalloff
 Falloff controls for density and velocity near container edges. More...
 
BoundaryConditions boundaries
 Falloff controls for density and velocity near container edges. More...
 
float velocityScale = 1
 Scale (0%-100%) of container's velocity. If set to zero, containers will be regarded as static. More...
 
float accelerationScale = 1
 Scale (0%-100%) of container's acceleration. This controls how much world-space inertia affects the fluid. More...
 
Vector3 gravity = Vector3.zero
 World-space gravity applied to the fluid. More...
 
Vector3 externalForce = Vector3.zero
 World-space external force applied to the fluid. More...
 
Light lightSource = null
 Lightsource used for volume rendering. More...
 
FluxyTarget[] targets
 List of targets that should be splatted onto this container. More...
 
float pressure = 1
 Scales fluid pressure. More...
 
float viscosity = 0
 Scales fluid viscosity. More...
 
float turbulence = 5
 Amount of turbulence (vorticity) in the fluid. More...
 
float adhesion = 0
 Amount of adhesion to the container's surface. More...
 
float surfaceTension = 0
 Amount of surface tension. Higher values will make the fluid tend to form round shapes. More...
 
float buoyancy = 1
 Upwards buoyant force applied to fluid. It is directly proportional to the contents the density buffer's alpha channel (temperature). More...
 
Vector4 dissipation = Vector4.zero
 Amount of density dissipated per second. More...
 

Protected Member Functions

virtual void OnEnable ()
 
virtual void OnDisable ()
 
virtual void Start ()
 
virtual void OnValidate ()
 
void BuildPlaneMesh ()
 
void BuildVolumeMesh ()
 
void BuildCustomMesh ()
 
virtual void LateUpdate ()
 
virtual void OnDrawGizmosSelected ()
 

Protected Attributes

Mesh proceduralMesh
 
Vector3[] vertices
 
Vector3[] normals
 
Vector4[] tangents
 
Vector2[] uvs
 
int[] triangles
 

Properties

FluxySolver solver [get, set]
 
Vector3 velocity [get]
 
Vector3 angularVelocity [get]
 
Renderer containerRenderer [get]
 
Mesh containerMesh [get]
 

Member Data Documentation

float Fluxy.FluxyContainer.accelerationScale = 1

Scale (0%-100%) of container's acceleration. This controls how much world-space inertia affects the fluid.

float Fluxy.FluxyContainer.adhesion = 0

Amount of adhesion to the container's surface.

BoundaryConditions Fluxy.FluxyContainer.boundaries

Falloff controls for density and velocity near container edges.

float Fluxy.FluxyContainer.buoyancy = 1

Upwards buoyant force applied to fluid. It is directly proportional to the contents the density buffer's alpha channel (temperature).

Color Fluxy.FluxyContainer.clearColor

Color used to tint the clear texture.

Texture2D Fluxy.FluxyContainer.clearTexture

Texture used for clearing the container's density buffer.

ContainerShape Fluxy.FluxyContainer.containerShape = ContainerShape.Plane

Shape of the container: can be flat, can be a volume, or can be a custom mesh.

Mesh Fluxy.FluxyContainer.customMesh = null

Custom mesh used by the container. If null, a subdivided plane will be used instead.

Vector4 Fluxy.FluxyContainer.dissipation = Vector4.zero

Amount of density dissipated per second.

EdgeFalloff Fluxy.FluxyContainer.edgeFalloff

Falloff controls for density and velocity near container edges.

Vector3 Fluxy.FluxyContainer.externalForce = Vector3.zero

World-space external force applied to the fluid.

Vector3 Fluxy.FluxyContainer.gravity = Vector3.zero

World-space gravity applied to the fluid.

Light Fluxy.FluxyContainer.lightSource = null

Lightsource used for volume rendering.

Transform Fluxy.FluxyContainer.lookAt

Transform that the container should be facing at all times. If unused, you can set the container's rotation manually.

LookAtMode Fluxy.FluxyContainer.lookAtMode = LookAtMode.LookAt

Method using for facing the lookAt transform: look to it, or copy its orientation.

float Fluxy.FluxyContainer.normalScale = 1

Intensity of the surface normals.

Vector2 Fluxy.FluxyContainer.normalTiling = Vector2.one

Tiling of surface normals.

float Fluxy.FluxyContainer.pressure = 1

Scales fluid pressure.

Transform Fluxy.FluxyContainer.projectFrom

Transform used as raycasting origin for splatting targets onto this container. If unused, simple planar projection will be used instead.

Vector3 Fluxy.FluxyContainer.size = Vector3.one

Size of the container in local space.

Vector2Int Fluxy.FluxyContainer.subdivisions = Vector2Int.one

Amount of subdivisions in the plane mesh.

Texture2D Fluxy.FluxyContainer.surfaceNormals

Normal map used to determine container surface normal.

float Fluxy.FluxyContainer.surfaceTension = 0

Amount of surface tension. Higher values will make the fluid tend to form round shapes.

FluxyTarget [] Fluxy.FluxyContainer.targets

List of targets that should be splatted onto this container.

float Fluxy.FluxyContainer.turbulence = 5

Amount of turbulence (vorticity) in the fluid.

float Fluxy.FluxyContainer.velocityScale = 1

Scale (0%-100%) of container's velocity. If set to zero, containers will be regarded as static.

float Fluxy.FluxyContainer.viscosity = 0

Scales fluid viscosity.


The documentation for this class was generated from the following file: