---
title: "Houdini to 3ds Max Alembic Workflow"
canonical: "https://documentation.chaos.com/space/VMAX/113586874/Houdini%20to%203ds%20Max%20Alembic%20Workflow"
format: markdown
---
This page provides a tutorial for exporting Alembic files from Houdini and rendering them in 3ds Max using V-Ray.


## **Overview**

---



## **General Information and Considerations**

---

Detailed information for supported Alembic features can be found at the [Alembic Support page for V-Ray for 3ds Max](https://docs-chaos.atlassian.net/wiki/spaces/VMAX/pages/113575413).


### **Custom Attributes**> Macro (anchor)



---

All **custom point attributes** are preserved and can be accessed through the **Vertex Color Texture **<sup>**[Houdini to 3ds Max Alembic Workflow#1](https://docs-chaos.atlassian.net/wiki/spaces/VMAX/pages/113586874/Houdini+to+3ds+Max+Alembic+Workflow#Houdinito3dsMaxAlembicWorkflow-1)**</sup>. You need to feed it to a material, apply that material to a V-Ray Proxy and press the **Update button** on the texture to refresh the **Channel Name** drop-down menu on the **Vertex Color** texture.

> Macro (ui-text-box)
> 
> <span style="color: #000000">A couple of remarks regarding custom attributes:</span>
> 
> 1. <span style="color: #000000">If you use a Wrangle node to create a </span><span style="color: #000000">**v@my_vector = rand(@ptnum);**</span><span style="color: #000000"> attribute, Houdini will generate a </span><span style="color: #000000">***3flt***</span><span style="color: #000000"> class attribute. This will work just fine inside Houdini but if you attempt to export the point cloud as is to the Alembic file, V-Ray won't be able to use this attribute at render time. As per the Alembic format specifications, V-Ray only supports float, vector2, vector3, color3 and color4 attributes. Therefore, when you middle-mouse-button click your Houdini node, my_vector should read as </span><span style="color: #000000">**my_vector **</span><span style="color: #000000">***3flt (Vec)***</span><span style="color: #000000"> or </span><span style="color: #000000">**my_vector **</span><span style="color: #000000">***3flt (Clr)***</span><span style="color: #000000">. Simply put, </span><span style="color: #000000">**my_vector **</span><span style="color: #000000">***3flt***</span><span style="color: #000000"> will </span><span style="color: #000000">**not**</span><span style="color: #000000"> work. You can force Houdini to give you a </span><span style="color: #000000">*Vec*</span><span style="color: #000000"> or </span><span style="color: #000000">*Clr*</span><span style="color: #000000"> class attribute by creating your attribute using an Attribute Create node and then modifying it in the Wrangle node. </span>
> 2. <span style="color: #000000">Attempting to feed a custom float attribute to a vector input of the V-Ray material directly from the Vertex Color to the material will produce incorrect renders. Especially if you have </span><span style="color: #000000">*many*</span><span style="color: #000000"> attributes stored in the file. Every 3 Float attributes are represented as a single vector/color attribute - </span><span style="color: #000000">**@my_first_float , @my_second_float and @my_third_float will be loaded as the components of a single vector attribute**</span><span style="color: #000000">. You need to make sure to </span><span style="color: #000000">**specify**</span><span style="color: #000000"> the correct </span><span style="color: #000000">**sub-channel**</span><span style="color: #000000"> on the </span><span style="color: #000000">**Vertex Color**</span><span style="color: #000000"> texture. </span>


### **Motion blur / Velocity**

---


In the case of a **Single Alembic File** holding **multiple Frames of data** loaded through a V-Ray Proxy:

1. **Motion blur** is calculated **automatically** by V-Ray **based on the transformations and deformations** of the geometry stored inside the Alembic file, **provided that the point count of the geometry does not change**!
2. If the **point count is changing**, V-Ray is **NOT able** to determine the velocity vectors automatically. Thus, you get no motion blur by default.
3. To get motion blur in this situation, **you need the v attribute present in the Alembic file**. V-Ray reads the **v** attribute and generates the motion blur effect based on that.
4. **The v attribute is NOT used if the point count does NOT change**. In other words, **v** is ignored if the topology does not change.

 In the case of **Multiple Alembic Files** holding **One Frame of data each**, loaded through a **V-Ray Proxy**: (i.e. $HIP/**file_name.$F4.abc** imported as **file_name.####.abc** inside a Proxy)

1. **Motion blur can NOT be calculated automatically** by V-Ray **regardless** of the topology change. When loading an Alembic file for rendering, V-Ray does not look at (Frame - 1) or (Frame + 1) to determine the transformation/deformation of your mesh.
2. Because of (1) , **you have to provide a v attribute** when exporting your files. The easiest way to do that is to use a **Trail SOP** in Houdini, set to **Compute Velocity** mode.


> Macro (ui-text-box)
> 
> The motion blur information for single versus per-frame Alembic files holds true for all Chapters of this tutorial.

> Macro (div)
> 
> ---
> 
> 
> > Macro (legacy-content)


## **Footnotes**

---

> Macro (anchor)

 [1](https://docs-chaos.atlassian.net/wiki/spaces/VMAX/pages/113586874/Houdini+to+3ds+Max+Alembic+Workflow#Houdinito3dsMaxAlembicWorkflow-1.1) – The use of Vertex Color texture can be changed with either [VRayUserColor ](https://docs-chaos.atlassian.net/wiki/spaces/VMAX/pages/113575349)or [VRayUserScalar](https://docs-chaos.atlassian.net/wiki/spaces/VMAX/pages/113575347) textures when reading color sets and attributes of an alembic.