This page provides information on V-Ray Proxy objects.
V-Ray Proxy allows you to import geometry from an external mesh, which only loads the full details at render time. The geometry is not present in the scene and does not take any resources. This allows the rendering of scenes with many millions of triangles; more than Modo itself can handle in its viewports.
|Item List Viewport| > Add Item dropdown > V-Ray Geometry > V-Ray Proxy
|Item List Viewport| > Add Item button > Add Item Window > Directories > V-Ray Geometry > V-Ray Proxy
Exporting a Mesh to a File
Before you can import a mesh through a V-Ray Proxy object, you need to create the mesh file first. This can be done either from the V-Ray Toolbox . To do that select the mesh you want to export and in the V-Ray Toolbox click Convert to V-Ray Proxy. This will bring up the V-Ray Create Proxy dialog:
Path – Specifies the directory where the mesh file will be created. Relative paths can be used. If this is kept blank, the .vrmesh file will be created in the same directory as the scene file.
Export type – Controls how proxies are exported when multiple meshes are selected:
Single vrmesh file –Takes all selected objects and will merge them into one mesh file. Also stores the transformations of the selected objects. When importing the file with a proxy object, it must be centered at the origin, if you want the objects to be in the same place.
Separate vrmesh file for each item – Creates one file for each selected object. The name of each file is derived from the name of the corresponding node. Unless the Include transform option is checked, the transformation of an object is not included in its mesh file, and the corresponding proxy must have the same transformation as the original object, if it is to appear in the same place. Note: Can be used even with a single object, which will cause the object pivot to be preserved in the exported .vrmesh file.
File name – The name of the file, if the Single vrmesh file option is selected.
Include transform – Only available when exporting objects in separate files. It bakes the transformation of each object into the vertex positions in the resulting .vrmesh files.
Convert children (sub-items) – When enabled, the children of the selected meshes will also be converted to a V-Ray Proxy.
Overwrite existing files – When enabled, V-Ray will automatically overwrite any existing vrmesh files.
Ignore hidden items – When enabled, items that are not visible for rendering will not be stored in the vrmesh file. Objects that have animated visibility will only be exported for the frames in which they are visible.
Export part tags – When enabled, polygon part tags will be exported as part of the vrmesh file. Use this if you are using some of the part tags of exported items for masking in the shader tree. Note: Checking this will generate much more material IDs (compared to using 3ds Max) and material slots (compared to using Maya) and will make assigning materials to the V-Ray Proxy harder in these applications.
Export selection set tags – When enabled, polygon selection set tags will be exported as part of the vrmesh file. Use this if you are using some of the selection set tags of exported items for masking in the shader tree. Note: Checking this will generate much more material IDs (compared to using 3ds Max) and material slots (compared to using Maya) and will make assigning materials to the V-Ray Proxy harder in these applications.
Export Animation – Exports the animation of the mesh to a .vrmesh file. Note: When exporting each mesh to a separate file, only the vertex animation will be included in the file. Any animations that are part of the transformations of the original mesh will be left there unless the Include transform option is enabled.
No – Animation is not exported.
Animation without velocity – Selecting this option will export just the animation without information about the velocity of objects due to transformations of the mesh.
Animation with velocity (enables deformation motion blur) – Selecting this option will export velocity information for the moving objects. This makes it possible to add motion blur to the final animation. However, exporting this extra information takes longer. If you are not going to need motion blur it makes sense to use the Animation without velocity option instead.
Velocity start offset – Specifies the beginning of the range for which velocity information will be exported.
Velocity end offset – Specifies the end of the range for which velocity information will be exported.
Animation range – Specifies a range for the animation of the proxy that is going to be exported.
Scene range – The entire animation range will be exported to the .vrmesh file.
Current Range – The current playback range will be exported to the .vrmesh file.
Specify Range – Specifies exactly which frames are going to be exported by setting values for the Start frame and End frame parameters.
Sub-division cage as preview – When enabled, the sub-division cage of each item will be used for the preview voxel of the vrmesh file for that item. Otherwise, the preview voxel will be a random subset of the triangles of the item.
Ratio of faces in preview – A percentage of the triangles of the original mesh that are going to be used as a preview of the vrmesh file.
One voxel per item – When enabled, each item will be stored in a separate voxel in the vrmesh file. This generally tends to make rendering faster if there is enough RAM, however it causes V-Ray to load the entire mesh at once which may slow down the rendering if the dynamic memory limit is close to being reached. If you intend to use the V-Ray proxy as a geometry cache for characters or other relatively small objects, turning this option on will improve performance.
Faces per voxel – When One voxel per item is not enabled, this option determines the maximum number of triangles to store in each vrmesh voxel. Increase this value for big meshes.
Auto create V-Ray proxy items – This option will create proxy objects for the exported meshes. The proxies will have the correct transformations and materials derived from the original objects. If Separate vrmesh file for each item is selected as the Export type, the transformations of the original meshes will be used. The original objects will be deleted using any export type with the Auto create V-Ray proxy items option enabled. The transformations are baked within the proxy vertices if Single vrmesh file Export type or Separate vrmesh file for each item Export type with the Include transform option enabled is used. Only the Separate vrmesh file for each item with Include transform disabled applies the transformation to the result proxy object as to an item in the scene.
The .vrmesh File Format
Meshes are exported to a special .vrmesh file format. This file contains all geometric information for a mesh – vertices and face topology as well as texture channels, face material IDs, smoothing groups, normals – in short, everything that is needed to render the mesh. 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 viewports. More information about the .vrmesh file format is available in the V-Ray SDK documentation.
It is important to realize that the mesh is in a "ready to render" format. No further modifications to the mesh are expected. You can't apply modifiers to the mesh, or animate it in any way except if you animate the position/orientation of the proxy object. There is no way to recover the original mesh from a .vrmesh file (this can be done in principle, but is currently not supported). Therefore, if you plan on doing modifications to the mesh, you should keep it in a Modo file (which may be different from the file that gets rendered in the end).
The V-Ray Proxy can load and render also Alembic files (.abc). The supported geometry types are polygonal meshes (without subdivision surfaces), spline curves and particles.
V-Ray will recognize velocity information for motion blur if it stored either as standard Alembic velocity, or as a 3D vector array property called arbGeom.v, arbGeom.velocities or arbGeom.velocity. Additional Alembic color sets are imported as mapping channels with indices greater than 0 (i.e. 1, 2 etc). It's also possible to use such color set for velocity. The V-Ray Proxy has some additional parameters related to Alembic files. See the Alembic proxy section for more details.
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.vrmesh for frame 0, my_proxy_0001.vrmesh for frame 1, and so on. If you use a sequence of files, the Playback type option will be ignored, as V-Ray won't know how many frames are in the animation. The Playback speed parameter may also work unreliably with sequences of files.
Convert and load non-vrmesh geometry file – Starts a ply2vrmesh command to convert the selected file to a vrmesh as a separate process.
Particle render mode – Controls how any particles will be rendered.
Spheres – Renders all particles in the file as spheres.
Points – Renders all particles in the file as points.
Playback speed – A multiplier for the speed of the animation. A value of 1.0 plays the animation at normal speed, while 2.0 plays it at double speed and 0.5 plays it at half speed. Putting negative numbers here will make 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. The default value of 0.0 starts the animation at the first available frame. You can use positive as well as negative values here.
Playback type – Determines how playback will behave.
Loop – The animation plays to the end and loops back to the first frame once it has finished.
Play once – The animation plays 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 again.
Still – The animation is not played. Instead, just one frame of the animation is shown. The Start offset determines which frame is played.
This option will be ignored if you use a sequence of separate .vrmesh files.
Sequence override – Allows you to manually specify which part of the animation will be played.
Sequence start – Specifies the first frame of the animation.
Sequence length – Specifies the length of the animation to be played.
Alembic Proxy Parameters
Starting object path – Specifies a starting path in the Alembic file; only objects below that path will be rendered. The path may start with ABC/ or it may be omitted.
Recompute bounding box – Enabling this option forces V-Ray to recompute the bounding box for the geometry before rendering. When this is off, V-Ray will use the bounding box specified in the Almebic file. However, sometimes these bounding boxes are not correct and in that case the rendering will also be incorrect. To avoid such issues, enable this option. Note that this option might slow down the rendering.
Instancing – Turns on or off the instancing of Alembic duplicated objects.
Compute normals – When enabled, this option smooths normals on the geometry using the Smooth angle.
Smooth angle – The smoothing angle in degrees applied to the Alembic meshes.
Flip normals – Reverses the direction of normals.
Hair width multiplier – Allows control of the hair width during rendering.
Particle width multiplier – Controls the size of the particles when rendering.
Velocity multiplier – A multiplier for the velocity of Alembic objects.
Alembic Subdivision Parameters
Subdivide all meshes – When enabled, all alembic PolyMesh and SubD objects will be subdivided. When disabled, only SubD objects will be subdivided.
Subdivision level – Controls the number of subdivision iterations.
Subdivide UVs – Determines whether the UVs of the object will be subdivided at the borders.
Preserve geometry borders – When enabled, the geometry borders won't be subdivided.
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.
Internal – Only preserve UVs if they are on an internal UV seam.
All – Does not subdivide UVs on UV seams.
Alembic Preview Parameters
Preview faces – Specifies how many faces are going to be used to show a preview of the proxy in the viewport.
Preview hairs – Specifies how many splines are going to be used to show a preview of the proxy hair in the viewport.
Preview particles – Specifies how many particles are going to be previewed in the viewport
Preview – Controls how the proxy is previewed in the viewport.
None (placeholder) – No preview is shown.
Bounding Box – Previews are shown as bounding boxes.
Preview geometry – Uses preview geometry for viewport preview.
Render geometry – Previews as the render geometry.
Voxel bounding boxes – Previews as Voxel bounding boxes.
Show hair width in viewport – Determines whether the hair width size is shown in the viewport when previewed.
Show particle size in viewport – Determines whether the particle size is shown in the viewport when previewed.
Materials are not saved in the .vrmesh file. Instead, the geometry is rendered with the material applied to the V-Ray Proxy node.
The resulting .vrmesh files can be rendered outside of Modo, for example by the standalone version of V-Ray or V-Ray for 3ds Max.
You can convert .ply, .obj, .geo and .bin files to .vrmesh files with the help of the converter tool.
The V-Ray SDK has methods for reading and writing .vrmesh files.
Official Alembic file format home page: http://www.alembic.io/