Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


Center

Image Added

Arnold visibility attributes found under the bifShape node


Note

Image Removed

Arnold Visibility attributes found under the bifShape node
  • The native Bifrost volume does not currently work with GPU. However, volume data exported as VDB should work.
  • The custom property name can be anything as long as you pass the same name to the aiUserDataColor node in the material network being used. Using “my_color” is fine.
  • The color_jittershader does not currently work with Bifrost.
Center
  • The random color used here does not currently display in the viewport and will only show when rendering.


Info

When a shader is overridden, e.g. a shader is applied to the bifShape or bifrostGraphShape in Maya, it gets applied to all of the Arnold shapes generated by arnold_bifrost. However, if the shader to be applied is not a volume shader, it should not apply it to volumes so that in-graph volume shaders still get applied (or the default generic volume shader that arnold_bifrost generates gets applied). If you create your own custom volume shader and assign it directly to the bifShape or bifrostGraphShape, arnold_bifrost will not recognize it. The solution, in that case, is to just apply the custom shader in-graph.


Bifrost Graph Editor

The following Arnold nodes are available in the Bifrost Graph Editor. Click on the link to go to the relevant Arnold attributes.

...

Note that when using Bifrost Graph Volumes, to export ass and kick you need to not expand procedurals.  In MtoA, this means in the .ass export options Expand Procedurals should be disabled.

User Data Support

Arnold-Bifrost will attempt to translate every Bifrost property to Arnold.  For built-in properties that correspond to a known Arnold built-in parameter, they will be translated as such and not as user data; however, all other properties encountered will be translated as user data so that they are made available to shaders and operators to use as they see fit.


The type and scope of user data in Arnold depends on the type of object being rendered, e.g. points only support constant and uniform user data, while polymesh supports constant, uniform, varying and indexed user data.  The following table shows which scopes are supported for which object types, and which types are supported overall:

Object Typeconstantuniformvaryingindexed
pointsYesYes  

curves (Bifrost strands)YesYesYes (per-segment, also auto-converted from per-control-point)Yes (requires index/range property)
polymesh (Bifrost mesh)YesYesYes 
instanceYes   


volume (Bifrost multiresolution tile tree)Yes   


implicit (Bifrost signed distance field)Yes   

 





The following are the types of Bifrost data supported, and their converted equivalent in Arnold.  Note that in some cases the data is truncated or loses precision to fit the Arnold type, such as double-to-float conversions.

Bifrost TypesArnold Component TypeArnold Type
boolboolAI_TYPE_BOOLEAN
signed char, signed short int, signed int, signed long intint32_tAI_TYPE_INT
unsigned charuint8_tAI_TYPE_BYTE
unsigned short int, unsigned int, unsigned long intuint32_tAI_TYPE_UINT
float, doublefloatAI_TYPE_FLOAT
stringAtStringAI_TYPE_STRING
char2, uchar2, short2, ushort2, int2, uint2, long2, ulong2, float2, double2floatAI_TYPE_VECTOR2 (AtVector2)
char3, uchar3, short3, ushort3, int3, uint3, long3, ulong3, float3, double3floatAI_TYPE_RGB (AtRGB)
char4, uchar4, short4, ushort4, int4, uint4, long4, ulong4, float4, double4floatAI_TYPE_RGBA (AtRGBA)
char3x3, uchar3x3, short3x3, ushort3x3, int3x3, uint3x3, long3x3, ulong3x3, float3x3, double3x3floatAI_TYPE_MATRIX (AtMatrix)
char4x4, uchar4x4, short4x4, ushort4x4, int4x4, uint4x4, long4x4, ulong4x4, float4x4, double4x4floatAI_TYPE_MATRIX

...

(AtMatrix)


Note
  • There are some Bifrost types not supported, such as the type2x2 or other non-square matrix variants.

...

  • Note also that only the types with a float

...

  •  component on the Arnold side can be used with varying or indexed user data.

...

  •  String, integer, or boolean data cannot be interpolated, so can only be used with constant or uniform user data.

...

  •  

Randomize Particle Color Workflow

Below is an example of how to randomize the color of Bifrost particles.

A scene file can be downloaded here.


Center

Image Added


Center

Image Added

random_value_array -> new set_geo_property (color). The color is a float3 or float4 property (RGB, RGBA).