This page provides information on Per-Node Properties for Phoenix.
Overview
If you right-click in the viewport when one or more objects are selected, you will find a Phoenix properties menu.
When multiple objects are selected, the parameters that differ will be grayed, but you are able to change them.
Parameters
Since Phoenix 4.0, these properties can be accessed via MaxScript as 3ds Max Custom Attributes. You can access them via the names in italic beside each property below.
Example usage:
$Box001.custAttributes["PhxNodePropsCustAttrib"].phxfdObjSolid
Note that by default Phoenix does not create custom attributes for all nodes in the scene, so if a node does not have the "PhxNodePropsCustAttrib" attributes, its node properties are all defaults.
In order to change these properties on objects, you might need to also create them. Phoenix also provides phxAddNodeProps, phxRemoveNodeProps, and phxGetNodeProps MaxScript functions you can use for e.g. easily editing node properties even on objects they don't yet exist on.
Example usage:
General Properties
Solid Obstacle | phxfdObjSolid – When enabled, the object is an obstacle for the simulation and will obstruct the fluid. Otherwise, the object will be transparent to the fluid, but it still can be used as an emitter by the PHXSource or as an attractor geometry using the Body Force.
Please ensure that your solid geometry:
- has no open edges or holes
- does not self-intersect
- has normals pointing outwards
Phoenix will try to handle any geometry that does not comply with these conditions, but the simulation might not behave properly - in case of fire/smoke simulations some areas of the simulation could lose velocity and freeze for no apparent reason, and in liquid simulations particle explosions could appear.
Clear Inside | phxfdClearInside, phxfdClearChannels – When enabled, allows you to remove the specified grid channels or particle systems from the volume of the object. To erase only certain types of channels without affecting the motion of the simulation, you can combine this option with a non-solid object. The option produces different results depending on the type of simulation:
For fire/smoke simulations, voxels overlapped by the geometry will be cleared.
For liquid simulations where the geometry is not Solid, particles overlapped by the geometry will be cleared.
For liquid simulations, if the geometry is Solid, all particles will be erased if they enter the volume of the geometry, even if Clear Inside is off. There is a special case when Initial Fill Up and Fill Up for Ocean are both enabled. In this case, if Clear Inside is off, the grid voxels under the Initial Fill Up level will be considered full of Liquid, even if there are no Liquid Particles in them. This way ships or other vessels immersed in the simulator would have their inner volume filled by the liquid mesh and will not have visible air pockets over their surface during rendering. Otherwise, if Clear Inside is off, voxels that are inside the geometry and under the liquid level will not contain grid liquid.
When Clear Inside is enabled, the list specifies which grid channels or particle systems to remove from the volume of the object, separated by commas. The supported elements are Liquid, Splashes, Foam, Mist, Temperature, Smoke, Fuel.
Initial Liquid Fill | phxfdObjInitialFillup – Affects only liquid simulators. Creates liquid in the entire volume of the object on simulation start. The option is available only for non-solid objects. If the Initial Liquid Fill parameter is enabled, Solid Object is automatically disabled.
The liquid emitted through the Initial Liquid Fill option will be initialized with the values set for the Default RGB and Default Viscosity parameters in the Dynamics rollout of the Simulator. If your setup requires multiple sources with different values for those options, consider using a Phoenix Liquid Source node instead.
Wetting | phxfdObjWetting – Affects only Liquid Simulators. This control allows you to enable/disable wetting for this specific object, in case Wetting is enabled from the Dynamics rollout of the Liquid Simulator. The option is available only when the object is Solid. If the Solid Object parameter is disabled, Wetting is automatically disabled as well.
Animated Vertices | phxfdObjVelocity – When an object is animated, its surface must produce the corresponding forces in the fluid. Disabling this feature could speed up the simulation, if there are no objects with animated vertices in the scene.
Motion Velocity Effect | phxfdObjVelocityMult – Allows you to control the impact of a moving object over the fluid. The motion could be caused by translation, rotation, scaling of the object, or by vertex animation where the vertices should push the fluid with their vertex velocities. The higher the value is, the stronger the fluid reaction to the body's motion is.
Geom Border Voxels Override | phxfdObjVoxels – Affects only fire/smoke simulations. Per object control of how deep the fluid penetrates into the object. Same as the Object voxels parameter of the Simulator.
Active Body Properties
The settings below only affect Liquid simulations using the Active Body Solver. Active Body simulations using the Fire/Smoke Simulator are not supported yet.
When working with Active Bodies, make sure to select the original object when tweaking the Per-Node Properties.
Phoenix automatically creates a Clone of the original object when you start a simulation. The Clone is a duplicate of the provided geometry whose position and orientation are stored as key-frames. When the simulation is re-started, the Clone is deleted – any changes made to the Per-Node Properties of the clone are lost.
If you want to preserve a simulated copy of an Active Body, you can make a copy of the simulated Clone and then move the copy out of the Active Body Solver's layer in 3ds Max's Layer Explorer (everything in that layer gets deleted when the sim is restarted, so it does not interfere with the next simulation).
Make Active Body Static | phxfdObjStatic – When enabled will make the Active Body static. It will not be affected by gravity or influenced by the force of the fluid, but will still act as a collider for the other active bodies and the fluids.
Collider Type | phxfdObjColliderType - Specifies the shape used by the Bullet Solver to represent an object.
- Precise Concave (Slow) - The geometry is decomposed to a set of convex meshes that move together. This shape is useful when simulating concave objects such as a torus, hollow tube or fractured geometry.
- Simple Concave - The geometry is converted to a single representation of a concave mesh. This option is faster than using Precise concave, but is less precise during complex collisions.
- Convex (Fast) - A collision shape from the convex hull of the geometry.
- Capsule (Faster) - A capsule shape over the geometry.
- Box (Faster) - A bounding box over the geometry.
Using a single collision type for the majority of the colliders improves performance. This way the collision calculations will be faster.
Specify Mass (kg) | phxfdObjSpecifyMass, phxfdObjMass – Specifies the total mass of the Active Body, in kilograms. Use this option when you have a rough estimate of the real-world mass of the Active Body. Note that the specified Mass will be automatically divided by the computed volume of the original object to reach the final density – as a consequence, the specified Mass is evenly distributed across the entire object. Ideally, all elements of the original object should have roughly the same Mass. E.g. when simulating a ship, it would be best to remove high-volume, low-mass geometry such as sails and ropes.
Specify Density (kg/m3) | phxfdObjSpecifyMass, phxfdObjDens – Specifies the Density of the Active Body object. Use this option when you have a rough estimate of the real-world density of the Active Body. The density of an object is its total mass divided by its volume. Note that the specified Density is considered evenly distributed across the entire object. Ideally, all elements of the original object should have roughly the same Mass. E.g. when simulating a ship, it would be best to remove high-volume, low-mass geometry such as sails and ropes.
Density Presets – Provides a rough preset value for the Density of an object of a certain material. Note that the presets are for reference only - you may need to further tweak the Specify Density parameter:
- Cork (270)
- Ship Hull (500)
- Wood (700)
- Boat (800)
- Ice (920)
- Water (1000)
- Plastic(1350)
- Rubber (1520)
- Concrete (2400)
- Glass (2600)
- Steel (8000)
Friction with Active Bodies | phxfdObjToBodyFriction – Controls the amount of friction between the Active Bodies. Low amounts of friction will allow objects to slide while high amounts of friction will slow down both the objects' rotation and movement once they come into contact with another object or the ground plane.
Friction with the Fluid | phxfdObjToFluidFriction – Controls the influence of the fluid simulation over the Active Body. When the friction is low, the Active Body will act as a perfectly smooth object (e.g. a ball of wax), allowing water particles to slide across the surface. When the friction is high, the adhesive forces between the Active Body and the fluid will cause water particles to affect the movement of the object to a greater degree. Increase this value when simulating an object in a turbulent body of water whose behavior should be more chaotic.
Elasticity | phxfdObjElasticity – Controls the bounciness of the Active Body. Higher values will make the object bounce more when colliding with another Active Body or the ground plane.
Apply Gravity and Buoyancy | phxfdApplyGravityAndBuoyancy – When disabled, the body will behave as if in zero-gravity. On earth, an object floats above water because of two forces: Gravity pulling it down, and the Buoyancy of the liquid pushing it up. Depending on the densities of the liquid and the floating object, those forces balance out and the object either sinks (if denser than the liquid its submerged in) or floats. When Gravity and Buoyancy are disabled, any force applied to the Active Body will cause it to accelerate indefinitely in a single direction.
Override Center of Mass | phxfdObjOverrideCenterOfMass – Allows you to manually modify the position of the Center of Mass gizmo whose initial location is based on the computed mass of the Active Body. To simplify things, an assumption is made that all parts of the object have an equal weight which in many cases is not true (e.g. a ship's hull is much heavier than its sails). Use this option to manually tweak the position of the Center of Mass gizmo to stabilize the Active Body during the simulation.
Original Animation Influence | phxfdObjOriginalInfluence – Phoenix Active Bodies are designed so that you can animate the originals and make them follow a trajectory. Then, as the Active Body simulation runs, the original animation can blend with the effect of the fluid on the Active Body. The Original Animation Influence option controls the balance between the animation of the original and the effect of the fluid. If it is 0.0, then the fluid will have full control over the Active Body and any animation it has will be ignored. If this option is 1.0, then the Active Body will try to perfectly match the position of the original object. Between 0 and 1, you can have both effects at the same time. Note that if you don't have any animation for the Active Body original geometry and it is just static, then setting this option above 0.0 will allow you to weaken the effect of the fluid over the body and the Active Body will try to remain still. Additionally, if you just want to reduce the effect of the fluid on the Active Body, you can lower the Fluid Dens. Mult. option in the Active Body Solver.
Note that the Key Filters... → Custom Attributes filter should be enabled, in case you want to animate the Phoenix Per-Node Properties using the 3ds Max Set Key Mode.