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 from the V-Ray Toolbox. To do that, select the mesh you want to export, and in the V-Ray Toolbox, press Convert to V-Ray Proxy. This brings up the V-Ray Create Proxy dialog:
Path – Specifies the directory where the mesh file is created. Relative paths can be used. If this is kept blank, the .vrmesh file is 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 merges 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.
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 are also converted to a V-Ray Proxy.
Overwrite existing files – When enabled, V-Ray automatically overwrites any existing vrmesh files.
Ignore hidden items – When enabled, items that are not visible for rendering are not stored in the vrmesh file. Objects that have animated visibility are only exported for the frames in which they are visible.
Export part tags – When enabled, polygon part tags are 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.
Export selection set tags – When enabled, polygon selection set tags are 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.
Export Animation – Exports the animation of the mesh to a .vrmesh file. When exporting each mesh to a separate file, only the vertex animation is included in the file. Any animations that are part of the transformations of the original mesh are left there unless the Include transform option is enabled.
No – Animation is not exported.
Animation without velocity – Selecting this option exports 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 exports 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 is exported.
Velocity end offset – Specifies the end of the range for which velocity information is exported.
Animation range – Specifies a range for the animation of the proxy that is exported.
Scene range – The entire animation range is exported to the .vrmesh file.
Current Range – The current playback range is exported to the .vrmesh file.
Specify Range – Specifies exactly which frames are 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 is used for the preview voxel of the vrmesh file for that item. Otherwise, the preview voxel is 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 used as a preview of the vrmesh file.
One voxel per item – When enabled, each item is stored in a separate voxel in the vrmesh file. This makes 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 improves 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 creates proxy objects for the exported meshes. The proxies 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 are used. The original objects are 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 enabled Include transform option 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 cannot 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 recognizes velocity information for motion blur if it is 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 is 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 is expanded to my_proxy_0000.vrmesh for frame 0, my_proxy_0001.vrmesh for frame 1, etc. If you use a sequence of files, the Playback type option is ignored, as V-Ray do not 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 particles are 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, 2.0 plays it at double speed, and 0.5 plays it at half speed. 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. 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 behaves.
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.
Sequence override – Allows you to manually specify which part of the animation is 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 are 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 uses the bounding box specified in the Almebic 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.
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 are subdivided. When disabled, only SubD objects are subdivided.
Subdivision level – Controls the number of subdivision iterations.
Subdivide UVs – Determines whether the UVs of the object are subdivided at the borders.
Preserve geometry borders – When enabled, the geometry borders are not 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 to use to show a preview of the proxy in the viewport.
Preview hairs – Specifies how many splines to use to show a preview of the proxy hair in the viewport.
Preview particles – Specifies how many particles to preview 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/