PopcornFX v2.18

Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors
  1. Home
  2. Docs
  3. PopcornFX v2.18
  4. Node Reference
  5. Builtin nodes
  6. Renderers
  7. Mesh

Mesh

Overview

mesh renderer node
mesh renderer node

 

This renderer draws the particles as meshes
This renderer is supported in all of our public engine integrations.

 

Meshes are displayed onscreen based on an input position, scale, color and additional per particle or static properties (see mesh renderer node reference).
Note: PopcornFX v2.2 introduces mesh atlases, an efficient method to render keyframe-based animated meshes, or to randomly pick different meshes per-particle (ex: debris).
Meshes can be oriented using orientation helpers templates.

mesh renderer

Default Materials:

  • Default_Mesh: Regular opaque mesh, can use alpha-testing for cutouts
  • Opaque_Mesh: Transparent mesh (additive, alpha-blended, or premultiplied-alpha)

 

Material: Default_Mesh

PropertyTypeDescription
DoubleSidedboolIf disabled, enables back face culling.
LitboolEnables the Lit rendering feature:
Lights the particle with the scene lights.
LegacyLitboolEnables the Legacy Lit rendering feature:
Lights the particle with the scene lights. (legacy shader)
AtlasboolEnables the Atlas rendering feature:
Allows to use a sprite-sheet as the diffuse texture, and control which subset of the texture is used using a per-particle TextureID input.
MeshAtlasboolEnables the Mesh Atlas rendering feature:
Allows to use an ID to choose which sub-mesh of the specified mesh asset should be displayed.
AlphaRemapboolEnables the Alpha Remap rendering feature:
Allows remapping the alpha using a 2D grayscale texture looked up with the particle alpha along its U coordinate, and a custom per-particle Cursor along its V coordinate.
EmissiveboolEnables the Emissive rendering feature:
Exposes an emissive map to use as a purely emissive color in addition to the regular diffuse component.
TransformUVsboolEnables the Transform UVs rendering feature:
Exposes more control on the UV coordinates of the mesh corners.
EmissiveRampboolEnables the Emissive Ramp rendering feature:
Uses the red channel of the emissive texture (can be grayscale) to lookup a 1D color ramp to get the final RGB emissive color.
UseVertexColorsboolWhen enabled, the mesh vertex colors will be multiplied with the diffuse component.
MeshLODboolEnables the Mesh LOD rendering feature:
If the mesh has builtin LODs, allows to control per-particle which LOD level gets drawn.
TypeenumOpaque mode

  • Solid: Fully opaque, ignores the texture & color alpha channel
  • Masked: When the final pixel’s alpha value is lower than MaskThreshold, the pixel is not drawn
MaskThresholdfloatOpacity mask threshold value.
If the alpha value is below this value, the pixel is discarded.
+ all common renderer properties
Input pins
Positionfloat3Mesh position in world coordinates
Scalefloat3Mesh scale
OrientationorientationMesh orientation
MeshStringMesh resource
DiffuseMapStringTexture map used for the diffuse lighting component.
Colorfloat4Diffuse color, multiplied with the diffuse map color.

 

 

Material: Transparent_Mesh

PropertyTypeDescription
DoubleSidedboolIf disabled, enables back face culling.
SoftParticlesboolEnables the Soft Particles rendering feature:
Particles fade away when becoming too close to solid scene geometry, preventing a hard clipping effect where they intersect the scene.
AlphaRemapboolEnables the Alpha Remap rendering feature:
Allows remapping the alpha using a 2D grayscale texture looked up with the particle alpha along its U coordinate, and a custom per-particle Cursor along its V coordinate.
AtlasboolEnables the Atlas rendering feature:
Allows to use a sprite-sheet as the diffuse texture, and control which subset of the texture is used using a per-particle TextureID input.
MeshAtlasboolEnables the MeshAtlas rendering feature:
Allows to use an ID to choose which sub-mesh of the specified mesh asset should be displayed.
EmissiveboolEnables the Emissive rendering feature:
Exposes an emissive map to use as a purely emissive color in addition to the regular diffuse component.
DiffuseRampboolEnables the Diffuse Ramp rendering feature:
Uses the red channel of the diffuse texture (can be grayscale) to lookup a 1D color ramp to get the final RGB diffuse color.
TransformUVsboolEnables the Transform UVs rendering feature:
Exposes more control on the UV coordinates of the mesh corners.
EmissiveRampboolEnables the Emissive Ramp rendering feature:
Uses the red channel of the emissive texture (can be grayscale) to lookup a 1D color ramp to get the final RGB emissive color.
UseVertexColorsboolWhen enabled, the mesh vertex colors will be multiplied with the diffuse component.
MeshLODboolEnables the Mesh LOD rendering feature:
If the mesh has builtin LODs, allows to control per-particle which LOD level gets drawn.
TypeenumTransparent blending mode.

  • Additive
  • AdditiveNoAlpha
  • AlphaBlend
  • PremultipliedAlpha
SortModeenumAllows to specify a custom sorting key.

  • CameraDistance: Sorts from back to front based on the particle distance to the camera (default)
  • ByCustomValue: When selected, uses the per-particle SortKey input as the value to sort based on, from largest first to smallest last, like if it was a distance value.
GlobalSortOverrideintGlobal sort order of the draw calls.
Different values for 2 renderers will break batching and separate their drawcall.
Smaller values are drawn first (visually behind higher values). The value can be negative.
CameraSortOffsetfloatUsed as a depth bias to allow offseting the draw call bbox along the camera axis (in world units).
Different values for 2 renderers will break batching and separate their drawcall.
+ all common renderer properties
Input pins
Positionfloat3Mesh position in world coordinates
Scalefloat3Mesh scale
OrientationorientationMesh orientation
MeshStringMesh resource
DiffuseMapStringTexture map used for the diffuse lighting component.
Colorfloat4Diffuse color, multiplied with the diffuse map color.

 

Lit

Lights the particle with the scene lights.

PropertyTypeDescription
CastShadowsboolCan cast shadows
RoughnessfloatMaterial roughness (PBR). A roughness of 0.0 represents a mirror, a roughness of 1.0 represents a purely diffuse surface.
MetalnessfloatMaterial metalness (PBR). A metalness of 0.0 represents a pure nonmetal, a metalness of 1.0 represents a pure metal.
Affects the color of the reflections.
Typeenum
  • Solid
  • Transparent
Input pins
NormalMapStringTexture map representing tangent-space normals to be used for lighting.
RoughMetalMapStringRoughness (R) and Metalness (G) packed in an RGBA texture
LitMaskMapString

 

LegacyLit

Lights the particle with the scene lights. (legacy shader)

PropertyTypeDescription
NormalWrapFactorfloatUsed to fake sub-surface scattering on the particles.
Remaps the N dot L of the lighting equation from [-1,1] to [-1+factor,1]
LightExponentfloatExponentiation of the lighting term
LightScalefloat3RGB Multiplier applied to the incoming light
AmbientLightfloat3Additional uniform light
CastShadowsboolCan cast shadows (not implemented in editor)
Input pins
NormalMapStringTexture map representing tangent-space normals to be used for lighting.
SpecularMapStringSource map used in specular lighting computation

 

SoftParticles

Particles fade away when becoming too close to solid scene geometry, preventing a hard clipping effect where they intersect the scene.

PropertyTypeDescription
SoftnessDistancefloatFade distance of particles in world units

 

AlphaRemap

Allows remapping the alpha using a 2D grayscale texture looked up with the particle alpha along its U coordinate, and a custom per-particle Cursor along its V coordinate.

PropertyTypeDescription
Input pins
AlphaMapStringTexture map used as the alpha remap lookup.
The X lookup coordinate is the diffuse texture alpha.
The Y lookup coordinate is the Cursor value.
CursorfloatY coordinate used to sample the AlphaMap texture.

 

TransformUVs

Exposes more control on the UV coordinates of the mesh corners.

PropertyTypeDescription
RGBOnlyboolWhen enabled, does not transform the UVs used to sample the alpha channel.
Input pins
UVOffsetfloat2UV offset
UVRotatefloat2UV rotation angle
UVScalefloat2UV scale

 

Atlas

Allows to use a sprite-sheet as the diffuse texture, and control which subset of the texture is used using a per-particle TextureID input.

PropertyTypeDescription
Sourceenum
  • External: Atlas tiles are defined in an external .pkat atlas file. Their topology can be arbitrary.
  • Procedural: The number of tiles along the U and V axes are specified by the SubDiv property.
SubDivint2Subdivision count
BlendingenumFrame blending type

  • None: No interpolation between frames
  • Linear: Linear blending
  • MotionVectors: Use the MotionVectorsMap texture as the interpolation vectors to blend between frames
DistortionStrengthfloatMultiplier over the uv distortion
Distortion strength to apply for Houdini exported maps is: -(1.0 / FPS / ColRow).
Input pins
DefinitionStringAtlas definition (.pkat)
MotionVectorsMapStringMotion vectors texture, used to blend between frames when Blending is set to MotionVectors
TextureIDfloatIndex of the sub-rect to use inside the atlas

 

MeshAtlas

Allows to use an ID to choose which sub-mesh of the specified mesh asset should be displayed.

PropertyTypeDescription
Input pins
MeshIDfloatIndex of the sub-mesh to draw when the mesh resource contains multiple sub-meshes.

 

DiffuseRamp

Uses the red channel of the diffuse texture (can be grayscale) to lookup a 1D color ramp to get the final RGB diffuse color.

PropertyTypeDescription
Input pins
RampMapString1D texture map used tor for diffuse color remap.
Sampled with the Red channel of the DiffuseMap texture.

 

Emissive

Exposes an emissive map to use as a purely emissive color in addition to the regular diffuse component.

PropertyTypeDescription
Input pins
EmissiveMapStringTexture map used for the emissive lighting component.
EmissiveColorfloat3Emissive color, multiplied with the emissive texture

 

EmissiveRamp

Uses the red channel of the emissive texture (can be grayscale) to lookup a 1D color ramp to get the final RGB emissive color.

PropertyTypeDescription
Input pins
EmissiveRampString1D texture map used tor for emissive color remap.
Sampled with the Red channel of the EmissiveMap texture.

 

MeshLOD

If the mesh has builtin LODs, allows to control per-particle which LOD level gets drawn.

PropertyTypeDescription
Input pins
LODintIndex of the level of detail to render.

 

 

Was this article helpful to you? Yes No

How can we help?