---
title: "Alembic Support"
canonical: "https://documentation.chaos.com/space/VMAX/113575413/Alembic%20Support"
format: markdown
---
This page provides information on Alembic Support for V-Ray Proxy Objects.

## <span style="color: #000000">**Overview**</span>

---

<span style="color: #000000">V-Ray supports Alembic files directly through the</span> [VRayProxy](https://docs-chaos.atlassian.net/wiki/spaces/VMAX/pages/113575423) <span style="color: #000000">object. A number of UI options are specifically related to Alembic files.</span>

  
<span style="color: #000000"> </span>

## <span style="color: #000000"> </span><span style="color: #000000">**Supported Features**</span>

---

### Geometry types

<span style="color: #000000">The following geometry types are supported:</span>

- <span style="color: #000000">Polygonal meshes (including subdivision surfaces)</span>
- <span style="color: #000000">Spline curves</span>
- <span style="color: #000000">Particles</span>


> ✅ All geometry types support motion blur. If the mesh/hair topology or particle count are not changing, then precise motion blur is computed. Otherwise, velocity channel must be provided in the file to describe the motion blur.

 

### Mesh Objects

- Velocity channel - It is <span style="color: #000000">always computed for animations with homogeneous topology. Otherwise, it is read from the standard alembic velocity property in units/second. Alternatively, it is in units/frame in a geometry property specified in "velocity_color_set" GeomMeshFile plugin parameter, or in geometry property named “v”, “velocities”, “velocity”, “Velocity”; </span>
- <span style="color: #000000">Material IDs - Provided by per face uin32 property named “.materialids” or by alembic face sets. Each face set name which ends with a non-negative integer assigns this integer as material id. Otherwise, it receives consecutive material ids;</span>
- <span style="color: #000000">Normals - If “compute_normals” is on, then normals are always computed with the given “smooth_angle” parameter. Otherwise they are read from the alembic default property for normals. If they are not written then geometric normals are used;</span>
- <span style="color: #000000">UV channels - All vector2 float/double properties in ArbGeomParams that start with “uv” are sorted and listed as UV sets. The default UV set comes first with name “uv”;</span>
- <span style="color: #000000">Color channels - All vector3, color3 and color4 properties are represented as three component color channels. All other scalar geometry properties are packed into three component colors.</span>


### Hair Objects

- <span style="color: #000000">Velocity channel - It is always computed for animations with homogeneous topology. Otherwise, it is read from the standard alembic velocity property in units/second; </span>
- <span style="color: #000000">Hair width - Either written as standard alembic property expressed as diameter or written as radius in “.radius” property;</span>
- <span style="color: #000000">UV channels - All vector2 float/double properties in ArbGeomParams that start with “uv” are sorted and listed as UV sets. The default UV set comes first with name “uv”. UVs can be per vertex of per strand. </span>

 

### Particle Objects

- <span style="color: #000000">Velocity channel - It is always computed for animations with homogeneous topology. Otherwise, it is read from the standard alembic velocity property in units/second;</span>
- <span style="color: #000000">Particle width - It is either written as standard alembic property expressed as diameter or written as radius in “.radius” property.</span>

 

## <span style="color: #000000">**Creating Alembic Files**</span>

---

Alembic export is supported in 3ds Max (in version 2015 and later) and can be executed using the 3ds Max Export menu.   
However, the alembic exporter is better integrated in other platforms like Maya and exported files may differ between platforms.


## <span style="color: #000000">**Converting Alembic Files to .vrmesh Files**</span><span style="color: #000000"> </span>

---

<span style="color: #000000">While V-Ray can work with Alembic files directly, it is also possible to convert them to .vrmesh files using the</span> [ply2vrmesh](https://docs-chaos.atlassian.net/wiki/spaces/VMAX/pages/113586524) <span style="color: #000000">tool. Vrmesh files are more limited than Alembic files (i.e. they do not store the objects in a hierarchy and do not support sub-frame animation), but they have some performance-related advantages:</span>

- <span style="color: #000000">.vrmesh files are generally faster to work with.</span>
- <span style="color: #000000">ply2vrmesh can preprocess and subdivide geometry, hair and particles from Alembic files into smaller chunks which are more convenient for dynamic loading during rendering. This allows the efficient rendering of many millions of triangles, hair strands and particles.</span>


## **UV Channel Priority**

---

<span style="color: #000000">Since alembic UV Channel names are customizable (depending on the exporting host platform), VRayProxy offers a way to prioritize the channels by indices. The </span><span style="color: #000000">**Reorder channels by indices**</span><span style="color: #000000"> option uses the following rules to order the alembic UV channels: </span>

- Top priority: **uv** – The native alembic UV channel is always on top
- High priority: **Max Map Channel-prefixed** channels are prioritized over all other numbered channels, because the prefix is known to represent UV/UVW channels, when exported from 3ds Max
- Medium priority: **uv-prefixed** channels are prioritized over other numbered channels, but have lesser priority than **Max Map Channel-prefixed**
- Low priority:  any **numbered channel with two components**, like (u,v) is prioritized over all three-component numbered or non-numbered channels (except those matching the higher priority rules)
- Lowest priority: any **numbered channel with three components**, like (u,v,w) gets prioritized over all non-numbered channels
- All lower priority conflicting numbered channels are placed at the empty channel slots or after all the highly prioritized channels. Their order corresponds to their numbering
- Non-numbered channels fall out of prioritization and are always placed at the remaining empty channel slots or after all the prioritized channels. They are sorted the same way they are stored in the alembic file


## **Notes**

---

- Alembic instances work with the **Random by InstanceID** option of the[ VRayMultiSubTex](https://docs-chaos.atlassian.net/wiki/spaces/VMAX/pages/113587256) texture.

  
<span style="color: #000000"> </span>

## **Links** 

---

Official Alembic file format home page: [http://www.alembic.io/](http://www.alembic.io/)