There are many places in Phoenix where you can insert a texture and affect the simulation or rendering of fluids - fire/smoke or liquids:
- Shading of Fire Color, Fire Opacity, Smoke Color or Smoke Opacity, when the Simulator is in Volumetric, Volumetric Geometry or Heat Haze mode.
- When the Simulator is in Mesh, Ocean Mesh, Cap Mesh or Isosurface render mode, materials can be applied to it and they could contain textures for colors or opacity of the surface or the volume of the Simulator mesh.
- The Particle Shader can be colored with a texture and also textures can be used for mapping the reflections or environment of bubbles.
- The fire/smoke volumes and the meshes that Phoenix produces can be displaced by Phoenix using a texture. The difference between Phoenix displacement of meshes and using V-Ray Displacement is that Phoenix shows the displaced mesh in the viewport.
- All grid channels and particles that Phoenix Sources emit can be mapped with a texture to create more diverse and interesting simulation.
- Voxel Tuner and Particle Tuner expressions can depend on textures.
- The Mapper helper reads values from textures and changes the simulation data.
However, if you simply map the smoke, fire or liquid colors or opacity with a texture, by default the texture will stay static in space and will not move with the fluid and follow it. The texture can be animated to change throughout the timeline and Phenix will read this animation, but still, if you need the texture to move and follow the fluid precisely, you need some extra steps to set up a TexUVW simulation, which we will describe below.
Also, 3D textures get mapped over the volume automatically, but 2D textures usually expect to be mapped over a mesh, so mapping them over the fire/smoke requires some extra steps.
In this page we will go over everything you need to know about texture mapping in Phoenix.
Maya texture mapping specifics
In Maya, 3D textures will map over the Simulator automatically, but 2D textures need to be connected to the Simulator through a Maya Projection node in Perspective mode. While creating the texture, right-click over the Menu item in the Create panel and choose "Create as projection". Then select the projection node, press on the Interactive placement button and adjust your placement node:
Otherwise, Maya will look for UVs on the mesh and map the texture over them. However, the fire/smoke in the Simulator box don't have UVW coordinates by default, so if you plug a 2D texture without a Projection, it would probably not render correctly - it would be too squashed or too spread out, to the extent that it would probably even render just using one color over the entire simulator. Connecting without a Projection is useful for Phoenix together with Phoenix's TexUVW simulations.
Also, please note that when you need to use a texture as a mask, and not as a source of RGB colors, you need to enable the Alpha Is Luminance option of the texture - this is needed in Sources, Tuners, and mapping the opacity of Fire and smoke.
Phoenix TexUVW
When you want your texture to move together with the fire/smoke or liquid, you need to simulate with Phoenix's Texture UVW.
For this, you need to:
- Enable Grid Texture UVW in the Output rollout of the Simulator.
- Enable Texture UVW in the Dynamics rollout of the Simulator.
- If you want the simulation to inherit the UVW coordinates for a texture applied over an emitter, e.g. for melting a textured geometry, you also need to enable TexUVW from the Fire Source or the Liquid Source and choose the appropriate mapping options there.
Then you can run the simulation and it would generate the needed UVW coordinates and carry them around with the fluid.
Once this is done, you can adjust the rendering settings of the texture you use without the need to simulate again, and once the simulation has UVW coordinates, you will be able to use 2D textures without the need for a Projection node finally.
For example, if you want to simulate colored mixing liquid or particles, one way would be to simulate with Grid RGB or Particle RGB on and then render this out, but if you decide you need to change any color, you would need to simulate all over again, or the alternative would be to simulate using TexUVW and then map a colored texture and adjust the texture or change colors without the need to run the simulation again.
Example uses of TexUVW would be:
- Increasing the detail of Fire/Smoke simulations at render time by adding displacement which moves along with the fluid.
- Increasing the detail of Fire/Smoke simulations at render time by modulating the opacity of the smoke, the smoke color, or the fire color and intensity with noise maps which move along with the fluid.
- Re-coloring of Fire/Smoke or Liquid simulations at render time, after the simulation is complete.
- Transporting images or texture color details with Fire/Smoke or Liquid simulations.
Technically, the Texture UVW channel values represent the UVW coordinates of each Cell in the Simulator, with a range of [ 0 - 1 ]. The channel is initialized when a simulation is started in one of two ways:
- By inheriting the UVs from the source geometry, when Inherit TexUVW from Geom is enabled on the Phoenix Source. The UVW channel will be based on the UVs of the emission geometry. This option is useful when simulating melting objects – textures assigned to the Volumetric Shader (for Fire/Smoke simulations) or the material (for Liquid simulations) will be carried by the simulation.
- When inheriting of UVs is disabled on the Source - depending on the position of the emitting object in the Simulator's bounding box. If Grid rollout → Adaptive Grid is enabled, the Texture UVW coordinates in expanded voxels beyond the initial grid will be greater than one if the grid is expanding in a positive direction (+X, +Y, +Z), and less than zero otherwise. This means that textures assigned to simulations using the Adaptive Grid feature will be automatically tiled/repeated as many times as the final size of the Simulator is larger than its initial size.
Also note that switching to Maya Mesh mode will create a new TexUVW UV set, if you have enabled the TexUVW channel in the Output rollout before running your simulation. In order to use the new UV set you need to select the Maya Mesh and link the TexUVW UV set from the Maya Relationship editor. Switching away from the Maya Mesh mode will reset the UV sets, so if later you decide to switch back to Maya Mesh mode you will need to relink the UV set again.