Square Enix © Goodbye Kansas

Table of Contents

This page describes the V-Ray Proxy attributes in Maya using the old V-Ray proxy node.

 

Overview


VRayProxy loads geometry from file on disk at render time only. The geometry is not present in the scene, and does not use up any resources, except for the viewport preview. This allows rendering scenes with many millions of faces, more than Maya itself can handle.

The V-Ray Proxy in Maya is a VRayProxy node that loads the geometry from a file on disk. The node loads alembic (.abc) and V-Ray Proxy (.vrmesh) files. Any mesh can be exported to an .abc or .vrmesh file from Maya and then loaded as a proxy.

Meshes are exported to a special .vrmesh file format. This file contains all geometric information for a mesh such as vertices and face topology as well as texture channels, face material IDs, smoothing groups, and normals. In short, everything that is needed to render the mesh is included in the file. In addition, the mesh is preprocessed and subdivided into chunks for easier access. The file also contains a simplified version of the mesh used for preview purposes in the viewports. More information about the .vrmesh file format is available in the V-Ray SDK documentation that comes with the V-Ray for Maya installation.

V-Ray 5 introduces a new and improved VRayProxy node that's simpler, faster and offers new and powerful features.

Scenes using the old V-Ray Proxy can be easily converted to the new VRayProxy with the built-int converter found in the V-Ray menu > Tools > Convert to New V-Ray Proxy Node.

After loading the file, the V-Ray Proxy attributes are accessible in the Attribute Editor.

To load files with V-Ray Proxy, see the Import V-Ray Proxy page.

To export meshes to V-Ray Proxy, see the Export Mesh to V-Ray Proxy page.

 

Basic Parameters


To load files with V-Ray Proxy, see the Import V-Ray Proxy page. 

File name – The source .vrmesh file. Animated proxies can be stored either in one single file, or as a sequence of files with one file per frame. In the latter case, you can use the string <frame0n> in the file name to have it replaced with the current frame number at render time, where n is an integer number specifying the number of digits. For example, if you enter my_proxy_<frame04>.vrmesh as the file name, this will be expanded to my_proxy_0000.vrmeshfor frame 0, my_proxy_0001.vrmesh for frame 1, and so on. If you use a sequence of files, the Playback type option is ignored, as V-Ray doesn't know how many frames are in the animation. The Playback speed parameter may also work unreliably with sequences of files.

The old formatting specifier %0nd is no longer supported since version 3.0rc (night build revision 24745), because we had to mark the filename attribute with the flag usedAsFilename and Maya doesn't allow the user to enter the '%' character as part of the file name for such attributes. Old scenes will be automatically upgraded to the new formatting. If you use the 'fileName' attribute in scripts it is better to use the newer 'fileName2'.

Placeholder (don't read proxy info) – The proxy is displayed as a simple placeholder box with fixed size. 

Geometry to Load – Select the viewport preview mode from the drop down menu. This does not affect the final render. This parameter is Keyable and can be used as a driven key as Geom Type in the Channel Box.

Bounding box – The mesh is represented as a box scaled to fit the object in viewport.
Preview
 – The mesh is represented as a low poly proxy preview as defined in the .vrmesh file. 
Maya Mesh
 – The original mesh is previewed in the viewport. Note that any edits made to this mesh do not appear in the render.
GPU Mesh
 – The original mesh is loaded into the viewport using the GPU, which gives faster viewport performance and less memory consumption. Note that any edits made to this mesh do not appear in the render.

Cache geometry – When enabled the preview geometry for each frame of the animation is stored in the memory once it has has been previewed. This allows to speed up the playback of animations.

Viewport proxy file – Allows selection of an .abc or .vrmesh file to be used as a preview in the viewports.

Flip axis – Switches the proxy's vertical axis between Y and Z. It allows aligning vertical axis of the proxy with the vertical axis in the scene in cases where the proxy was not exported from Maya or when loading Alembic files.

Particle render mode – Controls how the particles in the proxy are rendered in the viewports. The available options are Point and Sphere.

Tessellate hair – When enabled, tessellates hair strands for files containing hair. 

Edge length (in px) – Specifies hair edge length in pixels for smoothing hair strands.

 


Alembic Layers


This rollout becomes active only if the loaded proxy file is in .abc file format.

The Alembic layers feature allows modification of a selected alembic proxy by adding layer files on top of it. Each layer transforms the proxy with a different set of properties. These transformations include adding properties to a shape (e.g. UV mapping of an object that has no UVs), overriding properties, adding new objects, pruning objects or properties, replacing an object's (or properties') hierarchy with a new one, etc.

You can combine different cache files. Whenever the same object is found in a layer, all of its properties are considered.

Add New Item – Adds a new layer to the stack. 

Enabled – Each layer's effect can be enabled or disabled by the checkbox. 

Browse – Allows you to browse and open an .abc file. 

Delete – Removes the layer from the stack. 

 


Animation Parameters


Playback speed – A multiplier for the speed of the animation. Putting negative numbers here makes the animation play backwards. This option may not work very well for sequences of .vrmesh files. 

Start offset – Offsets the beginning of the animation by the given number of frames. You can use positive as well as negative values here. 

Playback type – Specifies a playback mode. This option is ignored if you use a sequence of separate .vrmesh files.

Loop – The animation is looped by skipping to the first frame once it has finished.
Play once – The animation is played once.
Ping-pong – The animation is looped by playing it backwards once the last frame has been reached and then playing it forward again when the first frame is reached.
Still – The animation is not played. Instead, just the Start offset frame is shown. 

Sequence override – Allows you to manually override the start frame and the animation length to read (in frames) for animations stored in sequences of .vrmesh files (where each frame of the animation is stored in a separate proxy file). Importing proxy sequences requires a special format that specifies how to match the frame padding in the file name. See the File name section of the Import V-Ray Proxy page for more details.

Sequence start – Specifies the first frame of the animation.

Sequence length – Specifies the length of the animation to be played.

 

Restore the Mesh


Reassign shaders – When enabled, all shaders in the proxy are automatically assigned to the respective geometry objects.

Create a mesh from this proxy – Clicking this button creates a Maya Mesh from the geometry from file. Note that some of the original information might be lost, so it is better to have a copy of the mesh saved as a Maya file.

 

Visibility Lists


These options control the visibility of a proxy's components when more than one mesh has been exported. The visibility can be controlled either by object names or by object IDs.

List type – Specifies whether the list includes or excludes objects.

Exclude – The selected object in the list is invisible. 
Include – Only the selected object in the list is visible.

Object name list – A list of all the objects in the proxy file. 

Object id list – A list of all the object IDs in the proxy file.

 You can hide/display multiple objects from the Object Name List and the Object ID List via the context menu, available when you right-click on the lists.

 

 

Alembic Proxy Parameters


Starting object – Allows to specify a starting path in the Alembic file; only objects below that path are rendered. The path may start with ABC/ or it may be omitted.

Use full names – When this option is enabled the full path to each geometry set in the alembic file is displayed in the Proxy mesh and Proxy hair visibility lists.

Recompute bounding box – Enabling this check box forces V-Ray to recompute the bounding box for the geometry before rendering. When this is off, V-Ray uses the bounding box specified in the Alembic file. However, sometimes these bounding boxes are not correct, and in that case the rendering is also incorrect. To avoid such issues, enable this option. Note that this option might slow down the rendering. 

Compute normals – This option allows you to force smooth normals on the geometry in case they were not originally smoothed.

Smooth angle – When the Compute normals option is enabled this specifies the angle below which normals are smoothed.

Flip normals – Reverses the direction of the normals.

Preview faces – Allows you specify how many faces are going to be used to show a preview of the proxy in the view port.

Preview hairs – Allows you specify how many splines are going to be used to show a preview of the proxy hair in the view port.

Hair width multiplier – This multiplier allows you to control the hair width during rendering.

Preview particles – Allows you to specify how many particles to show in the viewports.

Particle width multiplier – Controls the size of the particles when rendering.

Velocity multiplier – Controls the length of the motion blur when rendering.

Subdivide all meshes – Subdivide the meshes before rendering using the OpenSubdiv library.

Subdivision level – The number of subdivision levels.

Subdivide UVs – Allows you to choose whether or not the UVs of the object are subdivided at the borders.

Preserve geometry borders – Specifies whether geometry borders are preserved or not.

Preserve map borders – Specifies how to handle subdivisions of UV coordinates at UV seams when Subdivide UVs is enabled. The possible values are:

None – UVs are always subdivided regardless of whether they are on a UV seam or not.
Internal – Only preserve UVs if they are on an internal UV seam.
All – Does not subdivide UVs on UV seams.

 

 

Point Cloud


Use if present – Enables the usage of point cloud data if available.

Level multiplier – Determines the way point cloud levels are loaded. A value of 1.0 means that the level to load is determined exactly by the distance from the camera to the object. A value smaller than 1.0 means that the level is of greater detail than required by distance. Values greater than 1.0 mean that the resolution of the level is smaller than the one determined by distance. A value of 0.0 means that no point cloud level is loaded and the original mesh is rendered instead.

 

 

Material assignment overrides


When loading a proxy file in a VRayProxy node, materials stored in .vrscene files can be assigned onto different objects from the proxy file. This requires a pair of a .vrscene file containing the materials and an XML file containing the "rules" for applying them to the objects in the proxy file.

Material assignments file – Specifies the location of an .xml file that contains the "rules" for material assignment. For alembic files, the "rules" are based on object paths, for .vrmesh files, they are based on material names. The wildcards * are allowed in the .xml file.

 

 

Alembic Sample XML script
<materialAssignmentRules>
	<patternRule>
		<pattern>pCube*</pattern>
		<material>VRayMtl1@material</material>
	</patternRule>
</materialAssignmentRules>

The sample XML assigns the VRayMtl material to all alembic objects matching the pattern pCube*, i.e. all objects whose name starts with pCube.


Proxy Sample XML Script
 <materialAssignmentRules>
	<patternRule>
		<pattern>VRayMtl1</pattern>
		<material>VRayMtl1@material</material>
	</patternRule>
</materialAssignmentRules>

The sample XML assigns the VRayMtl1 material to all vrmesh objects matching VRayMtl1 pattern, i.e. all objects whose material name is VRayMtl1.

 

For this feature to work, you need to specify the path to the .vrscene containing the materials (procedural textures or paths to bitmaps). This only works with post-translate python script. The following example script specifies the path to the .vrscene file and should be copied into Render Settings > Common > MEL / Python callbacks > Post translate python script.


Post-translate Python script
from vray.utils import * 

appendSceneContent("C:/mtlAssignments/materials.vrscene")

Donwload a sample scene file from here

You will need to set the correct path to the xml in the proxy node and then set the correct path to the .vrscene file from Render Settings > Common > MEL / Python callbacks > Post translate python script. 

Note that the geometry, the settings and the "node" plugins from the vrscene are deleted, because using appendSceneContent will add all the content from the vrscene file, including the geometry, which is not needed in this case.

 

 The material assignment overrides is still a highly experimental feature and can change at any point!


VRayMesh File Info


This rollout provides information on the loaded VRayMesh including:

  • Path to the loaded file
  • Animation contained in the proxy (when animation is in one file, not as a sequence of files)
  • Number of preview faces
  • Bounding box information
  • UV sets and their names
  • Color sets and their names
  • Material list

 

This can be useful in several situations. For example, when using the VRayUserColor node to read UV sets and color sets, the you can obtain the set names through this rollout. Additionally, when using animation overrides, you can easily tell what frame of the proxy animation is rendered at a given timeline frame.

 

 

Notes


  • V-Ray 5.0 for Maya 2018 and above supports instancing of .vrmesh files via the Maya Instancers found in FX menu set > nParticles > Instancer.
  • Maya 2022 introduced a bug where using the old proxy node causes a crash. This is fixed with Maya 2022.3, so it's recommended to update to this version.