Sei sulla pagina 1di 361

V-Ray rendering system - table of contents

This help index as well as all files accompanying it is copyright (C) 2001-2005 by Chaos Group Ltd. All rights reserved. No part of the V-Ray documentation can be reproduced without explicit permission from Chaos Group Ltd. V-Ray and the V-Ray logo are registered trademarks of Chaos Software Ltd. in Bulgaria and/or other countries. Microsoft, Windows and Windows NT are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries. Autodesk, 3D Studio, 3D Studio MAX, 3D Studio VIZ, 3ds Max and Discreet are either registered trademarks or trademarks of Autodesk, Inc./Autodesk Canada Inc. in the USA and/or other countries. All other brand names, product names, or trademarks belong to their respective holders. Last update: 16 May 2005

For installation instructions, please see the Installation and Licensing system sections below. For an overview of what's new in each build, please see the What's New section below. Sections marked with an asterisk (*) indicate updated pages.

LICENSE AGREEMENT What's New* Features Installation* Licensing system Troubleshooting* V-Ray and 3dsmax* MaxScript Texture baking* Unsupported features* Plugins

Renderer Parameters V-Ray Frame Buffer Global switches Image Sampler (Antialiasing) Indirect Illumination (GI) Quasi-Monte Carlo GI Irradiance map* Global photon map Light cache Caustics Environment QMC sampler G-buffer/Color mapping Camera Default displacement System VRayMtl VRayMtlWrapper VRayLight VRayShadow VRayMap VRayHDRI VRayEdgesTex VRayDisplacementMod* VRayFur VRayProxy VRayPlane VRayToon VRayBmpFilter Examples Image samplers Indirect illumination Irradiance map* Caustics QMC sampler G-buffer/Color mapping Global switches* Camera VRayDisplacementMod* VRayLight*

Light cache* Distributed Rendering* Tutorials Irradiance map modes: rendering a static scene from multiple views Rendering a walk-through animation* Photon mapping Displacement Rendering an interior scene Progressive path tracing with V-Ray* Rendering surface interfaces* Rendering an animation with moving objects* Tools Irradiance map viewer* .ply to .vrmesh converter* Theory Classification of GI methods* Terminology Frequently Asked Questions

Chaos Group VRay Software License Agreement

Home

IMPORTANT - READ CAREFULLY: By accepting this software, you agree to be bound by the terms and conditions of this License Agreement. These are the only terms upon which Chaos Group VRay is licensed.

Grant of License
Chaos Group Ltd (The Company) is empowered, and has agreed in consideration of the payment by you of the license fee hereunder to grant you a personal non-exclusive, non-transferable limited license to use the enclosed program (the software or VRay) in accordance with the terms and conditions of this Agreement. This License agreement permits a single user to use the Software's user interface on only one computer at one location at any one time; use up to 10 running copies of the Software for distributed rendering at any one time; use unlimited number of running copies for network (frame-by-frame) rendering.

Interpretation & Definitions


In this Agreement unless the context otherwise requires: Documentation means the technical manuals, user manual and other information which is being made available by the Company to you in either printed or machine readable form; Intellectual Property Rights means any and all patents, registered trademarks, registered designs, application for any of the foregoing, trade and business names, unregistered trademarks, logos, know-how, trade secrets, copyrights, rights in designs, inventions, rights under licenses and consents in relation to any such rights and rights of the same on similar effect or nature in relation to software, source code, object code and associated documentation, together with all goodwill whether or not attaching or relating thereto, in any part of the world. VRay means the "VRay" rendering plug-in for discreet 3dsmax(r) R3, discreet 3dsmax(r) R4, discreet 3dsmax(r) R5 or discreet 3dsmax(r) R6. Use shall mean the right of you to design, create and test your own works (User Works) using VRay; distribute your User Works to End users; make back up copies of VRay. You may modify and make unlimited copies of any resulting animations, still images or scene files contained in the Software

CHAOS GROUP VRAY SOFTWARE LICENSE AGREEMENT

PROVIDED THAT you shall indemnify, hold harmless and defend the Company against any and all costs, claims, demands, expenses, losses and liabilities of whatsoever nature which may arise in conjunction with the distribution or use of your User Works and copies of files contained in the Software.

Property and confidentiality in VRay


VRay and the Documentation shall remain the sole and exclusive property of the Company. Nothing in this Agreement shall confer any rights in any trade name, business name or trademark of the Company on you. In order to properly authorize the VRay software, the Company may obtain certain information about the user's computer system through the VRay license request code. The Company understands that this information may be sensible and shall consider it as confidential. The Company guarantees that this information will be used only internally and in order to prevent illegal use of the Software. The Company also guarantees that it will use its best commercially reasonable efforts to protect this information except in cases where this information might be required by applicable law.

Restrictions
Save as otherwise expressly set out herein or as otherwise expressly permitted by law, you shall not: (a) Make any translation, adaptation, arrangement and any other alteration of the VRay software or make any reproduction, distribution, communication, display or performance to the public of the results of such acts; (b) Adapt or reverse compile or engineer the whole or any part of VRay. (c) Assign, transfer, sell, lease, rent, charge or otherwise deal in or encumber VRay or use VRay on behalf of any third party, or make available the same to any third party without the prior written consent of the Company; (d) Remove or alter any copyright or other proprietary notice from VRay; (e) Not by itself or with others participate in any illegal, deceptive, misleading or unethical practices including, but not limited to, disparagement of VRay or the Company or other practices which may be detrimental to VRay or the Company; (f) Notify the Company immediately if you becomes aware of any

CHAOS GROUP VRAY SOFTWARE LICENSE AGREEMENT

unauthorized use of the whole or any part of VRay by any third party;

Warranty
THE COMPANY DOES NOT WARRANT THAT THE USE OF VRAY WILL MEET YOUR REQUIREMENTS, OR THAT THE OPERATION OF VRAY WILL BE UNINTERRUPTED OR ERROR FREE. THE COMPANY DOES NOT WARRANT THE ACCURACY OR COMPLETENESS OF THE DATA CONTAINED IN VRAY. THE COMPANY DOES NOT WARRANT THE ACCURACY OF THE COMPUTATIONS CARRIED OUT BY VRAY DURING ITS OPERATION AND SPECIFICALLY DOES NOT WARRANT ITS USE IN SAFETY CRITICAL APPLICATIONS. SUBJECT TO THE FOREGOING ALL CONDITIONS, WARRANTIES, TERMS AND UNDERTAKINGS EXPRESS OR IMPLIED STATUTORY OR OTHERWISE IN RESPECT OF VRAY AND THE DOCUMENTATION ARE HEREBY EXCLUDED TO THE GREATEST EXTENT PERMISSABLE BY APPLICABLE LAW.

Limitation of liability & Remedies


Subject to the limits set out below, the Company shall accept liability to you in respect of direct damage to tangible property resulting from the negligence of the Company or its employee's agents or sub-contractors. The Company's entire liability in respect of any Event of Default shall be limited to damages of an amount equal to the amount of the initial purchase price originally paid by you for the Software. The Company shall not be liable to you in respect of any Event of Default for loss of data, information, profits or goodwill (whether such loss is direct or indirect) or any type of special indirect or consequential loss (including loss or damage suffered by you as a result of an action brought by a third party) even if such loss was reasonably foreseeable or the Company had been advised of the possibility of you incurring the same. If a number of Events of Default give rise substantially to the same loss then they shall be regarded as giving rise to only one claim under this Agreement. The Entire Liability of the Company and your exclusive remedy under the warranty provided herein will be to attempt to correct or work around errors, to replace the Software or to refund the purchase price and terminate this Agreement. This remedy is subject to return of the Software to the Company.

Indemnities
You shall indemnify the Company, and keep the Company fully and effectively indemnified on demand from and against any and all losses, claims, damages, costs, charges, expenses, liabilities, demands, proceedings and actions which the Company may sustain or incur, or which may be brought or established against the Company by any person, which in any case arise out of or in relation to, or by reason of:- any breach by you of your obligations

CHAOS GROUP VRAY SOFTWARE LICENSE AGREEMENT

under this Agreement; any alteration, modification, adjustment or enhancement made by you to VRay; or any combination, connection, operation or use of VRay with any other equipment, software or documentation not supplied by the Company.

Termination
This License is effective until terminated. You may terminate this License at any time by destroying the Software, related documentation and all copies thereof. This license will terminate immediately without notice from the authorized publisher if you fail to comply with any provision of this License. Upon termination you must destroy the Software and related documentation and all copies thereof.

Entire Agreement
The Company shall not be liable to you for loss arising from or in connection with any representations, agreements, statements or undertakings made prior to the date of execution of this Agreement other than those representations, agreements, statements or undertakings confirmed by a duly authorized representative of the Company in writing or expressly incorporated or referred to in this Agreement.

Law
Any controversy, claim or dispute that cannot be so resolved shall be settled by final binding arbitration in accordance with the rules of the World Arbitration Association, and judgment upon the award rendered by the arbitrator or arbitrators may be entered in any court having jurisdiction thereof. Any such arbitration shall be conducted in the city where the Company's headquarters are located, or such other place as may be mutually agreed upon by the parties. 3dsmax(tm) is a registered trademarks of Discreet, a division of Autodesk, Inc. VRay software, VRay logo and VRay documentation belong to Chaos Group. All other brand names, product names, or trademarks belong to their respective holders.

Welcome to VRay (starting page)

What's New in This Version


Build 1.47.03 - 16 May 2005:
Bug fixes:
q

Home

Multi/subobject materials caused increased CPU usage and/or crashes in the Material Editor.

Build 1.47.02 - 11 May 2005:


Modified features:
q

VRayProxy objects are now treated as bitmaps so that they can be exported along with the rest of the scene. If the Secondary rays bias is 0.0 in texture baking mode, VRay will automatically adjust this to 0.001 to avoid errors.

Extended features:
q

New parameter Anisotropy added to the DOF parameters. This allows the stretching of the bokeh effect horizontally or vertically. Added a hidden parameter system_vrayLog_ccToDebugger to allow redirecting the VRay log to the 3dsmax log file. Added a hidden parameter system_vrayLog_numThreads for manual control of the number of rendering threads. Added a new parameter Blur GI to the Irradiance map parameters with the purpose of reducing flickering of GI in animations with moving objects.

Bug fixes:
q

Hair in 3dsmax 7.5 in buffer mode did not render in camera views. Complex materials (Blend, Shellac) and the falloff map with shadow/ light mode did not work in path tracing mode.

Welcome to VRay (starting page)

Highlights were not computed in the Progressive path tracing Mode of the Light cache. Zooming and panning in the 3dsmax VFB could crash 3dsmax. Multi/sub materials with some shader types could render with wrong brightness. Interpolated glossy reflections didn't work with Multi/sub material. Crashes with displacement and motion blur when the displacement map used Object XYZ mapping. Crashes during building the irradiance map with Overlapped Look-up mode when Interp. samples not divisible by 4. When the Override mtl button is clicked, the Material Browse dialog is opened twice in 3dsmax7. In track view, the parameter names for VRayDisplacementMod were wrong. The Hilbert curve generator crashed if the region size is larger than the rendered region. Rare crashes with dynamic geometry (displacement etc) when it needed to be unloaded from memory. Objects with Visible to camera off were visible in the z-buffer. Spots with back-facing UVW triangles in texture baking mode. Planar from object XYZ mapping mode did not work with motion blur enabled. The Ward BRDF in the VRayMtl could cause red dots in the scene. Missing UVW coordinates could cause splotches in the scene. The VRayHDRI map with Angular Mapping type could produce invalid colors. Crashes with subdivision/displacement when they were applied to both moving and static objects in a scene with motion blur on.

Welcome to VRay (starting page)


q

The texture channel for anisotropy was not working. When Switch to saved map is on, VRay switched to From file Mode even when GI is off.

Build 1.46.15 - 10 March 2005:


Modified features:
q

A new mode, Progressive path tracing has been added to the light cache. See this tutorial for a discussion.

Bug fixes:
q

Glass with the Affect shadows option on could cause splotches with VRayLights. Skylight portals could hang with the light cache. Mapped IORs in the VRayMtl greater than 1.0 didn't work. The VRay VFB didn't overwrite files when the resolution of the existing file is different from the VFB resolution. Small memory leak for each rendered image (4-16Kb) removed. Meshes with 0 faces and 0 vertices could cause problems in Dynamic geometry mode. Increasing photon or light cache subdivs above 1100 did not have any visible effect. Crashes when the 3dsmax resolution is different from the VRay one and saving to file is required. Crashes with dynamic geometry (VRayProxy, VRayFur, displacement etc), especially on dual hyper-threading machines. Irradiance map very slow with motion blur and subdiv surfaces.

Welcome to VRay (starting page)

Build 1.46.14 - 21 February 2005:


Bug fixes:
q

Mixing dynamic and non-dynamic geometry with motion blur could render incorrectly.

Build 1.46.13 - 17 February 2005:


Bug fixes:
q

VRayMtl with fog on could cause splotches in the scene. Overlapped mode for the irradiance map lookup could cause splotches with reflective objects in the scene. VRayToon with world units could render incorrectly on the background. Color mapping could produce severe color inversion with very bright colors.

Build 1.46.12 - 10 February 2005:


Modified features:
q

The light map has been renamed to "light cache" to avoid confusion with traditional "light map" textures used in game engines etc. Reduced memory usage with static non-motion blurred geometry; some speed improvements as well. Reduced memory usage for dynamic instanced geometry as well as for VRayProxy objects. Reduced memory usage for static motion-blurred geometry; more robust raycasting for motion-blurred geometry; faster motion blur; faster multi-segmented motion blur. The Dome light will not produce highlights.

Welcome to VRay (starting page)

Extended features:
q

An option Use light cache for glossy rays has been added to the light cache parameters. This can speed up greatly rendering of scenes with lots of glossy reflections (at the expense of some accuracy). Added a parameter Number of passes for the light cache; this allows to achieve the same light cache on single- and multi-processor machines while keeping the advantage of multithreading. The Trace diffuse & glossy together parameter in the VRayMtl has been renamed to Treat glossy rays as GI rays and has some extended values. A new option Time independent had been added to the QMC Sampler parameters to allow changing the QMC pattern from frame to frame in an animation. A Max density parameter was added to the Caustics parameters with the same meaning as that for the photon map.

Bug fixes:
q

Flipped proxies rendered as black. VRayMtl with fog and glossy refraction was incorrect. VRayMtl didn't update in the Material Editor if maps are dragged to the small map buttons. DOF/Moblur + irradiance map + high Global subdivs multiplier could lead to splotches. DOF/Moblur and the irradiance map pass take the full amount of samples when the Global subdivs multiplier is more than 1.0. VRayLightMtl did not generate a self-illumination channel for the VFB. Mouse tracking in the VRay VFB and changing region sequence was buggy. Crashes when the x/y regions count for the image are explicitly specified and region sequence is set to Triangulation.

Welcome to VRay (starting page)

"Ink'N'Paint" material did not render correctly; "Adv. raytraced" and "Area shadows" shadow types did not render correctly. RPC moving content did not update in animation. Spherical VRayLight could cause splotches. VRayBmpFilter did not update the button name when a texmap is dragged onto it. The light cache could cause flickering in animations with dual machines a new parameter Number of passes added to the light cache. Bump maps with glossy reflections for rays that fall below the surface could slow down rendering a lot. Crashes when attempting to write to a GBuffer which does not have any channels. The VRay messages window was displayed in server mode. Writing to a raw .vrimg file in animation could lead to crashes. The VRay VFB didn't overwrite files. VRayToon did not work properly with transparent objects and VRayLights. Falloff map as an environment override in a VRayMtl could produce indeterminate results. Distributed rendering from MaxScript did not render the correct view or crashed. Caustics with Max photons set to 0 and Indirect illumination off could crash while calculating the caustics photon map.

Build 1.46.09 - 15 December 2004:


Extended features:
q

An option to treat all glossy reflections/refractions as non-glossy is added

Welcome to VRay (starting page)

to the Global Switches rollout.


q

VRay will print a warning if the camera fov is too small. VRay will print a warning if the scene bounding box is too small/large or too far from the origin. Drag-and-drop support for the material override button in the Global Switches rollout. Drag-and-drop support for the small map buttons in VRayMtl. Correct preview for the refraction of the vray material in the viewports. A viewer for the .vrimg files produced by VRay is included. The user can open and use .vrimg files in 3dsmax as all other bitmap types. Currently only the RGBA channels are read and displayed from the .vrimg files.

Bug fixes:
q

Simbiont materials did not work. Artifacts with nested objects possible. VRayMtlWrapper did not produce a matte surface. VRayEdgesTex crashed with proxies. VRayLightMtl did not keep its name on file load/save. GI with transparent surfaces could cause a crash. Caustics with interpolated glossy reflections caused a crash. Dome light darker with lightmap. Render-to-texture with lightmaps was problemmatic - too few samples were taken. Crashes occured if rendering any gbuffer channels and the Max resolution is different from the VRay VFB resolution. VRay VFB with save to raw file crashed.

Welcome to VRay (starting page)


q

VRay VFB rendered out black in sequence. Alpha channel was inverted in the VRay VFB.

Build 1.46.08 - 26 November 2004:


Extended features:
q

VRay will try to specifically point out if a crash has occured due to insufficient memory. An option Save maps per frame has been added to the GI parameters. This is On by default, in order to deal with some problems under backburner in 3dsmax R7. See the Indirect illumination section for more details. The Dynamic geometry option should be a lot more memory efficient. VRayProxies are more memory-efficient, especially when instanced many times.

Bug fixes:
q

Degenerate faces on meshes could cause parts of displacement-mapped objects to disappear. Materials with instanced bitmaps as diffuse/opacity could render with weird colors.

Build 1.46.07 - 24 November 2004:


Bug fixes:
q

Splotches with GI and VRayMtl with Affect shadows option on.

Welcome to VRay (starting page)

Build 1.46.06 - 20 November 2004:


Bug fixes:
q

The Affect alpha option of VRayMtl didn't work. Note that the Affect alpha parameter only works for clear (non-glossy) refractions. Fog color with internal reflections was incorrect. Precalc'd overlapping lookup for the irradiance map was too blurry. Multipass camera effects didn't work (Multipass DOF). Ortho views were cut through the origin. True instance rendering returns in this build. Note that currently instance rendering is not supported for moving geometry with motion blur. Lights had caustics off by default. Light maps and matte objects with Shadows on caused a crash. Note: matte materials don't show up as mattes in the prepasses (irradiance/light maps), but they do show in the final render. The default material did not produce correct lighting with VRayLights. No GI on other mattes didn't work. The Alpha contribution parameter didn't work properly for fractional values. VRayLights produced an alpha channel even if invisible. Skew modifier on cameras was slow with Adaptive subdivision image sampler with Normal threshold on. VRay now prints out a warning if there is a camera modifier, but the Max-compatible ShadeContext option is on. Objects that are not visible to the camera showed up in the alpha channel. Meta-Reyes not rendering in animation.

Welcome to VRay (starting page)


q

Hidden faces showing up with Dynamic geometry. The image was always stamped when the VRay VFB was saved/cloned. Lightmap could freeze with transparent materials. Lightmap could freeze with complex materials (like Blend). VRayLights could produce noisier results than necessary. VRay-specific materials and maps will not show up in the materials/maps browser if the renderer is not VRay in 3dsmax 6 and above, unless the Incompatible option in the browser is selected.

Build 1.46.05 - 13 November 2004:


Bug fixes:
q

QMC sampler behaves in a more similar way to the 1.45 versions without changes in settings. Note however, that the QMC is still different from the 1.45 version, so differences in render times/quality are possible. Lightmaps and photon maps will take more samples on average compared to 1.45 versions which may lead to slightly longer render times (although results may be cleaner). Reduce the subdivs to decrease the render time. VRayProxies did not provide material id's properly (did not work with multi/subobject materials) . Total internal reflections were not correct. Caustics photon map was used when present, even if caustics are off. The "Sub-pixel weight" channel was incorrect (improved compatibility with PSD manager). 2d displacement could cause infinite cycling on meshes with degenerate faces. Better handling of opacity maps - both with VRay materials and with Standard materials.

Welcome to VRay (starting page)

Parts of VRayLights could disappear during rendering. Caustics did not appear on Standard materials. Photon mapping did not work properly with VRayMtlWrapper with the Matte option turned on. The exposure control peview in the Environment dialog crashed with VRay. Thumbnails in the ME on multi/sub materials were not rendered. In distributed rendering mode, VRay tries to delete any temporary .max files after rendering is complete. The VRaySpawner attempts to delete any files left over from previous sessions. 2d displacement did not work with motion blur. Added a section in the help with a list of 3dsmax features which do not work or work only partially with VRay. See the Unsupported 3dsmax features section. The mouse tracking mode of the VRay VFB did not work properly when enabled at the start of the rendering.

Build 1.46.04 - 3 November 2004:


Extended features:
q

Correct multi-layer GBuffer. See the Notes in the GBuffer section for more details. Some support for the Render-to-texture mode in 3dsmax. At present, VRay can bake only the full object materials in this mode. These conclude the feature set for VRay 1.5. The next several builds will include bug fixes only, until the final 1.5 version is released.

Welcome to VRay (starting page)

Bug fixes:
q

Fixed crashes with DreamScape in the Material Editor Crashes with the CAT plugin with motion blur. Slow rendering of blurry effects (area lights, glossy reflections etc) due to problems with the QMC sampler. G-buffer channels requested by .rpf and .rla file formats were not generated.

Build 1.46.01 - 13 October 2004:


Installation:
q

This build requires a somewhat different setup for the additional VRay plugins (VrayFur, VRayPlane, VRayToon), since now those depend on the vrenderXX.dlr file as well. See the Installation section for more details. Be
sure to delete any old remaining versions those plugins.

New features:
q

Subdivision displacement (Catmull-Clark and Loop schemes), see the VRayDisplacementMod section for more details. Distributed rendering - completely redesigned DR core supporting distributed calculation of irradiance maps, see the sections on Distributed Rendering and Installation for details.

Extended features:
q

Lightmaps work with standard materials Added autosave options for lightmaps Time-dependent irradiance map for a more precise rendering of motion-blurred objects with GI. A new look-up method Density-based added to the irradiance map; this

Welcome to VRay (starting page)

is the new default method as it is substantially better than all previous methods (reduces the ringing on sharp boundaries and the artifacts due to low sampling).
q

Better interpolation for the irradiance map and glossy reflection/ refraction maps. Reduced memory usage - all rendering threads share the same dynamic geometry pool (for proxies, displacement, fur, subdivision), thus drastically reducing memory usage on dual and/or hyperthreading machines. Previews of irradiance and lightmap calculations are available in the VRay VFB. Extended stamp in VFB allows changing the stamp text in the VFB only - after the image has been rendered with improved user interface.

Bug fixes:
q

Fixed a problem when many machines try to access the same irradiance map at once. Fixed problems with view-dependent meshes (nPower booleans, specifically). Fixed incorrecft velocity channel with moving cameras. 2d displacement could produce degenerate normals on degenerate faces leading to artifacts. Adaptive AA min rate limit is now set to -3 (lower values caused RAM overflow and crashes). Fixed slowdown with irradiance map on some scenes with varying camera scale. Lightmaps now render correctly in blowup renderings. Instanced 2d displacement should take less memory. Fixed faceting with VRayLights with the Store to irradiance map option on.

Welcome to VRay (starting page)


q

Fixed a slowdown when the VRay messages window is closed. The QMC image sampler didn't antialias very well against the background. Matte objects produced incorrect results with opacity-mapped objects. Closing the VRay messages window introduced a major slowdown. The VRay messages window did not show up when closed. The VRLServer could refuse to generate a license request in some situations. Glossy reflections were incorrect or slow in some cases. Fixed crashes occuring in certain situations when objects depend on one another.

Build 1.45.70 - 1 July 2004:


q

VFB - Bug fixes. New License server New licenses are required to be issued to make VRay working. Start your license server and send us the details. Make sure you read the license agreement and the license authorization. Fixed the Browse button for choosing .vrimg files. Fixed slowdown with lightmaps and bump-mapped materials. Enabling the G-Buffer Object velocity channel made some objects disappear Added world units in VRayLights, VRayShadows and for the translucency Thickness in VRayMtl Caustics were displayed when set to From file even if they we're turned off. Shadow maps were computed even with the Shadows option off in the Global Switches rollout.

Welcome to VRay (starting page)


q

Added a parameter Secondary rays bias in the Global Switches rollout, which may be useful in scenes with overlapping faces. Added a button for locking the Hilight glossiness to the Reflection glossiness in VRayMtl. Added a button for locking the Fresnel IOR to the Refraction IOR in VRayMtl. The creation of VRayFur is fixed to display the parameter of the newly created object. Fixed rare crashes with non-renderable objects in the scene. Exporting meshes to .vrmesh files could produce memory leaks. Some channels were garbage on matte objects. Alpha saved from the VRay VFB was inverted or missing. Fixed some bugs in the translucency algorithm of VRayMtl; translucency now works with Refraction glossiness of 1.0 and is about two times faster than using lower glossiness values.

Build 1.45.65 - 9 June 2004:


q

Dof rotation didn't work VRayMtl has opacity map A new button Show last VFB added to the frame buffer rollout QMC GI settings were not converted properly from older files The location of VRayLog.txt can be specified Shadow channel is generated Self-illumination channel is generated by VRayLight's The output settings for the Split G-Buffer channel option are properly saved and loaded

Welcome to VRay (starting page)

Build 1.45.60 - 1 June 2004:


q

VRayShadow produces correct results with direct lights. Added a separate Fresnel IOR parameter in VRayMtl. Diffuse color is now not dimmed when Trace reflection is off in VRayMtl. Fixed a bug in VRayMtl with texures with an alpha channel. Degenerate faces could cause artifacts in rendering. Better interpolation of the light map with concave surfaces. Added a Hidden lights option in the Global switches rollout. Photons from newly created rectangular VRayLights were traced in the wrong direction. Fixed a crash with VRayPlane and shadow maps. Motion blurred objects didn't show up when their visibility is 1.0. The AA filter params moved to the Image sampler rollout. Fixed darker glossy reflections around object edges. Hilights are not computed for secondary GI bounces, when Reflective GI caustics is off. Relevant world-scale parameters show up in world scale units. Added raw lighting and indirect illumination channels to the VRay VFB. Fixed a crash with Weighted average with Voronoi weights interpolation type for the irradiance map. Parameters from older scenes are transferred correctly. The .vrmesh export did not write smoothed surface normals.

Welcome to VRay (starting page)

The irradiance map and light map did not render properly in orthographic views.

Build 1.45.50 - 19 May 2004:


q

This version of V-Ray includes a nearly final version of the VRay floating license system. The V-Ray Frame Buffer (VFB) has been improved. Additional support for extra channels and color corrections on the fly has been added. Still a lot of improvements on the way. V-Ray now exports additional 11 G-buffer channels to the VRay VFB (specular, reflection, refraction, GI etc). Most of the them are supported only for VRay materials. All of these channels can be saved to separate bitmap sequences for post-production purposes. Some improvements in VRayMtl - separate control over hilights and glossy reflections. In addition, glossy hilights and reflections have been improved to act in a more physically accurate way. Parameters for controlling GI saturation and contrast. DOF and motion blur controls have been moved to the Camera rollout. Some additional parameters (for example, aperture shape) have been added. Note that at present DOF and motion blur settings will not transfer from older scenes. This will be corrected shortly. A new option, Visible to GI has been added to the VRay Object settings dialog. VRayLights are oriented along the negative local z-axis like standard 3dsmax lights. This affects only newly created lights. Lights in older scenes will keep their orientation for compatibility. VRayMtl generates correct material (effects) G-Buffer ID. VRayProxy objects automatically look for .vrmesh files in the standard 3dsmax bitmap paths, if the file is not found at the specified location. Newly created VRayProxy objects take the name of the original object, prefixed with "VRayProxy_".

Welcome to VRay (starting page)

Objects with Visibility=0 do not generate any geometry. Several new options were added to the Global switches rollout. Many other bug fixes and improvements.

Build 1.45.42 - 20 April 2004:


q

Changed the licensing system. We have introduced a new floating license system. The GI interface has been reogranized. Note that irradiance map settings
will not be loaded properly from older files and will be reset to the defaults.

A new GI engine - light mapping, has been added. The Two-Level image sampler has been rewritten as an adaptive quasimonte carlo sampler. A new parameter Global subdivs multiplier has been added to the QMC sampling parameters. A new parameter Bias has been added to the motion-blur parameters. A lot of internal changes, improvements and minor fixes.

Build 1.45.21:
q

Fixed a bug in VRayMtl that caused black reflections at grazing angles. Added a new keyword %primitives to the possible frame stamp keywords; this is replaced with the number of unique intersectable primitives processed by VRay. Added an example of different antialiasing filters. Added a new camera type - warped spherical camera. This is the same as the old-style spherical camera, which was present in the early versions of VRay. The VRayLight is now visible in the rendered image. It is also properly displayed with motion blur.

Welcome to VRay (starting page)


q

Some internal changes to the Geometry SDK. Fixed a bug in the Triangulation bucket sequence that caused an incorrect region to be rendered if Region Rendering is enabled. Support for user-specified vertex normals in 3dsmax R6.

Build 1.45.20 - 8 January 2004:


q

Fixed a bug with the ordering of render regions (buckets) that could cause unexpected crashes and fast exits out of 3dsmax. Fixed a bug in VRayMtl that could cause crashes with fog enabled. Fixed a bug that caused the irradiance map to always use 1 interpolation sample in bucket mode. Some internal changes to the Geometry SDK. Improvements to displacement mapping - equalized sampling of triangle edges to avoid cracks between triangles with different tesselation and a new view-dependent tesselation algorithm that works for objects behind the camera as well. The VRayPlane is fully mappable with any kind of texture mapping. Added a new tutorial on 3d displacement.

Build 1.45.10 - 28 December 2003:


q

Fixed a bug with irradiance map and scaled objects (normals for GI were not scaled correctly). Some internal changes to the Geometry SDK

Build 1.45.01 - 17 December 2003:


q

VRay was compiled with an incorrect compiler version, leading to very unstable behaviour. This build should be faster and more stable. The VRay vfb and the new protection scheme were omitted from the initial internal build. Those are added now. Please send the auth requests to vray@chaosgroup.com

Welcome to VRay (starting page)

Build 1.45.00 - 16 December 2003:


Note that this is an internal build. Many things over previous builds have changed and some features are not yet fully implemented. VRay's geometry pipeline has been rewritten from scratch to allow handling of complex procedural geometry. Some of the more important changes are listed below. There are several additional plugins found in the VRay category of the Create panel in 3dsmax. Those include the VRayFur, VRayProxy and VRayPlane. If you had a previous version of this internal build, please remove the old files (InfinitePlane5.dlo and VRayFur5.dlo) since the file names have changed and you may get a warning when 3dsmax starts. Distributed rendering is not included in this build. You may get an error "VRayNet50.dlu failed to initialize". Rename or move VRayNet50.dlu to a different folder if you want to get rid of this warning. The Instanciate option in the System rollout has changed. Now you can choose the default type of the geometry generated for scene objects static (all of the scene geometry is generated once at the start of a frame) and dynamic (the scene geometry is generated on the fly). There is also a parameter for controlling the memory limit for dynamic geometry. Note that the limit is approximate, VRay may use slightly more memory. Displacement mapping (3d displacement in particular) has been totally overhauled. In general, 3d displacement is much faster and memory management is better. Motion blur for displacement is also significantly faster. For more information, see VRayDisplacementMod. The VRay frame buffer reappears in this version. See the VRay Frame Buffer section. There is still some work to be done in that area. QMC motion blur for objects that do not move and don't change has been improved. They generate static geometry and render faster, instead of the motion blurred geometry that was always generated before. This means that scenes where motion blur is mostly due to camera motion will render faster. This version requires additional authorization in order to work. Your old authorization info will not be removed, should you decide to revert to a previous version of VRay. As of this version, VRay has a Geometry SDK that allows the creation of custom geometric primitives. The VRayFur, VRayProxy and VRayPlane

Welcome to VRay (starting page)

plugins all use this SDK.

Build 1.09.03n - 28 November 2003:


q

This is just a recompile of the demo version with extended trial preiod

Build 1.09.03m - 17 September 2003:


q

Fixed a bug with interpolated glossy reflections/refractions

Build 1.09.03k - 12 September 2003:


q

Fixed a bug with Precalc'd overlapped irradiance map lookup type that could cause crashes. Better bump mapping with the irradiance map. Some compression added to the irradiance map; as a result the size of the irradiance map in memory and on disk is about 50% smaller at the price of slightly longer render times and somewhat reduced precision (not noticeable in most cases). The prepasses will not add detail to the irradiance map for more than the specified Max rate when using the Incremental add mode. Until now, rendering successive frames could add more and more detail in some areas, leading to very large irradiance maps. Added parameters to the Global switches rollout to control raytracing of transparencies. Until now those were hard-coded; occasionally however they need to be changed (for example with lots of overlapping transparent planes). Added a parameter to the Global switches rollout to skip the rendering of the final image and to compute only the irradiance/photon maps. This option is useful to speed up calculating irradiance maps for fly-through animations.

Build 1.09.03j - 22 August 2003:


q

Fixed the MaxScript parameters of the VRay material. In VRay Advanced for 3dsmax 5.x only, added a shortcut to the quad menu for the VRay object properties dialog, as well as an initial version of a scene converter that takes all Standard and finalRender Stage-1

Welcome to VRay (starting page)

materials in the scene and converts them to VRay materials; also converts raytraced shadows to VRay shadows. At this point, the conversion is pretty basic, but can be quite useful.

Build 1.09.03i - 26 July 2003:


q

Fixed a bug that could cause crashes when manipulating objects in the viewports after rendering with VRay and other anomalies in 3dsmax. Added an Affect alpha parameter to VRayMtl; this will cause the alpha channel to be taken from the things that are seen through the material when using refraction. Note that this only works for non-glossy refraction (refraction glossiness set to 1.0). Fixed a bug that caused objects excluded from illumination by VRayLights to be illuminated when the lights' Store with irradiance map option is on. Added another color mapping mode, called HSV exponential; it is very similar to the Exponential color mapping mode, but will preserve the hue and saturation of colors, and will only limit their value.

Build 1.09.03g:
q

Improved compatibility with Digimation's SpeedTree. The Fresnel option in the VRay material affects its transparent shadows as well.

Build 1.09.03f - fixes a single bug:


q

VRay did not display an authorization dialog (bug in 1.09.03e).

Build 1.09.03e:
q

The VRayLight could crash if the user right-clicks while creating it. Saved irradiance maps were not always loaded properly (bug in 1.09.03ad) causing excessive render times. VRay could crash sometimes while calculating irradiance maps (bug in 1.09.03a-d). VRay could crash sometimes with VRayLights (bug in 1.09.03a-d).

Welcome to VRay (starting page)


q

Files created with the beta versions of VRay (0.5x.xx) will not load at all from this build onward. All of the renderer parameters are exposed through MaxScript (in 3dsmax 5.x). Note that this may cause some incompatibilities with existing MaxScripts - they will need to be updated. The following methods of the renderer can be called from MaxScript: <vray>.saveCausticsPhotonMap <fname> <vray>.saveGlobalPhotonMap <fname> <vray>.saveIrradianceMap <fname> <vray>.loadIrradianceMap <fname> <vray>.clearIrradianceMap() All of those methods return 0 on success and a non-zero value if an error occurs.

The Bake3D plug-in file is named differently for each 3dsmax version (Bake3d31.dlu, Bake3d40.dlu and Bake3d50.dlu respectively).

Build 1.09.03d - fixes some bugs introduced in the 1.09.03a-c builds:


q

The VRayDisplacementMod modifier had a bug that could cause instabilities in Max when working with the modifier stack, loading/saving files etc. VRay lights could cause crashes in some cases. Broadcasting of NOTIFY_RENDER_PREEVAL (Max 4 and above) was disabled since it could cause the rendering to crash/hang.

Build 1.09.03c - bug fix:


(*) The irradiance map was not reset for every frame in Single frame mode.

Build 1.09.03c - two minor bug fixes:


(*) VRay did not load on Windows NT. (*) Normal glossy reflections did not always render.

Build 1.09.03a

Welcome to VRay (starting page)

(*) The VRay material is re-organized and split into rollups. (*) The VRay material supports anisotropy for glossy reflections. (*) The min/max rate for interpolated glossy effects is decoupled from the min/ max rate of the irradiance map. Using interpolated glossy effects no longer requires GI to be on or to be set to irradiance map. Note that old materials using interpolated glossies need to be checked manually, since the interpolation options will not be transferred. (*) Improved compatibility with the finalToon render effect. The finalToon shader does not work correctly, but lines should be rendered properly. (*) Added an Exclude button to VRayLight. (*) Added a messages window that outputs some (useful) information. The messages are actually portions of the VRayLog.txt file. Messages are divided into four categories: informative messages, warning messages, error messages and debug messages. Warning messages are colored in greed, error messages are colored in red. There are some options in the System rollout to control the output window. (*) The Shift parameter in VRayDisplacementMod works both with 2d and 3d displacement. (*) Fixed a memory leak with 3d displacement in animation. (*) GBuffer channels were not correct for objects behind other "Invisible to camera" objects.

Build 1.09.02u
(*) This version of VRay includes separate builds for Max 5.x and Max 4.x; you will have to delete the following files from previous builds in your Max5 installation to make the new ones work: VRay40.dll, VRender40.dlr and VRayNet40.dlu (the new Max 5 files are called VRay50.dll, VRender50.dlr and VRayNet50.dlu respectively). (*) Greatly improved distributed rendering (DR) in terms of stability. (*) DR now supports Max 5.x and Viz4 (*) A DR setup wizard has been added to the installation files to help set up your render slaves for DR. Copy the DRWizard40.exe/DRWizard50.exe to the slave Max root folder and double-click it. The wizard will ask you for the relevant information and will write it in a configuration file. (*) Some improvements to the VRaySpawner - it is no longer required to install the spawner as a service to make it work at all. Also, when run in stand-alone mode, the spawner will show an icon in the taskbar tray that allows you to close it without resorting to Task Manager. (*) The bucket-mode irradiance map has been enhanced to produce much less obvious seams between the buckets (at the expense of some extra computations). (*) Some problems with Falloff opacity/filter maps have been resolved. (*) Horizontal and vertical flip parameters have been added to the irradiance map. (*) Fixed a bug in the Spherical camera that caused distortion of the image

Welcome to VRay (starting page)

when mapped back as a spherical environment. (*) Max's own displacement mapping did not always work. (*) Color mapping was incorrectly applied to the background as seen through transparent objects when Affect background is unchecked. (*) Some compatibility problems with AfterBurn3 have been resolved. (*) Fixed a bug that could cause exceptions when building render normals. (*) A new parameter was added to the global photon map parameters - Max density allows you to limit the spatial resolution of the photon map thus saving memory (and render time) while allowing many more photons to be shot (thus producing smoother results). The value of this parameter represents a distance in world space. Any photons that are closer to each other than this distance will be merged into one photon with equal energy. This parameter is dependent on the scale of your scene. Smaller values mean more detail in the photon map (and more memory). Higher values mean less detail, but produce a smoother result and take less memory. A tutorial on this is coming soon... (*) The Delone triangulation method for irradiance map interpolation has been slightly improved.

Build 1.09.02t
(*) Fixed the Max 5.1 "Missing map" warning when loading files containing the VRayHDRI map. (*) Added the capability for loading/saving the VRay parameters as presets. There is a button named "Presets" in the VRay System roll-up; pressing it will bring up a dialog box that allows to choose a preset name and the roll-ups that need to be saved/loaded. (*) The static boxes with the path to the loaded irradiance/photon map have been turned into edit boxes, so that the user can directly enter a path, without using the Browse button. (*) Added the options of switching off reflective/refractive GI caustics (which sometimes cause extra noise but have little contribution to the lighting). (*) The option "No GI on other mattes" in the Matte settings of an object has been extended to also disable shadows of matte objects onto other matte objects (works only with VRay shadows and lights). (*) When an exception occurs in network render mode, VRay will hand down the exception to Max, instead of silently ignoring it; this will prevent VRay from rendering the rest of the animation as black frames. (*) Caustics on matte objects/materials did not show up unless GI is also enabled

Build 1.09.02q
(*) Fixed (hopefully) most of the Material Editor crashes. (*) Fixed some problems with Multi/Subobject materials. (*) The "Don't affect GI on other mattes" option could not be unchecked; also

Welcome to VRay (starting page)

this is renamed to "No GI on other mattes". (*) Added an initial version of the VRay VFB - see the notes below. (*) Added "Exponential" color mapping mode. You can select this instead of the default "Linear mapping". The exponential mode is targeted at preventing burnouts caused by very bright colors. The meaning of the Dark and Bright multipliers is slightly altered in this mode. The Dark multiplier can again be used to make the image darker/brighter. The Bright multiplier is not very meaningful at this point and you should leave it to 1.0. Notes on the V-Ray VFB This is the first public build to include the new internal V-Ray Virtual Frame Buffer. It is still in its infant stage and there is still a lot of cool stuff to add. The built-in VFB has some advantages over the standard MAX VFB: (*) Internal color corrections that allow to tweak the colors within MAX without having to re-render again and again and without having to switch back and forth to post-production applications in order make color corrections and matching. The corrections include curve-based control of each channel as well as overall color level re-mapping. Use the CTRL/SHIFT+MOUSE CLICK combinations to add color control nodes in the Levels control. (*) Mouse tracking that allows the user to control which parts of the image are to be rendered first by simply moving the mouse over the desired area. The new VFB is designed to be more interactive and stable. There should be no problems tweaking the colors, zooming in and out changing the currently visible channel etc while rendering. A lot of new features are on their way to be introduced in the next build, taking full advantage of the V-Ray renderer architecture.

Build 1.09.02p
(*) This version is just a recompile of 1.09.02n - fixes some messed up UI stuff. Also tooltips are temporarily disabled, since it seemed they may be causing problems. Build 1.09.02n (*) Fixes a single bug - irradiance maps were not saved properly to disc. Build 1.09.02m (*) Fixed a bug that would cause reflections/refractions not to show up on a first frame or in network rendering. (*) Better support for DreamScape plugin (*) Better support for Shag:Hair velocity channel output (*) Fixed a memory leak when the user cancels the rendering (especially obvious in large scenes). (*) Fixed a problem that could cause crashes when using any g-buffer channels (*) Support for the VRay shading SDK - allows the creation of VRay specific shaders, materials and atmospheric effects (*) The irradiance map now supports GI on matte objects, making the calculations of these much faster (*) Improved combining of direct and GI shadows on matte objects

Welcome to VRay (starting page)

(*) Added an option "Don't affect other mattes" to the matte object properties, which will prevent matte objects from affecting the each other's GI solution

Build 1.09.02g
(*) Fixed bugs in the 3d displacement modifier's accelerators (*) Render region/blowup/crop did not work properly (*) %camera keyword added to the frame stamp; this returns an empty string if the rendered view is not a camera view

Build 1.09.02f
(*) A memory leak with VRayDisplacementMod was fixed (*) Transparent objects did not render properly with GI (*) Three new keywords supported in the frame stamp: %cpu %ram %vmem % mhz (*) 3d displacement mapping added. VRayDisplacementMod has been reorganized and includes support for both the old-style 2d mapping and a new 3d mapping algorithms. Note the 2d displacement is much faster and should be used whenever possible. The 3d displacement algorithm on the other hand supports all mapping types (World XYZ/Object XYZ/Explicit map channel etc). In addition, the 3d displacement algorithm can extract the displacement information from an object's material, instead of a single texture map. Here is a short description of the new parameters: Face subdivs - this determines the number of subdivisions along a triangle's edge. The 3d displacement works by subdividing an object's faces into tiny subtriangles, which are then displaced. Ideally the number of subdivisions should be view-dependent; this is currently not implemented and faces are uniformly subdivided. More subdivs mean more detail, but longer render times (and more memory usage, if caching is used, see below). Use object mtl - this will cause the displacement map to be taken from the object's material instead of the map selected in VRayDisplacementMod. Note that you will need to disable Max's own displacement mapping through the Displacement checkbox in Max's Common parameters roll-out (not the VRay displacement option in the Global switches roll-out which only disables VRay displacement). Keep continuity - using this will try to produce a connected surface, without splits, even between faces of different smoothing groups and/or material IDs. Edge thresh - when Keep continuity is checked, this controls the extent to which maps on faces with different material IDs will be blended. 3D mapping acceleration - None means no acceleration whatsoever, meaning that the displacement map will be evaluated each time VRay needs to check its value; this will not take any additional memory but usually will be very slow. Linear cache will store the displacement values for the subtriangles of a face in a cache, without organizing them in any special way; Quadtree cache also

Welcome to VRay (starting page)

stores these values, but organizes them in a quad tree, so that parts that are not actually intersected by a ray can be skipped quickly. The quadtree cache takes more memory than the linear cache, but is usually faster. Also, when using the quadtree cache, the Face subdivs are internally rounded up to the nearest power of two (2, 4, 8, 16, 32, 64, 128 etc). Cache size - the maximum number of faces (of the original object, not displaced sub-triangles) that can be stored in the cache. The actual memory used by the cache depends both on this number, and the Face subdivs. Precalc level - usually VRay will compute the displacement function for a subtriangle only when it needs its value; this can reduce the efficiency of the quadtree cache. Therefore VRay can precompute the displacement function for a larger part of the triangle, so that it is readily available later on. (*) A new option Check sample visibility added to the irradiance map parameters. This may be used to prevent light leaking from under thin walls etc with the irradiance map. (*) A new option Smooth surface shadows added to VRayShadow and VRayLight. This is aimed at preventing self-shadowing artifacts resulting from low polygon counts. (*) VRay will now check for missing map files and will put up a dialog box listing the missing files. (*) VRayMtl has been added to the Basic version.

Build 1.09.02e
(*) The authorization dialog did not appear if VRay is not authorized. (*) Some additional changes to the translucency algorithm. (*) Additional parameter Energy preservation mode added to VRayMtl.The RGB mode is the current method for balancing diffuse/reflected/refracted light (for example green reflections would tint the diffuse color to magenta). The new Monochrome mode preserves the color hue and only adjusts the intensity. (*) Global switches roll-up added (*) A new parameter Interval center was added to the motion blur parameters. This defines where the center of the motion blur interval is (0.0 is the start of a frame, 1.0 is the end of a frame). (*) Photon maps did not work with VRay materials as submaterials (in a Multi/ Subobject material, for example) Build 1.09.02d (*) Fixes a single bug in 1.09.02x - the primary GI multiplier was squared by mistake, leading to darker images if less than 1.0 Build 1.09.02c (*) Fixes a single bug in 1.09.02b - caustics did not appear on VRay materials. Build 1.09.02b (*) Fixes a single bug in 1.09.02a - simple two level AA did not work properly. Build 1.09.02a (*) Spherical camera rendered very slowly with large FOV (*) Receive shadows did not working properly on transparent objects

Welcome to VRay (starting page)

(*) When caustics/global photon maps were used, some photons remained trapped on the light surface (*) VRayLights with Store with irradiance map checked did not produce indirect illumination with Direct GI (*) VRayLights with Store with irradiance map now work much better with bump maps (*) VRayLights and shadows from other lights used to behave in an unpredictable way (*) Environment maps with Object XYZ/World XYZ/Explicit map channel mapping types did not render (*) VRayMtl did not respect the specular/diffuse settings of the light (*) Fixed severe memory leak with instanced objects in animation (*) Bug with matte objects when alpha contribution is different from -1.0 or 1.0 (bug in 1.09.x only) (*) Caustics and photon maps did not work with Direct lights (Note: Direct lights do NOT need inverse square fallof and high multipliers in order to produce correct caustics and photon illumination) (*) There were some differences in the GI produced with photon maps and with irradiance maps (*) VRayLights will take in account light brightness, size, distance and material at the shaded point when determinig the number of samples (means that dim, small and distant vraylights and dark vray materials will render faster). This means scenes with multiple VRayLights will render faster on average. (*) Objects with Visible to camera unchecked did not render properly with atmospherics (*) Sometimes VRMaxSpawner did not load its settings properly (*) Optimized adaptive antialiasing - works better with fuzzy effects (dof, moblur etc) (*) Some bugs in the translucency algorithm were fixed Interpolated glossy reflections/refractions/translucency VRay is now capable of using interpolation for glossy reflections, refractions and translucency. This means that you can create images using these effects very quickly (although not as accurately). The interpolation method used is very similar to VRay's irradiance map - it uses the same basic data structure and sampling algorithms. The interpolation can be controlled by three new parameters in VRayMtl: Use interpolation - when this is on (the default is Off), VRay will use interpolation for fuzzy material effects. Note that Irradiance map must be turned on for this to work. Color threshold - controls the sensitivity of the adaptive algorithm to changes in the interpolated effect. This is similar to the color threshold for the irradiance map Interpolation samples - this controls how many samples will be taken in account when interpolating. This is similar to the interpolation samples parameter of the irradiance map. Note: while the interpolation algorithm used can produce acceptable results

Welcome to VRay (starting page)

quite quickly, bear in mind that it is just a cheat. As such, it has some disadvantages/limitations: (*) it will blur the fuzzy effect more than it actually is (*) it may miss small details in the fuzzy effect (*) it will not work very well with extreme motion blur or DOF (*) do not use interpolation with Bucket-mode irradiance map - you will get an exception (we hope to have this fixed) The interpolation will work best for images without DOF and motion blur, and for large flat objects.

Build 1.09.01c
New features in VRay (*) This version of VRay is compiled with the Intel C++ compiler; this should increase the overall speed of VRay by a few percent; exact timings are still to be performed. Important note: the .zip file contains libmmd.dll, a file containing the Intel math library and required by programs compiled with the Intel compiler; it must be copied to Max's ROOT folder. If you have Max 4.26 or Max 5 you should already have this file and there is no need to copy it. (*) Fixed some issues with displacement and irradiance maps (*) Fixed some issues with instance rendering and motion blur/displacement (*) A bug in VRayMap that caused weird effects when Reflect on back side was on (*) The motion blur interval has been centered around the middle of the frames, instead of being placed in the beginning (*) The irradiance map calculation is displayed in the old bright/dark mode, instead of marking the samples with red color (*) The default value for the secondary GI multiplier is 0.5; this produces images with more contrast. (*) Fixed a potential memory leak in VRayShadow (*) An option Show direct light has been added to the irradiance map to preview the first-bounce direct light; this option is available only when "Show calc. phase" is on; note that calculating direct light for first diffuse bounces is not necessary and may slow things down - it was added simply as a preview convenience. (*) Some optimizations of VRayMtl to speed up photon tracing in the case of many lights (*) A presets list has been added to the irradiance map parameters; currently it features the following presets - "Custom", "Very low", "Low", "Medium", "Medium - animation", "High", "High - animation", "Very high". The default settings of the irradiance map correspond to the "Medium" preset. The presets change the following parameters: Min rate, Max rate, and Color/Normal/ Distance thresholds. If a preset other than "Custom" is selected, these parameters are greyed and cannot be changed. The "Medium - animation" and "High - animation" presets are useful for animations with moving objects. Note that for flicker-free animations Hemispheric subdivs needs to be high enough to

Welcome to VRay (starting page)

avoid noise. (*) The Environment rollout has been split in two parts - a separate environment for GI only (skylight) and a different environment for reflections/ refractions etc. (*) The adaptive early termination algorithm of the QMC sampler has been improved (the early termination algorithm allows VRay to take fewer samples than the amount given by the user if that amount is too high for a given value); a new parameter Min. samples was added to the QMC sampler roll-out. This parameter sets the minimum number of samples before the adaptive early termination algorithm kicks in (the algorithm needs a certain amount of samples to work reliably, in previous builds too few samples could cause increased noise). Also the default values were changed. The new defaults allow one to use high subdivs for things like DOF, GI, glossy reflections etc; the early termination algorithm will automatically reduce the number of samples where the full amount is not required. (*) MaxScript support was added to VRayMtl and VRayLight; to see the available parameters type "showProperties x" in the MaxScript Listener, where "x" is any vray material or light. New features in Distributed Rendering - please read carefully (*) New spawner. (*) Added new feature that lets you enable/disable servers during the distributed rendering process. All you have to do is just double-click or rightclick and enable or disable the server and it should run fine. (*) More detailed information during the rendering process and some minor interface fancies. (*) Bug fixes. The newest thing about this build is the new MAX spawner. The great thing about it is that the same EXE file can now be run not only as a standard application but it can be run as a Windows service. Another new thing about it is the settings scheme is changed (.ini files are now used) and some of you may need to manually tweak the settings. Provided you will find the old spawner for those who may experience problems running the new one. We would greatly appreciate if you report any such problems to us at vray@chaosgroup.com <mailto:vray@chaosgroup.com>. There are also a few batch files that will help you get the new spawner started. However, we will cover manual installation as well for those who have problems. Running the new spawner as a standalone application First copy the VRaySpawner.exe and the batch files to your MAXROOT directory. Run the VRaySpawner.exe without any parameters and it should run fine as a standalone application. There is no interface in this c build so in order to stop it you will have to kill it. Running the new spawner as a windows service First copy the VRaySpawner.exe and the batch files to your MAXROOT directory. In order to use the spawner as a service you will need to first register it to the windows service manager. This is done in a very simple way by running the INSTALL_SERVICE.BAT file. What it does is it runs

Welcome to VRay (starting page)

VRaySpawner.exe -service which registers it. But this is just registering - this does not start the service. You need to go through this procedure only once. Now its time to start the service. In order to start it you will have to go the Windows Service manager through Start Menu/Settings/Control panel/Administrative tools/Services . In the list of available services find the VRaySpawner service and start it. Please note that you will not see the standard MAX application minimized as it used to show up before, unless you enable the Allow service to interact with desktop option in the Service Properties dialog. Now you can have your service run automatically the moment the system boots up by selecting Automatic start up type from the service properties. Important note on file sharing: As most people use DR by sharing map files across their local network it is important to change the default Log On settings of the service. The default Log On is a LocalSystem user which usually does not have any rights to access shared disks in the network. So it would be better to change the Log On user to Administrator or whatever user you use to access your shared disks with maps. If for some reason you would like to remove the VRay service from your system you can do so by running the UNINSTALL_SERVICE.BAT file. What it does is it runs: VRaySpawner.exe -unregserver Tweaking the settings of the new spawner and VRayNet system Settings are no longer read from the registry. They are now being read from an INI file which can easily be copied across your network to all of your render servers if they are setup up in a similar manner. If the INI file is missing, the spawner and the VRayNet modules will attempt to generate and use default settings that should run smoothly in most cases. In any case - you can see all the spawner activity in the c:\VRSpawner.LOG file. The name of the INI file is VRayNet.INI and it must be found in the MAXROOT directory. Here is a step-by-step summary of what you need to do to make the new spawner and VRayNet work. Setting up your RENDER SERVERS: 1. Copy the VRaySpawner.exe and the batch files to your MAXROOT directory as well as all the plugins to the appropriate places (VRay40.DLL to the MAXROOT; VRender40.dlr and VRayNet40.dlu to the plugins directory) 2. Register the spawner service by running INSTALL_SERVICE.BAT 3. Run the service from Start Menu/Settings/Control panel/Administrative tools/ Services 4. [Optional]Tweak the VRayNet.INI file which must be placed in the MAXROOT directory. Setting up your workstations 1. Copy the VRaySpawner.exe and the batch files to your MAXROOT directory as well as all the plugins to the appropriate places 2. [Optional]Tweak the VRayNet.INI file which must be placed in the MAXROOT directory.

Welcome to VRay (starting page)

Build 1.09.01b (*) Sometimes with low settings the irradiance map could produce black spots and faces. (*) Sometimes VRay would crash with motion blur if objects depend on other objects. Build 1.09.01a (*) True instance rendering is supported (*) Global photon maps are supported (*) Irradiance map algorithm has been improved (*) VRayMtl has been optimized to handle secondary light bounces more efficiently (by using Russian roulette rejection). When using VRayMtl, you can use high values for the depth of secondary diffuse reflections for the fraction of the time this took in previous builds. (*) Distributed rendering has been improved (*) Added the option to automatically save the irradiance/caustic/photon maps at the end of rendering. Additionally, some small bugs have been corrected and some interface improvements were made (mostly in VRayLights). There are a few sample files in this distribution. They are intended to demonstrate the usage of the various parameters of VRay. Please do not distribute these files. Although most can be downloaded freely from the internet, they are for learning purposes only! Purpose of this test build In addition to testing the new features, the purpose of this build is make sure all other features work as expected. Another important purpose of this build is to determine suitable default values for the new parameters and those with modified action. These are the settings of the irradiance map (color and distance thresholds, min/max rate, randomized sampling, usage of current pass samples, interpolation type). Instance rendering VRay now supports efficient rendering of instanced objects. Instead of replicating all the face of these objects as render primitives, the instanced objects themselves are treated as render primitves. Note that depending on the scene complexity (the density and orientation of instances) rendering true instances may be slower than replicating them. Use instance rendering only when RAM is an issue and your scene will not otherwise fit in memory. Instancing is supported for static, motion-blurred and displaced objects. Instance rendering is controlled by the Instanced objects option in the System roll-out. Global photon mapping Global photon mapping is intended mostly for interior or semi-interior scenes, where there is a lot of light bouncing around. The global photon map is a crude approximation of the global illumination in the scene, computed by tracing rays from light sources and storing the hit points with the scene geometry. Usually the photon map does not provide smooth enough approximation to be displayed directly, however it can be used to accelerate GI by giving an approximation for

Welcome to VRay (starting page)

secondary diffuse bounces. Currently the global photon map works only with VRay materials. Support for Standard materials will be added shortly (although this will come at the cost of increased rendering time). In order to use the photon map, you must also tell the lights in your scene to emit photons; this is done via the Light Settings dialog, in the same way as with the caustics photon map. There is an additional roll-up in VRay's parameters dedicated to the global photon map. Normally the global photon map is disabled. You can enable it by selecting the "Global photon map" option for first or secondary diffuse bounces in the Indirect Illumination roll-out. If you select "Global photon map" for first diffuse bounces, you will be able to see directly what the photon map looks like. This is useful when tuning the parameters of the photon map. For the final rendering, you should use Direct GI or Irradiance map with "Global photon map" selected for secondary diffuse bounces. Parameters of the global photon map: Bounces - the number of light bounces approximated by the map Auto search dist - when this is on, VRay will try to deduce a suitable value for Search dist; currently this is not done in a very intelligent way and the computed value may be too small to be useful Search dist - this parameter is similar to the Search dist parameter of the caustics photon map; it is the range in which VRay will look for photons when evaluating the irradiance at a surface point. Max photons - this parameter is similar to the Max photons parameter of the caustic photon map; it is the maximum number of photons that VRay will look for when evaluating irradiance at a surface point. Larger values will smooth out the result from the global photon map, smaller values will produce noiser results. Multiplier - a multiplier for the result, returned by the global photon map Convert to irradiance map - when this is checked, VRay will precompute the surface irradiance at the location of each photon; this allows only a small number of photons (3-10) to be used later on when rendering Interp samples - when the photon map is converted to an irradiance map, this is the number of samples that will be used during rendering; this is similar to the Interpolation samples parameter of the irradiance map Convex hull area estimate - by default VRay will use a very simple rule to deduce the area covered by nearby photons at a given point; while it is fast, it produces inacurate results near edges and corners - GI will be incorrectly darkened at these areas. Using the convex hull of the photons as an estimate of the area covered by them produces much more pleasing results, although it is somewhat slower. Notes on photon map usage Currently the irradiance map works only with VRay materials. In addition to selecting the global photon map for primary or secondary diffuse bounces, you must also select the lights that will emit photons. This is controled from the Light settings dialog in VRay's System roll-out. The number of emitted

Welcome to VRay (starting page)

photons determine the detail captured by the photon map. Usually you can get away with a low number of photons, since you only need a crude approximation of GI for the secondary diffuse bounces. Also, VRayLights are more handy to work with, since you don't need to work with super-high multipliers. Currently, skylight cannot be simulated with global photon maps. Irradiance map The irradiance map algorithm has been improved and some new options have been added. The algorithm for detection of changes in irradiance as well as the distance to other objects (the effect of Color and Distance thresholds) has been improved, as well as the algorithm for interpolating the computed irradiance map. This allows you to produce smooth images with much more detail for significantly less rendering time. There are now two separate values for the number of interpolation samples used during the calculation of the irradiance map and the final rendering phase. This allows to use a small number of samples when calculating the map (and thus speeding the calculation process) and to use a larger number during rendering in order to get a smoother result. The number of interpolation samples used when calculating the irradiance map is set from the Advanced Irradiance Map parameters roll-out. The way GI samples are looked up during render has changed, so that "density bias" is avoided. In previous versions, the nearest N samples were looked up (where N is the value of the Interpolation samples parameter). This caused problems in places where sample density changed abruptly - more samples would be chosen on one side of the shaded point, thus producing an incorrect value. Now VRay will try to locate samples in a more even manner around the shaded point. This is somewhat slow, and at times can get excessively slow, if it is impossible to find evenly distributed samples. This will probably get better in next verisions, for now you have the option of going back to the original sampling method by checking the Simple sample lookup option the Advanced Irradiance map parameters. In previous builds, the irradiance map was computed in several passes and each pass had access to the GI samples collected during previous passes, but not to samples collected earlier during the same pass. While this allows for easy parallelization and guarantees that two renderings of the same frame always produce the same result, it means that some parts of the image are sampled much more densely than is strictly necessary. In this build, VRay can also use the GI samples collected earlier during a given irradiance pass. This can drastically reduce the number of GI samples (and hence the render time). There are a few drawbacks however. On multiprocessor machines, several different threads need to access and modify the same data structure (the irradiance map); due to the asynchronous nature of this process, the samples may change their places for each rendering of the image. Furthermore, the position of the GI samples with respect to the image plane can change drastically from one frame to another in animations, which can lead to excessive flickering with low settings. That is why you have the option of turning this feature off by

Welcome to VRay (starting page)

unchecking the "Use current pass samples" option in the Advanced Irradiance Map parameters. This feature combined with the new algorithm for sample placing allows you to use high Max rate for the irradiance map without such a great performance hit. The sample density will be automatically determined based on the Color, Normal and Distance thresholds. Using Min Rate -3 and Max Rate 0 usually works well. We have found that the resulting quality can be fine-tuned through the three thresholds (the most important of which is the Color threshold) much more effectively. The Randomize samples parameters has been moved to the Advanced Irradiance Map roll-out. A new "bucketed" mode was added to the irradiance map. In this mode a new irradiance map is computed for each separate bucket, as opposed to computing one map for the entire image. The advantage of this is that it requires less memory and allows GI calculations to be distributed across a network. A drawback is that with low settings you may get different results on the two sides of bucket edges. Since the map in each bucket is discarded after it is rendered, the resulting irradiance map cannot be saved. Some new options have been added to the irradiance map: Show calc. phase - when this is unchecked, the calculation of the irradiance map will not be visualized. It is recommended that you turn this off when using the bucketed irradiance map mode. The way calculation is displayed has also changed - newly added samples are colored in red. This means that the first irradiance pass will look almost completely red - this is normal. Note that displaying the irradiance map takes some time and can increase the rendering time, especially for large-resolution images. You can use it while tuning the parameters of the irradiance map and switch it off for the final rendering. Note that the default value of this parameter is off. Autosave on render end - when this is checked, the irradiance map will automatically be saved to a file when rendering is complete. Click the Save As button to set the file name. Switch to saved map - when this is checked together with Autosave on render end, the mode of the irradiance map will be automatically set to From file with the source file name matching that of the newly saved irradiance map. Use current pass samples - this will allow VRay to use GI samples computed earlier during a given irradiance pass. Simple sample lookup - this will cause VRay to use the method for sample lookup used in previous versions. While it is fast, it can produce artifacts in places where sample density changes abruptly. Use this if the new method is too slow. Notes on irradiance map usage The default values for irradiance map parameters have changed. They have been tuned to produce a good and fast rendering of a standard teapot on a ground plane. The default values will produce relatively good results in many cases. One of the purposes of this build is to find good default values; if you think that other values would make more sense - please let us know. At the default values for the Max rate (which is now 0), the irradiance map will

Welcome to VRay (starting page)

be able to pick up details with the size of less than or equal to one pixel. If you have in your image finer features (less than one pixel wide), you should increase this value. With VRay's new improved sampling, it is feasible to set the Max Rate to 1 or 2 and get a super-detailed irradiance map in decent time. On the other hand, if your scene does not contain a lot of detail, you can decrease this value. The most important parameters of the irradiance map are the Color threshold and the Hemispheric subdivs. The color threshold defines the sensitivity to changes in GI, while the hemispheric subdivs determine the quality of the GI samples. In general, the hemispheric subdivs should be high enough to produce a smooth (or only slightly noisy) image when the same number is used with Direct GI. If this value is too low, the resulting GI samples will vary greatly, which will confuse the adaptive irradiance map sampler and will cause it to take many unnecessary samples. Use the Normal and Distance thresholds when your scene has small details that the Color threshold alone cannot detect properly. This can happen if you have a small feature (a thin ledge or something similar) around which irradiance changes abruptly, but only in a small region. We have found that these parameters need to be changed only in a very few cases. You can however set the Distance threshold to 0.0 to speed up the calculations; often the Color and Normal thresholds alone are able to detect irradiance changes near corners and edges so that the additional samples caused by the Distance threshold are often unnecessary. The lowest quality values for the thresholds are as follows: Color threshold 1.0, Normal threshold - 1.0, Distance threshold - 0.0 Using these settings will cause no (or only a very few) additional samples beyond the first irradiance pass. The highest quality settings are: Color threshold - 0.0, Normal threshold - 0.0, Distance threshold - 1.0 These settings will cause a new sample to be taken at every single point. Distributed rendering First, let's start by saying that DR engine (VRayNet) has been rewritten from scratch. The protocol and approach totally redone. Here is the list of major changes that concern the user-side. - Much better and faster negotiations between client and server boxes. Things have been optimized down to packet-level so control communication couldnt really be much faster. One can check this with a simple scene where there is little rendering required and a lot of communication and compare the old and the new version. Image updates have been gathered in bulks in order to optimize better the flow of data. At first one may think that the refresh is slow but on second thought the amount of refresh data is much bigger and faster than before. - Auto-announce/include mechanism was added to add servers on the fly. Consider rendering a heavy scene and you have 2 render servers. You can add a third render server on the fly to the first 2 and it should be able to continue the rendering process along with the first 2 servers. In order to use this one

Welcome to VRay (starting page)

should enable the Promote new servers checkbox in the SYSTEM settings of the VRayNet rollup. - Better handling of failed servers. A locking mechanism that prevents many users from accessing a single render server. This is not really working well yet as we are still working on it. Better support of servers during their loading. Before there used to be problems if a render server has not fully loaded and we would attempt to use it - it used to hang or crash. A locking mechanism now prevents it from being used before it has fully and properly booted and if we try to use it the user is being notified of the problem. - Status update has been added during the first 2 phases (BeginSequence and BeginFrame). This is when here VRay calculates Photon maps and Irradiance maps. Now DR engine will transmit every now and then the status of each server and the completion percent when possible. This would let you know how it is progressing and if there are any problems. - Ability to enable/disable render servers on the fly through the DR settings interface. This is currently being disabled as we are resolving some problems with MAX threads locking. Will be included in the next minor update. - As you may know - a bucket irradiance map calculation support has been added. This is especially useful for distribution of irradiance maps across render servers. The technology, however, does not allow proper smoothing across buckets so this is mainly for preview purposes. We will definitely add a mechanism to distribute both irradiance maps and photon maps. Coming soon! - Much better and improved interface. - First internal, then external DR queue manager for queuing jobs (mostly for stills rendering) to be rendered with VRay DR. - Tweaking, setting servers from client computer for easy maintenance - Automatic texture upload of missing bitmaps on remote render servers. - Last but not least - distributed calculations of irradiance maps and photon maps Sample files Please do not distribute these example files. Use them to study VRay's settings. Play with the various parameters of VRay's irradiance and photon maps. ex_sponza.max - this is the famous Sponza Atrium model by Marko Dabrovic, which you can download from http://hdri.cgtechniques.com/~sponza/ The scene is set up to render with photon mapping. Once you render a single image, you can save out the photon map and use the saved map to render other views. There are several cameras in the scene looking at interesting places. ex_cbox.max - this is a simple cornell box -like scene. It's purpose is to demonstrate the ability of the irradiance map to pick up changes in irradiance. The area light is set to store its illumination in the irradiance map. Suggested experiments: Change the Color threshold to different values (0.5, 0.6, 0.3, 0.2) and see the result. Select Global photon map for first diffuse bounces to see the photon map.

Welcome to VRay (starting page)

Turn on Show calc phase for the irradiance map to see the calculation passes (notice the increased render time when this is on). Check Simple sample lookup and notice the artifacts around shadow edges as well as (a little) decreased render time. Set the Max rate of the irradiance map to -1, -2, -3. Set the irradiance map mode to Bucket mode to force a different irradiance map for each bucket. Change the Bounces parameter for the global photon map (5, 10, 15) and compare rendering times and rendered result. ex_winosi.max - this is the test scene from the WinOSI web site, which you can download from http://www.winosi.onlinehome.de/ The scene is set up to render with photon mapping and caustics. ex_shadows.max - other simple test scenes to show off the ability of the irradiance map to pick up details.

VRay Features

VRay Features

Home

The VRay raytracer is available in two packages, the Basic Package and the Advanced Package. The Basic Package with its balanced set of features and low price is ideal for students and amateur artists. The Advanced Package includes several additional capabilities and is aimed at professional artists.

Features included in the Basic Package


q

True raytraced reflections and refractions (See: VRayMap) Glossy reflections and refractions (See: VRayMap) Area shadows (soft shadows). Includes box and sphere emitters. (See: VRayShadow) Indirect Illumination (global illumination, global lighting). Different approaches include direct computation (brute force), and irradiance maps. (See: Indirect illumination) Motion Blur. Includes Quasi-Monte Carlo sampling approach (See: Motion blur) Depth-Of-Field camera effect. (See: DOF) Antialiasing. Includes fixed, simple 2-level and adaptive approaches. (See: Image sampler) Caustics (See: Caustics ) G-Buffer (RGBA, material/object ID, Z-buffer, velocity etc.) (See: GBuffer ) An optimized material for faster rendering and special effects like translucency (See: VRay material)

Features included in the Advanced Package


Includes all basic features plus:
q

G-buffer based antialiasing. (See: Image sampler)

VRay Features

Photon mapping (See: Global photon map) Reusable irradiance maps (save and load support). Incremental sampling for fly-through animations. (See: Indirect illumination) Reusable caustic and global photon maps (save and load support). (See: Caustics and Global photon map) Motion blur with analytic sampling (See: Motion blur) True HDRI support. Includes *.hdr, *.rad image loader with proper texture coordinates handling for both cubic and angular maps. Map your images directly without distortions or cropping. Native area lights for physically correct illumination. (See: VRayLight) Native material for more physically accurate and faster materials calculations. (See: VRay material) Distributed rendering for utilizing all of your studios computers. Based only on TCP/IP enables one to connect through the Internet as well. (See: Distributed rendering) Different camera types: fish-eye, spherical, cylindrical and cubic cameras (See: Camera) Displacement mapping. Includes a fast 2D bitmap algorithm as well as true 3D displacement mapping. (See: Displacement mapping)

Installation

Installation
System requirements Automatic installation Manual installation 3dsmax 4.x 3dsmax 5.x 3dsmax 6.x Installing distributed rendering

Home

System requirements
q

A computer with 3dsmax 4/5/6/7 or VIZ 3/4/5. Windows 2000/Windows XP/Windows 2003 Server Intel Penium II or compatible processor at 400 MHz minimum (dual Pentium III or later recommended) 128 MB RAM and 350 MB swap minimum - recommended 1 GB or more RAM, 2.5 GB or more swap

Automatic installation
In order to install VRay automatically double-click on the installation file and follow the instructions. During the installation process you will be prompted for the root directory of 3dsmax and a directory where to install the VRay plugin files.

Manual installation
3dsmax 4.x
Required files libmmd.dll* cgauth50.dll [maxroot] [maxroot] Intel C++ compiler math library VRay authorization library

Installation

vray40.dll vrender40.dll Additional plugins vrayfur40.dlo vrayplane40. dlo vraytoon40.dlo DR files vraydummy. max

[maxroot] [maxroot] \plugins

VRay core API implementation VRay for 3dsmax renderer

[maxroot] \plugins Fur plugin for 3dsmax \vrayplugins [maxroot] Infinite plane plugin \plugins for 3dsmax \vrayplugins [maxroot] Toon atmoshperic \plugins plugin for 3dsmax \vrayplugins Empty scene for booting up 3dsmax in server mode Program to start 3dsmax in server mode

[maxroot]

vrayspawner40. [maxroot] exe

* You should already have (an older version of) the libmmd.dll file in the 3dsmax root folder. Copy or rename the file before placing the libmmd.dll file from the VRay installation. If you experience any problems with 3dsmax, return the original file.

If you want to use the additional VRay plugins (VRayFur, VRayPlane, VRayToon, add the path to them to the plugin.ini file in the root folder of 3dsmax: [Directories] Standard MAX plug-ins=<maxroot>\StdPlugs Additional MAX plug-ins=<maxroot>\plugins ..... VRayPlugins=<maxroot>\plugins\vrayplugins where <maxroot> is the root folder of 3dsmax. Note that the vrayplugins folder must be listed after the plugins folder itself.

Installation

3dsmax 5.x
Required files libmmd.dll* cgauth50.dll vray50.dll vrender50.dll Additional plugins vrayfur50.dlo vrayplane50. dlo vraytoon50.dlo DR files vraydummy. max [maxroot] Empty scene for booting up 3dsmax in server mode Program to start 3dsmax in server mode [maxroot] \plugins Fur plugin for 3dsmax \vrayplugins [maxroot] Infinite plane plugin \plugins for 3dsmax \vrayplugins [maxroot] Toon atmoshperic \plugins plugin for 3dsmax \vrayplugins [maxroot] [maxroot] [maxroot] [maxroot] \plugins Intel C++ compiler math library VRay authorization library VRay core API implementation VRay for 3dsmax renderer

vrayspawner50. [maxroot] exe

* You should already have (an older version of) the libmmd.dll file in the 3dsmax root folder. Copy or rename the file before placing the libmmd.dll file from the VRay installation. If you experience any problems with 3dsmax, return the original file.

If you want to use the additional VRay plugins (VRayFur, VRayPlane, VRayToon, add the path to them to the plugin.ini file in the root folder of 3dsmax:

Installation

[Directories] Standard MAX plug-ins=<maxroot>\StdPlugs Additional MAX plug-ins=<maxroot>\plugins ..... VRayPlugins=<maxroot>\plugins\vrayplugins where <maxroot> is the root folder of 3dsmax. Note that the vrayplugins folder must be listed after the plugins folder itself.

3dsmax 6.x/7.x
The following files must be placed in the following directories: Required files libmmd.dll* cgauth60.dll vray60.dll vrender60.dll Additional plugins vrayfur60.dlo vrayplane60. dlo vraytoon60.dlo DR files vraydummy60. max [maxroot] Empty scene for booting up 3dsmax in server mode [maxroot] \plugins Fur plugin for 3dsmax \vrayplugins [maxroot] Infinite plane plugin \plugins for 3dsmax \vrayplugins [maxroot] Toon atmoshperic \plugins plugin for 3dsmax \vrayplugins [maxroot] [maxroot] [maxroot] [maxroot] \plugins Intel C++ compiler math library VRay authorization library VRay core API implementation VRay for 3dsmax renderer

Installation

vraydummy60. xml

[maxroot]

Helper file for booting up 3dsmax in server mode Program to start 3dsmax in server mode

vrayspawner60. [maxroot] exe

* You should already have (an older version of) the libmmd.dll file in the 3dsmax root folder. Copy or rename the file before placing the libmmd.dll file from the VRay installation. If you experience any problems with 3dsmax, return the original file.

If you want to use the additional VRay plugins (VRayFur, VRayPlane, VRayToon, add the path to them to the plugin.ini file in the root folder of 3dsmax: [Directories] Standard MAX plug-ins=<maxroot>\StdPlugs Additional MAX plug-ins=<maxroot>\plugins ..... VRayPlugins=<maxroot>\plugins\vrayplugins where <maxroot> is the root folder of 3dsmax. Note that the vrayplugins folder must be listed after the plugins folder itself.

Installing distributed rendering (DR) for 3dsmax R4/R5/R6


You don't need to set up the render client, since it automatically takes part in the DR. For the render servers, follow these steps: 1. Install VRay on all the render servers you want to use for DR. 2. If you are using Autodesk VIZ for rendering, you need to create a file vrayspawer.ini in the root folder of Viz on each render server and add the following text in it: [Directories] AppName=<path to the 3dsviz.exe file> Replace the text in brackets <> with the full path to the file 3dsviz.exe, for example C:\Program files\Viz4\3dsviz.exe 3. On each render server, start the file vrayspawnerXX.exe (where XX is 40, 50, or 60 depending on your 3dsmax version). This file should be in the root folder of 3dsmax.

Installation

That concludes the installation of VRay DR on the render slaves. You don't need to start the vrayspawnerXX.exe file on the client machine, since it automatically takes part in the distributed rendering. See the Distributed rendering section for more information.

Licensing system

V-Ray licensing system


General

Home

The V-Ray licensing system is an independent licensing routine tied to the computer it is being granted for and consists of two parts - the V-Ray floating license server and the V-Ray renderer itself (the client). The communication between the two is based on the TCP/IP protocol, even if the license server and the V-Ray renderer are on the same computer. This means that in order for the licensing to work, the computer must have TCP/IP installed properly. The license we are issuing is for a particular node (computer) where the license server will be running. Afterwards, this license server can authorize any node that has access to it via TCP/IP within the granted number of V-Ray copies. Once the V-Ray license has been issued, it can not be transferred to any other node. However, it can grant any other node the license to use V-Ray provided that the total number of clients using the licensing server does not exceed the number of licenses granted for this particular node. Any number of V-Ray license servers can run simultaneously over the network without any limitation and any number of V-Ray renderers can use any of the license servers. This means that if you have 3 license servers each having a license for 4 copies, any 4 computers will be able to use any of those 3 servers at the same time, providing total number of 12 running copies of V-Ray at the same time.

Installation
Installing the V-Ray license server
The V-Ray floating license server consists of a single executable file that has to be run prior to launching the V-Ray renderer. You can install the executable in any directory that you want. The installer places this file (VRLServer.exe) in the root folder of 3dsmax. When run for the first time it will complain that it can not find a proper license and will open a dialog where one can find the data that has to be sent to us to obtain a proper license. We call that the license request. Send it to vray@chaosgroup.com and we will send you the license, which you should paste into the field provided in the same dialog.

Licensing system

All of the settings are saved in a plain text file "VRFLServer.ini" which is placed in a "ChaosGroup" directory located in the "Common files" directory provided by Windows, which is typically found in the "Program Files" directory. Thus usually the full name of the settings file is "C:\Program Files \Common Files\ChaosGroup\VRFLServer.ini". In case of any problems the user can edit the file directly, but we strongly recommend that, unless the user is experienced, they should not do so.

Installing the V-Ray renderer client


When run for the first time the V-Ray renderer will prompt for the license server name or IP where the V-Ray license server is running. Make sure you SAVE the settings once you enter them. You will need to close and reopen 3dsmax for the changes to take effect. All of the V-Ray client settings are saved in the "VRFLClient.ini" file in the "Common Files\ChaosGroup" directory which is usually located in the "Program files" directory. Thus the full file name of the settings file usually is "C:\Program Files\Common Files\ChaosGroup\VRFLClient.ini". It can be edited by hand but we strongly advise you not to do so, unless you are certain of what you are doing.

Examples
Typical single-computer licensing.
Start the V-Ray license server on your computer and enter the license you have obtained from us. Afterwards run 3dsmax and open the V-Ray renderer settings. Enter the "127.0.0.1" IP address as your license server. Restart 3dsmax. Now V-Ray should be running fine, provided that no other V-Ray copy is connected to your computer. If you wish to start the license server automatically, add a shortcut to it in the Startup folder of the Start menu.

Sharing a license across your network of computers.


Start the V-Ray license server on a suitable computer in your network (typically this would be a server machine). Send us the license request data and enter the license you have obtained from us. Afterwards run 3dsmax on any computer and open the V-Ray renderer settings. Enter the IP address or the name of the computer where you have the license serer installed. Make sure you save the settings once you enter them. Restart 3dsmax. Now V-Ray should be running fine, provided that the total number of running V-Ray copies does not exceed the number of granted

Licensing system

licenses for the licensing server.

Troubleshooting
Send an email to vray@chaosgroup.com for any assistance.

Troubleshooting

Troubleshooting

Home

If you experience any problems not discussed below while using VRay, please write to vray@chaosgroup.com

My system locks up and freezes while rendering I get an "unhandled exception" message window while rendering Excessive memory usage while rendering I get splotches in my rendering when using the irradiance map

My system locks up and freezes while rendering


This is most likely a hardware problem. VRay cannot cause system freeze by itself. The worst that VRay can do is crash 3dsmax. Check your memory chips and/or your CPU temperature.

I get an "unhandled exception" message window while rendering:

The exact text in the message box may differ, depending on where in VRay the error occurred. There are different reasons for this message to appear: Insufficient RAM - one of the most common reasons for the unhandled exception. See the section on Excessive memory usage below for more details. CPU overheating or RAM defects - this is another reason for unhandled exceptions that has become quite common recently with the increased clock speed of moden processors. It is characterized by random crashes during rendering and may be quite difficult to

Troubleshooting

distinguish from a software problem. Installing a CPU temperature monitoring software and checking the RAM for defects may help to determine whether the problem is in the hardware or the software.
q

Crashes with motion blur enabled - A common problem is when there are motion-blurred objects depending on one another; in that case, hiding the original object and using a copy of it for rendering helps. Using the native 3dsmax Skylight light type - either on its own, or as a part of the Daylight system. If this is the case, use VRay's own environment dialog to create the skylight effect. Incompatibility with other plugins - if you suspect this is the reason for the error, please write to vray@chaosgroup.com and to the plugin vendor and explain the situation. Please note that the problem might be in the plugin, and not in VRay. Some plugins were specifically coded for the default scanline renderer and may behave unpredictably with VRay. A bug in VRay - if you believe that this is the problem, try to isolate it (if it occurs in a specific situation related to a certain object, material, atmospheric effect etc.) and email the file c:\vraylog.txt as well as the 3dsmax scene to vray@chaosgroup.com

Excessive memory usage while rendering


Like every other program, VRay needs a certain amount of RAM to render the image. Depending on the scene complexity and the render settings, VRay will use varying amounts of RAM. Sometimes, the available system RAM may be less than the amount needed for rendering. In this case, you will most likely get an unhandled exception. You can check the memory usage from the Windows Task Manager. On 32-bit machines, the Windows operating system allows by default up to 1.5 GB for any single process (application). That means that even though you may have more physical RAM (for example 2GB), the operating system will not allow an application to use all of that memory. However, on the Windows XP operating system, you can change this by using the famous /3GB switch in your boot.ini file. This will enable the OS to allocate up to 3 GB of RAM for any given application. Using that switch may allow you to render your scene without using any of the methods below for reducing memory usage. On 64-bit platforms, the 64-bit version of the Windows operating system

Troubleshooting

allows the usage of all available physical memory without limitations. If you cannot use any of these methods to allow more RAM for rendering, the only choice is to reduce the amount that is needed by changing your scene and your VRay settings.The scene elements that take up most of the RAM while rendering can be divided into the following groups:
q

Geometry - scenes with lots of objects and/or triangle counts require more memory to render. There are several ways to reduce this amount:
r

Adjust the raycaster settings in the System rollout (reduce Max. levels, increase Min. leaf size, increase Face/level coefficient, switch from Static to Dynamic Default Geometry). If all else fails, use VRayProxy objects.

Mapping UVW channels - in 3dsmax, every mapping channel takes up the same or larger amount of RAM as the geometry itself. Unused mapping channels can increase RAM usage dramatically, while not affecting the scene in any way. In recent 3dsmax versions, texture channels are generated by default for all objects when they are created. VRay has no control over RAM usage for texture coordinates - you will have to make sure that only the channels you need are actually present in the scene. Using VRayProxy objects is also a solution since in that case texture coordinates are also cached to disk along with the actual geometry. Displacement mapping - objects displaced with the 2d displacement mapping method may require a lot of RAM to render, especially with large displacement maps. If this is the case, use the 3d displacement mapping method. Also, if you have several distinct displacement modifiers with the same displacement map, it is better to replace them with one modifier, applied to all the necessary objects. This is because each modifier will take RAM for the displacement map, separately from other modifiers, even if they have the same map. Bitmaps - these tend to take up large amounts of RAM, especially if the maps are large. Since textures are managed by 3dsmax, VRay has no direct control over their memory usage. However, you can use the Bitmap pager settings of 3dsmax to reduce the RAM taken up by bitmaps. For more information, consult your 3dsmax documentation. Bitmap filtering - Summed area filtering uses much more memory than Pyramidal filtering.

Troubleshooting
q

Shadow maps - these may also take up significant amounts of RAM. Again, these are managed by 3dsmax and VRay has no direct control over their memory usage. To reduce memory usage, you can switch to raytraced VRayShadows instead. Image buffer - large output resolutions require a significant amount of RAM to store the final image. Additional G-Buffer channels increase that amount. There are several ways to reduce this amount:
r

Use the 3dsmax Bitmap pager, if you are rendering to the 3dsmax default VFB. If you use VRay's own VFB, use the Render to VRay raw image file option and then use the VRay raw image file viewer to convert the resulting file to a different format. Render the image in several different passes and stitch the pieces in a compositing program.

Image samplers (AA) - the image sampling algorithms of VRay require some amount of RAM to hold all the data for the sampled image. This amount can be quite large, depending on the chosen bucket size and sampling rate. To reduce that amount:
r

Reduce the bucket size. Switch to a different image sampler - for example, the Adaptive QMC sampler uses less RAM than the Adaptive subdivision sampler.

Global illumination caches - irradiance maps, photon maps and light maps all require additional memory to store them. Each of these has different methods for controlling its memory usage:
r

For the irradiance map - the memory depends on the number of samples in the map; you can reduce this number by using lower Min/Max rate, and more loose threshold values (higher Color threshold, higher Normal threshold, lower Distance threshold). For the photon map - the memory depends on the number of photons stored. You can reduce this number by reducing the Diffuse subdivs for the lights, or by increasing the Max. density. For the light map - increase the Sample size.

Troubleshooting

3dsmax scene - 3dsmax itself stores a lot of information about the scene. VRay has no control over that memory, but here are some things you can do to reduce it:
r

Collapse modifiers to editable meshes Cache animations with a PointCache modifier

I get splotches in my rendering when using the irradiance map


There may be several reasons for splotches when rendering with the irradiance map:
q

Regular noisy splotches - these are usually a result of insufficient Hemispheric subdivisions for the irradiance map. Usually they appear in difficult lighting situations when the default setting is too low. Examples of difficult lighting conditions are small bright sources of indirect light, hdri environments etc. You can avoid these splotches in several ways:
r

If you are using Quasi-Monte Carlo GI for secondary GI bounces, try using another method - the light map or the photon map. Increase the Hemispheric subdivisions for the irradiance map. Note that the effect of the increased subdivisions depends also on the settings of the QMC sampler. Decrease the Noise threshold of the QMC sampler.

Isolated bright splotches - there may be different causes for these:


r

GI caustics - if you have reflective or refractive surfaces in your scene, especially if they are glossy, VRay may try to compute the GI caustics for these surfaces. Since caustics usually require a lot of sampling to get right, there may be splotches. Incorrect or missing UVW coordinates - if some objects in your scene lack UVW coordinates, or the UVW coordinates fall outside the texture map, this can produce splotches or weird colors in the irradiance map. The solution would be to apply correct UVW coordinates to those objects.

VRay and 3dsmax

VRay and 3dsmax

Home Render params

As a rendering plugin for 3dsmax, VRay supports most of the standard 3dsmax features and many of the 3rd party plugins.

MaxScript

MaxScript

Home Render params

Note that MaxScript support is only available for 3dsmax 5.x and later. While VRay still exports all its parameters to MaxScript in 3dsmax 3.x and 3dsmax 4.x, there is no MaxScript access to the current renderer in those version. In 3dsmax 5.x, assuming that your current renderer is set to VRay, you can refer to it from MaxScript using the renderers structure: vr=renderers.current VRay_Adv_1_09_03g:VRay_Adv_1_09_03g showproperties vr .imageSampler_type : integer .fixedRate_subdivs : integer .fixedRate_rand : boolean ............... ............... ............... .options_maxDepth : integer .options_maps : boolean .options_filterMaps : boolean .output_on : boolean .output_width : integer .output_height : integer .output_fileOnly : boolean .output_saveFile : boolean .output_fileName : string .output_saveRawFile : boolean .output_rawFileName : string false Accessing the parameters is fairly easy, for example: vr.gi_on=true true You can also use the following methods for saving/loading irradiance and photon maps (assuming that vr holds an instance of VRay): vr.saveCausticsPhotonMap <filename> vr.saveGlobalPhotonMap <filename> vr.saveIrradianceMap <filename> vr.saveLightCache <filename>

MaxScript

vr.loadIrradianceMap <filename> vr.clearIrradianceMap() vr.clearLightCache()

Texture baking

Texture baking

Home Render params

VRay provides some support for the texture baking mode of 3dsmax. You can use VRay as a texture-baking renderer; however since VRay does not support the 3dsmax Render Elements, obtaining the different lighting components is somewhat different: 1. 2. to 3. to 4. Enable the VRay VFB. Enable the Split GBuffer channels option. Press the Browse button next the option and select the output file name for the baked maps. In the VRay GBuffer/Color mapping rollout, select the channels you want bake. Bake the object as you normally would.

VRay writes out the selected channels to the specified files. Note however, that the 3dsmax VFB will turn out as black. It is recommended that you set the Secondary rays bias from the Global switches rollout to a small positive values when doing texture baking. This wil avoid some artifacts on the edge padding. Newer VRay versions will automatically assume 0.001 as a Secondary rays bias, if you have accidentally left it to 0.0 in texture baking mode.

Unsupported 3dsmax features

Unsupported 3dsmax features

Home Render params

As a rendering plugin for 3dsmax, VRay supports most of the standard 3dsmax features and many of the 3rd party plugins. However, some feautres of 3dsmax are not supported or work only partially. The most common of these are listed below.
Note that the list is not complete; there may be other 3dsmax features which do not work or work only partially with VRay.

In many cases, VRay provides replacements for unsupported standard features; those are noted wherever applicable.

Maps
Raytrace map
This map is not fully supported by VRay; using it with VRay is not recommended as it can lead to artifacts in the image. Use the specific VRayMap instead.

Reflect/refract map
This map is not supported by VRay; using it with VRay is not recommended. VRay does not provide equivalent functionality, but you can use the specific VRayMap instead.

Flat mirror map


This map is not supported by VRay; using it with VRay is not recommended. VRay does not provide equivalent functionality, but you can use the specific VRayMap instead.

Materials
Raytrace material
This material is not fully supported by VRay; using it with VRay is not recommended as it can lead to artifacts in the image. Use the specific VRayMtl instead.

Unsupported 3dsmax features

Advanced lighting override


This material is not supported by VRay. Some of its functionality is available in the VRayMtlWrapper material.

Matte/shadow
VRay only partially supports this material. Specifically, the Opaque Alpha parameter is not supported. The standard Matte/shadow material will also not pick up GI shadows. Instead, extended matte/shadow capabilities for VRay are available in the VRayMtlWrapper material or in the VRay Object Settings.

Shadow types
Raytraced shadows
This shadow type does not work with VRay; using it is not recommended as it can lead to artifacts in the image. Use the specific VRayShadows instead.

Shaders
Translucent Shader
This shader is not supported by VRay; using it is not recommended. Use the translucency options in the VRayMtl material instead.

Antialiasing filters
Plate match/MAX R2
This filter is not supported by VRay. Using it will produce an entirely black image.

Render elements
Currently VRay does not support render elements. However, some of their functionality can be achieved with the channels of the VRay virtual frame buffer. See the GBuffer section for more details.

Exposure control

Unsupported 3dsmax features

VRay supports exposure control only partially. Exposure plugins that require presampling of the image (Automatic exposure, Linear exposure) or separate render elements (Pseudo Color exposure) will not work properly with VRay. Of the standard 3dsmax exposure control plugins, only Logarithmic Exposure control is fully supported. You can also use VRay's own Color mapping mechanism. See the Color mapping section for more details.

Texture baking
VRay supports texture baking only partially. You can use VRay as a Render-totexture renderer, but it will compute only the complete object material. However, you can combine this mode with the VRay VFB to compute additional render elements. See the section on Texture baking for more details.

Lights
Skylight
The standard 3dsmax skylight is not supported by VRay and may crash the rendering if used. Instead, use the Dome mode of VRayLight, or the GI Environment override option in VRay's Environment rollout.

Plugins

Plugins

Home

While VRay works with most of the standard Max lights, materials and maps, it also includes several additional plugins which offer functionality not found in Max itself. They are specially optimized for work with VRay and using them instead of the standard ones can increase rendering speed significantly. The VRay rendering system includes the following plugins for 3dsmax(tm): VRay renderer The VRay renderer plugin A specialized VRay material supporting (glossy) reflections/ refractions, absorption, subsurface scattering etc. A specialized VRay material that allows you to specify additional rendering parameters for any material. An area light plugin A raytraced shadow plugin (sharp and area shadows) A map for adding (glossy) VRay reflections/refractions to non-VRay materials A map for loading HDR images (. hdr file extension) and mapping them as environments A map that shows mesh edges (useful for wireframe-style rendering) A modifier that enables the VRay displacement for an object A plugin that generates simple render-time fur A plugin that allows you to specify render-time geometry that will be loaded from an external file

VRayMtl

VRayMtlWrapper

VRayLight VRayShadows VRayMap

VRayHDRI

VRayEdgesTex VRayDisplacementMod VRayFur VRayProxy

Plugins

VRayPlane VRayToon VRayBmpFilter

A geometry plugin that implements an infinite plane primitive. An atmospheric plugin that produces simple cartoon-style effect. A plugin for loading texture maps without filtering.

Renderer parameters

VRay renderer parameters

Home

VRay is a renderer plugin for 3dsmax. In order to use VRay, you must first select it as your current renderer. You can do that by clicking on the Assign... button in the Current renderers rollout of the Render Scene dialog:

The parameters of the VRay renderer are divided into the following rollouts: VRay Frame Buffer Global switches Image Sampler (Antialiasing) Indirect Illumination (GI) Quasi-Monte Carlo GI Irradiance map Global photon map Light map Caustics Environment QMC sampler G-buffer/Color mapping Camera Default displacement System All of the parameters are also accessible through MaxScript in 3dsmax 5.x and later. Refer to the VRay and MaxScript section for more information.

V-Ray frame buffer

VRay frame buffer

Home Render params Examples

Parameters

Enable built-in frame buffer - Enables the use of built-in V-Ray frame buffer. Due to technical reasons, the original 3dsmax frame buffer still exists and is being created. However, when this feature is turned on - V-Ray will not

V-Ray frame buffer

render any data to the 3dsmax frame buffer. In order to preserve memory consumption we recommend that you set the original 3dsmax resolution to a very low value (like 100x90) and turn off the 3dsmax Virtual Frame Buffer from the common 3dsmax render settings. Get resolution from 3dsmax - this will cause the VRay VFB to take its resolution from the 3dsmax common render settings. Output resolution - this is the resolution that you wish to use with the VRay frame buffer. Render to memory - this will create a V-Ray frame buffer and will use it to store color data that you can observe while rendering and afterwards. If you wish to render really high resolutions that would not fit into memory or that may eat up a lot of your RAM not allowing for the scene to render properly you can turn this feature off and use only "render to V-Ray image file" feature. Render to V-Ray image file - this fature writes directly to an external file that contains V-Ray raw data as it is being rendered. It does not store any data in the RAM, so this feature is very handy when rendering huge resolutions for preserving memory. In order to see what is being rendered turn on the Generate preview setting. Generate preview - this will create a small preview of what is being rendered. If you are not using the V-Ray frame buffer for conserving memoty - you can use this feature to see a small image of what is being actually rendered and stop the rendered if there is anything that looks wrong. Save separate G-Buffer channels - this option allows you to save the channels specified in the G-Buffer rollout into separate files. Use the Browse... button to specify the file.

VFB toolbar
This part of the toolbar sets the currently selected channel, as well as the preview mode. Choose which channels to see with the help of the buttons. Yuo can also view the rendered image in monochromatic mode. This will save the current frame data to a file.You can turn this on and of on-the-fly while rendering.

V-Ray frame buffer

This will create a 3dsmax virtual frame buffer copy of the current VRay frame buffer.You can turn this on and of on-the-fly while rendering. This will force V-Ray to render the closest bucket found to the mouse pointer. Drag the mouse over the V-Ray frame buffer while rendering to see which buckers are rendered first. You can turn this on and of on-the-fly while rendering. This open permanently the info dialog which will give you information about the pixel you right-click the mouse pointer on. If you right-click the mouse pointer over a pixel without turning this setting on - then you will see the info dialog only while yuor mouse button is down This will open a so called "levels control" dialog which will let you define color corrections of various color channels. It will also show the histogram of the currently contained image data in the buffer. Click and drag your mid-button in the histogram to interactively scale the preview. Clears the contents of the frame buffer. Somethimes helpful when startnig a new render to prevent confusion with the previous image.

VFB shortcuts
Here is the list of shortcuts you can use to navigate through the VFB image. Please note that VFB window must have the curent focus for the shortcuts to have effect: Mouse CTRL+LeftClick, CTRL+RightClick Roll the mouse-rollon button up/ down Double-click LeftButton RightClick Description Zoom in/Zoom out Zoom in/Zoom out Zoom to 100% Show the info dialog with the properties of the last pixel clicked. In order to see the info non-stop - turn on the info dialog button view pan (hand tool) Description Zoom in/Zoom out

MidButton dragging Keyboard +/-

V-Ray frame buffer

* Arrow keys

Zoom to 100% Pan left, up, right, down

Global switches

Global switches
General

Home Render params Examples

The global switches allow you to control various aspects of the renderer globally.

Parameters
Geometry section

Displacement - enables or disables VRay's own displacement mapping. Note that this has no effect on standard Max displacement mapping, which can be controlled via the corresponding parameter in the Render gialog. Lighting section Lights - enables or disables lights globally. Note that if you uncheck this, VRay will use the default lights. If you do not want any direct lighting in your scene, you must uncheck both this and the Default lights parameters. Default lights - enables or disables the usage of the default lights when there are no light objects in the scene or when you have disabled lighting globally (see the Lights parameter). Hidden lights - enables or disables the usage of hidden lights. When this is checked, lights are rendered regardless of whether they are hidden or not. When this option is off, any lights that are hidden for any reason (either explicitly or by type) will not be included in the rendering.

Global switches

Shadows - enables or disables shadows globally. Show GI only - when this option is on, direct lighting will not be included in the final rendering. Note that lights will still be considered for GI calculations, however in the end only the indirect lighting will be shown. Materials section Reflection/refraction - enables or disables the calculation of reflections and refractions in VRay maps and materials. Max depth - enables the user to limit globally the reflection/refraction depth. When this is unchecked, the depth is controlled locally by the materials/ maps. When this option is checked, all materials and maps use the depth specified here. Maps - enables or disables texture maps. Filter maps - enables or disables texture map filtering. When enabled, the depth is controlled locally by the settings of the texture maps. When disabled, no filtering is performed. Max. transp levels - this controls to what depth transparent objects will be traced. Transp. cutoff - this controls when tracing of transparent objects will be stopped. If the accumulated transparency of a ray is below this threshold, no further tracing will be performed. Override mtl - this option allows the user to override the scene materials when rendering. All objects will be rendered with the chosen material, if one is selected, or with default materials if no material is specified. Glossy effects - this option allows the user to replace all glossy reflections in the scene with non-glossy ones; useful for test renderings.

Indirect illumination section Don't render final image - when this option is on, VRay will only calculate the relevant global illumination maps (photon maps, light maps, irradiance maps). This is a useful option if you are calculating maps for a fly-through animation.

Global switches

Raytracing section Secondary rays bias - a small positive offset that will be applied to all secondary rays; this can be used if you have overlapping faces in the scene to avoid the black splotches that may appear. See the Examples section for a demonstration on the effect of this parameter. This parameter is also useful when using the 3dsmax Render-to-texture feature.

Image Sampler (Antia-aliasing)

Image Sampler (Antialiasing)


General

Home Render params Examples

In VRay, an image sampler refers to an algorithm for sampling and filtering the image function, and producing the final array of pixels that constitute the rendered image. VRay implements several algorithms for sampling an image. All image samplers support MAX's standard antialiasing filters, although at the cost of increased rendering time. You can choose between Fixed rate sampler, Adaptive QMC sampler and Adaptive subdivision sampler.

Parameters
Fixed rate sampler
This is the simplest image sampler, and it takes a fixed number of samples for each pixel. Subdivs adjusts number of samples per pixel. When this is set to 1, one sample at the center of each pixel is taken. If this is greater than 1, the samples are generated from a low-discrepancy quasi-Monte Carlo sequence. Note that due to clamping of samples to the [black, white] range for the RGB color channel, sometimes this sampler can produce darker results when used with blurry effects. The solution in this case is to increase the subdivs for the blurry effect, or to use the Real RGB color channel.

Image Sampler (Antia-aliasing)

Adaptive QMC sampler


This sampler makes a variable number of samples per pixel based on the difference in intensity between the pixel and its neighbors. Note that this sampler is very strongy tied to the VRay QMC sampler. The sampler doesn't have its own threshold control; instead you should use the Noise threshold parameter of the VRay QMC sampler to control quality. This is the preferred sampler for images with lots of small details (like VRayFur, for example) and/or blurry effects (DOF, motion blur, glossy reflections etc). It also takes up less RAM than the Adaptive subdivision sampler. Note that due to clamping of samples to the [black, white] range for the RGB color channel, sometimes this sampler can produce darker results when used with blurry effects. The solution in this case is to increase the subdivs for the blurry effect, or to use the Real RGB color channel. Min subdivs - determines the initial (minimum) number of samples taken for each pixel. You will rarely need to set this to more than 1, except if you have very thin lines that are not captured correctly. Max subdivs - determines the maximum number of samples for a pixel.

Adaptive subdivision sampler


This is an advanced image sampler capable of undersampling (taking less than one sample per pixel). In the absence of blurry effects (direct GI, DOF, glossy reflection/reftaction etc) this is the best preferred image sampler in VRay. On average it takes fewer samples (and thus less time) to achieve the same image quality as the other image samplers. However, with detailed textures and/or blurry effects, it can be slower and produce worse results than the other two methods. Also note that this sampler takes up more RAM than the other two samplers see the Notes below. Min. rate - controls minimum number of samples per pixel. A value of zero means one sample per pixel; -1 means one sample every two pixels; -2 means one sample every 4 pixels etc. Max. rate - controls maximum number of samples per pixel; zero means one sample per pixel, 1 means four samples, 2 means eight samples etc. Threshold - determines the sensitivity of the sampler to changes in pixel

Image Sampler (Antia-aliasing)

intensity. Lower values will produce better results, while higher values will be faster, but may leave some areas of similar intensity undersampled. Rand - displaces the samples slightly to produce better antialiasing of nearly horizontal or vertical lines. Object outline - this will cause the image sampler to always supersample object edges (regardless of whether they actually need to be supersampled). This option has no effect if DOF or motion blur is on. Normals - this will supersample areas with sharply varying normals. This option has no effect if DOF or motion blur is on.

Antialiasing filter
This section allows you to choose an antialiasing filter. All standard 3dsmax filters are supported with the exception of the Plate Match filter. See the Examples section for more information on antialiasing filters.

Notes
q

Which sampler to use for a given scene? The answer is best found with experiments, but here are some tips:
r

For smooth scenes with only a few blurry effects and smooth textures, the Adaptive subdivision sampler with its ability to undersample the image is unbeatable. For images with detailed textures or lots of geometry detail and only a few blurry effects, the Two-level sampler performs best. Also in the case of animations involving detailed textures, the Adaptive subdivision sampler might produce jittering which the Two-level sampler avoids. For complex scenes with lots of blurry effects and/or detailed textures, the Fixed rate sampler performs best and is very predictable with regards to the quality and render time.

A note on RAM usage: image samplers require substantial amount of RAM to store information about each bucket. Using large bucket sizes may take a lot of RAM. This is especially true for the Adaptive subdivision sampler, which stores all individual sub-samples taken within a bucket. The Adaptive QMC sampler and the Fixed rate sampler on the other hand only store the summed result of all sub-samples for a pixel and so usually require less RAM.

Indirect Illumination (GI)

Indirect illumination (GI)


General Approaches to indirect illumination Primary and secondary bounces Parameters Notes

Home Render params Examples

General
Approaches to indirect illumination
VRay implements several approaches for computing indirect illumination with different trade-offs between quality and speed: Direct computation - this is the simplest approach; indirect illumination is computed independently for each shaded surface point by tracing a number of rays in different directions on the hemisphere above that point. Advantages:
r

this approach preserves all the detail (e.g. small and sharp shadows) in the indirect lighting; direct computation is free from defects like flickering in animations; no additional memory is required; indirect illumination in the case of motion-blurred moving objects is computed correctly.

Disadvantages:
r

the approach is very slow for complex images (e.g. interior lighting); direct computation tends to produce noise in the images, which can be avoided only by shooting a larger number of rays, thus

Indirect Illumination (GI)

slowing it even more.


q

Irradiance map - this approach is based on irradiance caching; the basic idea is to compute the indirect illumination only at some points in the scene, and interpolate for the rest of the points. Advantages:
r

the irradiance map is very fast compared to direct computation, especially for scenes with large flat areas; the noise inherent to direct computation is greatly reduced; the irradiance map can be saved an re-used to speed up calculations of different views for the same scene and of flythrough animations; the irradiance map can also be used to accelerate direct diffuse lighting from area light sources.

Disadvantages:
r

some details in indirect lighting can be lost or blurred due to the interpolation; if low settings are used, flickering may occur when rendering animations; the irradiance map requires additional memory; indirect illumination with motion-blurred moving objects is not entirely correct and may lead to noise (although in most cases this is not noticeable).

Photon map - this approach is based on tracing particles starting from the light sources and bouncing around the scene. This is useful for interior or semi-interior scenes whith lots of lights or small windows. The photon map usually does not produce good enough results to be used directly; however it can be used as a rough approximation to the lighting in the scene to speed the calculation of GI through direct computation or irradiance map. Advantages:
r

the photon map can produce a rough approximation of the lighting in the scene very quickly;

Indirect Illumination (GI)

the photon map can be saved an re-used to speed up calculation of different views for the same scene and of fly-through animations; the photon map is view-independent.

Disadvantages:
r

the photon map usually is not suitable for direct visualization; requires additional memory; in VRay's implementation, illumination involving motion-blurred moving objects is not entirely correct (although this is not a problem in most cases). the photon map needs actual lights in order to work; it cannot be used to produce indirect illumination caused by environment lights (skylight).

Light map - light mapping is a technique for approximating the global illumination in a scene. It is very similar to photon mapping, but without many of its limitations. The light map is built by tracing many many eye paths from the camera. Each of the bounces in the path stores the illumination from the rest of the path into a 3d structure, very similar to the photon map. The light map is a universal GI solution that can be used for both interior or exterior scenes, either directly or as a secondary bounce approximation when used with the irradiance map or the direct GI method. Advantages:
r

the lightmap is easy to set up. We only have the camera to trace rays from, as opposed to the photon map, which must process each light in the scene and usually requires separate setup for each light. the light-mapping approach works efficiently with any lights including skylight, self-illuminated objects, non-physical lights, photometric lights etc. In contrast, the photon map is limited in the lighting effects it can reproduce - for example, the photon map cannot reproduce the illumination from skylight or from standard omni lights without inverse-square falloff.

Indirect Illumination (GI)

the light map produces correct results in corners and around small objects. The photon map, on the other hand, relies on tricky density estimation schemes, which often produce wrong results in these cases, either darkening or brightening those areas. in many cases the light map can be visualized directly for very fast and smooth previews of the lighting in the scene.

Disadvantages:
r

like the irradiance map, the light map is view-dependent and is generated for a particular position of the camera. However, it generates an approximation for indirectly visible parts of the scene as well - for example, one light map can approximate completely the GI in a closed room; currently the light map works only with VRay materials; like the photon map, the light map is not adaptive. The irradiance is computed at a fixed resolution, which is determined by the user; the light map does not work very well with bump maps; use the irradiance map or direct GI if you want to achieve better results with bump maps. lighting involving motion-blurred moving objects is not entirely correct, but is very smooth since the lightmap blurs GI in time as well (as opposed to the irradiance map, where each sample is computed at a particular instant of time).

Which method to use? That depends on the task at hand. The Examples section can help you in choosing a suitable method for your scene.

Primary and secondary bounces


The indirect illumination controls in VRay are divided into two large sections: controls concerning primary diffuse bounces and controls concerning secondary diffuse bounces. A primary diffuse bounce occurs when a shaded point is directly visible by the camera, or through specular reflective or refractive surfaces. A secondary bounce occurs when a shaded point is used in GI calculations.

Indirect Illumination (GI)

Parameters
On - turns indirect illumination on and off.

GI caustics
GI caustics represent light that has gone through one diffuse, and one or several specular reflections (or refractions). GI caustics can can be generated by skylight, or self-illuminated objects, for example. However, caustics caused by direct lights cannot be simulated in this way. You must use the separate Caustics section to control direct light caustics. Note that GI caustics are usually hard to sample and may introduce noise in the GI solution. Refractive GI caustics - this allows indirect lighting to pass through transparent objects (glass etc). Note that this is not the same as Caustics, which represent direct light going through transparent objects. You need refractive GI caustics to get skylight through windows, for example. Reflective GI caustics - this allows indirect light to be reflected from specular objects (mirrors etc). Note that this is not the same as Caustics, which represent direct light going through specular surfaces. This is off by default, becase reflective GI caustics usually contribute little to the final illumination, while often they produce undesired sublte noise.

Post-processing
These controls allow additional modification of the indirect illumination, before it is added to the final rendering. The default values ensure a physically accurate result; however the user may want to modify the way GI looks for artistic purposes. Saturation - controls the saturation of the GI; a value of 0.0 means that all color will be removed from the GI solution and will be in shades of grey only. The default value of 1.0 means the GI solution remains unmodified. Values above 1.0 boost the colors in the GI solution.

Indirect Illumination (GI)

Contrast - this parameter works together with Contrast base to boost the contrast of the GI solution. When Contrast is 0.0, the GI solution becomes completely uniform with the value defined by Contrast base. A value of 1.0 means the solution remains unmodified. Values higher that 1.0 boost the contrast. Contrast base - this parameter determines the base for the contrast boost. It defines the GI values that remain unchanged during the contrast calculations. Save maps per frame - if this is on, VRay will save the GI maps (irradiance, photon, caustic, light maps) that have the auto-save option enabled, at the end of each frame. Note that the maps will always be written to the same file. If this option is off, VRay will write the maps only once at the end of the rendering.

First (primary) diffuse bounces


Multiplier - this value determines how much primary diffuse bounces contribute to the final image illumination. Note that the default value of 1.0 produces a physically accurate image. Other values are possible, but not physically plausible. Primary GI engine - the list box specifies the method to be used for primary diffuse bounces. Irradiance map - selecting this will cause VRay to use an irradiance map for primary diffuse bounces. See the Irradiance map section for more information. Global photon map - selecting this option will cause VRay to use a photon map for primary diffuse bounces. This mode is useful when setting up the parameters of the global photon map. Usually it does not produce good enough results for final renderings when used as a primary GI engine. See the Global photon map section for more information. Quasi-Monte Carlo - selecting this method will cause VRay to use direct computation for primary diffuse bounces. See the Quasi-Monte Carlo GI section for more information. Light map - this chooses the light map as the primary GI engine. See the Light map section for more information.

Secondary diffuse bounces


Multiplier - this determines the effect of secondary diffuse bounces on the scene illumination. Values close to 1.0 may tend to wash out the scene, while

Indirect Illumination (GI)

values around 0.0 may produce a dark image. Note that the default value of 1.0 produces physically accurate results. While other values are possible, they are not physically plausible. Secondary diffuse bounces method - this parameter determines how VRay will calculate secondary diffuse bounces. None - no secondary bounces will be computed. Use this option to produce skylit images without indirect color bleeding. Global photon map - selecting this option will cause VRay to use a photon map for primary diffuse bounces. This mode is useful when setting up the parameters of the global photon map. Usually it does not produce good enough results for final renderings when used as a primary GI engine. See the Global photon map section for more information. Quasi-Monte Carlo - selecting this method will cause VRay to use direct computation for primary diffuse bounces. See the Quasi-Monte Carlo GI section for more information. Light map - this chooses the light map as the primary GI engine. See the Light map section for more information.

Notes
q

VRay does not have a separate skylight system. The skylight effect can be achieved by setting the background color or environment map in MAX's environment dialog, or in VRay's own Environment rollout. You will get physically accurate lighting if you set both the primary and secondary GI multipliers to their default value of 1.0. While other values are possible, they will not produce a physically accurate result.

Quasi-Monte Carlo GI

Quasi-Monte Carlo GI
General

Home Render params Examples

This section is available only if you have chosen Quasi-Monte Carlo GI as either the primary or the secondary GI engine. The Quasi-Monte Carlo method for computing global illumination is a bruteforce approach. It recomputes the GI value for every single shaded point separately and independently from other points. While very slow, this method is very accurate, especially if you have many small details in the scene. To speed up Quasi-Monte Carlo GI, you can use a faster method (the photon map or the light map) for approximating secondary GI bounces, while using the Quasi-Monte Carlo method for the primary bounces.

Parameters
Subdivs this determines the number of samples used to approximate GI. Note that this is not the exact number of rays that VRay will trace. The number of rays is proportional to the square of this number, but also depends on the settings in the QMC sampler rollout. Depth - this parameter is available only if Quasi-Monte Carlo GI is selected as a secondary GI engine. It controls the number of light bounces that will be computed.

Notes

Irradiance map

Irradiance map
General

Home Render params Examples

This section allows the user to control and fine-tune various aspects of the irradiance map. This section is enabled only when the irradiance map is chosen as the GI method for primary diffuse bounces. Some background for understanding how the irradiance map works is necessary in order to grasp the meaning of these parameters. Irradiance is a function defined for any point in the 3D space and represents the light arriving at this point from all possible directions. In general, irradiance is different in every point and in every direction. However, there are two useful restrictions that can be made. The first is the surface irradiance which is the irradiance arriving at points which lie on the surface of objects in the scene. This is a natural restriction since we are usually interested in the illumination of objects in the scene, and objects are usually defined through their surface. The second restriction is that of diffuse surface irradiance - which is the total amount of light arriving at a given surface point, disregarding the direction from which it comes. In more simple terms, one can think of the diffuse surface irradiance as being the visible color of a surface, if we assume that its material is purely white and diffuse. In VRay, the term irradiance map refers to a method of efficiently computing the diffuse surface irradiance for objects in the scene. Since not all parts of the scene have the same detail in indirect illumination, it makes sense to compute GI more accurately in the important parts (e.g. where objects are close to each other, or in places with sharp GI shadows), and less accurately in uninteresting parts (e.g. large uniformly lit areas). The irradiance map is therefore built adaptively. This is done by rendering the image several times (each rendering is called a pass) with the rendering resolution being doubled with each pass. The idea is to start with a low resolution (say a quarter of the resolution of the final image) and work up to the final image resolution. The irradiance map is in fact a collection of points in 3d space (a point cloud) along with the computed indirect illumination at those points. When an object is hit during a GI pass, VRay looks into the irradiance map to see if there are any points similar in position and orientation to the current one. From those already computed points, VRay can extract various information (i.e. if there are any objects close by, how fast the indirect illumination is varying etc). Based on that information, VRay decides if the indirect illumination for the

Irradiance map

current point can be adequately interpolated from the points already in the irradiance map, or not. If not, the indirect illumination for the current point is computed, and that point is stored in the irradiance map.

Parameters
Current preset - this dropdown list allows you to choose from several presets for some of the irradiance map parameters. You can use these to quickly set the color, normal and distance thresholds, as well as the min/max rates. The following presets are available:
q

Very low - this preset is only useful for preview purposes to show the general lighting in the scene. Low - a low-quality preset for preview purposes Medium - a medium quality preset; works fine in many situations in scenes which have don't small details.

Irradiance map

Medium animation - a medium quality preset targeted at reducing flickering in animations - the Distance threshold is higher. High - a high-quality preset that works in most situations, even for scenes with small details as well as for most animations. High animation - a high-quality preset that can be used if the High preset produces flickering in animations - the Distance threshold is higher. Very high - a very high quality preset; can be used for scenes with extremely small and intricate details.

Note that the presets are targeted at a typical 640x480 image. Larger images typically can do with lower Min/Max rates than those specified in the presets. Min rate - this value determines the resolution for the first GI pass. A value of 0 means the resolution will be the same as the resolution of the final rendered image, which will make the irradiance map similar to the direct computation method. A value of -1 means the resolution will be half that of the final image and so on. You would usually want to keep this negative, so that GI is quickly computed for large and flat regions in the image. This parameter is similar to (although not the same as) the Min rate parameter of the Adaptive subdivision image sampler. Max rate - this value determines the resolution of the last GI pass. This is similar to (although not the same as) the Max rate parameter of the Adaptive subdivision image sampler. Color threshold (Clr thresh) - this parameter controls how sensitive the irradiance map algorithm is to changes in indirect lighting. Larger values mean less sensitivity; smaller values make the irradiance map more sensitive to light changes (thus producing higher quality images). Normal threshold (Nrm thresh) - this parameter controls how sensitive the irradiance map is to changes in surface normals and small surface details. Larger values mean less sensitivity; smaller values make the irradiance map more sensitive to surface curvature and small details. Distance threshold (Dist thresh) - this parameter controls how sensitive the irradiance map is to distance between surfaces. A value of 0.0 means the irradiance map will not depend on object proximity at all; higher values place more samples in places where objects are close to each other. Hemispheric subdivs (HSph. subdivs) - this controls the quality of individual GI samples. Smaller values make things faster, but may produce blotchy result. Higher values produce smoother images. This is similar to the Subdivs parameter for direct computation. Note that this is not the actual number of rays that will be traced. The actual number of rays is proportional

Irradiance map

to the square of this value and also depends on the settings in the QMC sampler rollout. Interpolation samples (Interp. samples) - this is the number of GI samples that will be used to interpolate the indirect illumination at a given point. Larger values tend to blur the detail in GI although the result will be smoother. Smaller values produce results with more detail, but may produce blotchiness if low Hemispheric subdivs are used. Blur GI - this parameter blurs the irradiance function even before it is sampled and stored in the irradiance map. This can greatly reduce flickering around small details in animations with moving objects. This value is in pixels. Typical values are in the range 1.0 to 10.0. Show samples - when this option is on, VRay will show visually the samples in the irradiance map as small dots in the scene. Show calc phase - when this option is on, VRay will show the irradiance map passes as the irradiance map is calculated. This will give you a rough idea of the indirect illumination even before the final rendering is complete. Note that turning this on slows the calculations a little bit, especially for large images. This option is ignored when rendering to fields - in that case, the calculation phase is never displayed. Show direct light - this option is only available when Show calc phase is on. It will cause VRay to show direct lighting for primary diffuse bounces in addition to indirect lighting while the irradiance map is being calculated. Note that VRay does not really need to compute this. The option is only for convenience. This does not mean that direct lighting is not calculated at all - it is, but only for secondary diffuse bounces (only for GI purposes). Interpolation type - this option is used during rendering. It selects the method for interpolating the GI value from the samples in the irradiance map. Weighted average - this method will do a simple blend between the GI samples in the irradiance map based on the distance to the point of interpolation and the difference in the normals. While simple and fast, this method tends to produce a blochiness in the result. Least squares fit - the default method; it will try to compute a GI value that best fits in among the samples from the irradiance map. Produces smoother results than the weighted average method, but is slower. Also, ringing artifacts may appear in places where both the contrast and density of the irradiance map samples change over a small area. Delone triangulation - all other methods of interpolation are blurry methods - that is, they will tend to blur the details in indirect illumination. Also, the blurry methods are prone to density bias (see below for a description). In difference, the Delone triangulation method is a non-blurry method and will preserve the detail while avoiding density bias. Since it is non-blurry, the

Irradiance map

result might look more noisy (blurring tends to hide noise). More samples will be needed to get a sufficiently smooth result. This can be done either by increasing the hemispheric subdivs of the irradiance map samples, or by decreasing the Noise threshold value in the QMC sampler rollout. Least squares with Voronoi weights - this is a modification of the least squares fit method aimed at avoiding the ringing at sharp boundaries by taking in consideration the density of the samples in the irradiance map. The method is quite slow and its effectiveness is currently somewhat questionable. Although all interpolation types have their uses, it probably makes most sense to use either Least squares fit or Delone triangulation. Being a blurry method, Least squares fit will hide noise and will produce a smooth result. It is perfect for scenes with large smooth surfaces. Delone triangulation is a more exact method, which usually requires more hemispheric subdivs and high Max irradiance map rate (and therefore more rendering time), but produces accurate results without blurring. This is especially obvious in scenes where there are a lot of small details. Sample lookup - this option is used during rendering. It selects the method of choosing suitable points from the irradiance map to be used as basis for the interpolation. Nearest - this method will simply choose those samples from the irradiance map which are closest to the point of interpolation. (How many points will be chosen is determined by the value of the Interpolation samples parameter.) This is the fastest lookup method and was the only one available in early versions of VRay. A drawback of this method is that in places where the density of the samples in the irradiance map changes, it will pick more samples from the area with higher density. When a blurry interpolation method is used, this leads to the so-called density bias which may lead to incorrect interpolation and aritfacts in such places (mostly GI shadow boundaries). Nearest quad-balanced - this is an extension of the nearest lookup method aimed at avoiding density bias. It divides the space about the interpolated point in four areas and tries to find an equal number of samples in all of them (hence the name quad-balanced). The method is a little slower than the simple Nearest lookup, but in general performs very well. A drawback is that sometimes, in its attempt to find samples, it may pick samples that are far away and not relevant to the interpolated point. Precalculated overlapping - this method was introduced in an attempt to avoid the drawbacks of the two previous ones. It requires a preprocessing step of the samples in the irradiance map during which a radius of influence

Irradiance map

is computed for each sample. This radius is larger for samples in places of low density, and smaller for places of higher density. When interpolating the irradiance at a point, the method will choose every sample that contains that point within its radius of influence. An advantage of this method is that when used with a blurry interpolation method it producses a continuous (smooth) function. Even though the method requires a preprocessing step, it is often faster than the other two. These two properties make it ideal for high-quality results. A drawback of this method is that sometimes lonely samples that are far-away can influence the wrong part of the scene. Also, it tends to blur the GI solution more than the other methods. Density-based - the default method; it combines the Nearest and the Precalculated overlapping methods and is very effective in reducing ringing artifacts and artifacts due to low sampling rates. This method also requires a preprocessing step in order to compute sample density, but it performs a nearest neighbour look-up to choose the most suitable samples while taking sample density in account. Being the fastest of the three methods, Nearest lookup may be used for preview purposes. Nearest quad-balanced performs fairly well in the majority of cases. Precalculated overlapping is fast and in many cases performs very well, but may tend to blur the GI solution. The Density-based method produces very good results in the majority of cases and is the default method. Note that the lookup method is most important when using a blurry interpolation method. When using Delone triangulation, the sample lookup method does not influence the result very much. Calc. pass interpolation samples - this is used during irradiance map calculation. It represents the number of already computed samples that will be used to guide the sampling algorithm. Good values are between 10 and 25. Low values may speed the calculation pass, but may not provide sufficient information. Higher values will be slower and will cause additional sampling. In general, this parameter should be left to the default value of 15. Use current pass samples - this is used during irradiance map calculation. When checked, this will cause VRay to use all irradiance map samples computed so far. Unchecking it will allow VRay to use only samples collected during previous passes, but not those computing earlier during the current pass. Keeping this checked will usually cause VRay to take less samples (and therefore compute the irradiance map faster). That means that on multiprocessor machines, several threads will be modifying the irradiance map at the same time. Because of the asynchronous nature of this process, there is no guarantee that the rendering the same image twice will produce the same irradiance map. Normally this is not a problem at all and it is recommended to keep this option checked.

Irradiance map

Randomize samples - this is used during irradiance map calculation. When it is checked, the image samples will be randomly jittered. Unchecking it will produce samples that are aligned in a grid on the screen. In general, this option should be kept checked in order to avoid artifacts caused by regular sampling. Check sample visibility - this is used during rendering. It will cause VRay to use only those samples from the irradiance map, which are directly visible from the interpolated point. This may be useful for preventing "light leaks" through thin walls with very different illumination on both sides. However it will also slow the rendering, since VRay will trace additional rays to determine sample visibility. Mode - this groups of controls allow the user to select the way the irradiance map is (re)used. Bucket mode - in this mode, a separate irradiance map is used for each rendered region ("bucket"). This is especially useful since it allows the irradiance map computations to be effectively distributed among several computers when using distributed rendering. Bucket mode can be slower that the Single frame mode, since an additional border must be computed around each region in order to reduce edge artifacts between neighboring regions. Even so, there may be such artifacts. They can be further reduced by using higher settings for the irradiance map (the High preset, more hemispheric subdivs and/or smaller Noise threshold for the QMC sampler). Single frame - the default mode; a single irradiance map is computed for the whole image, and a new irradiance map is computed for each frame. During distributed rendering, each render server will compute its own fullimage irradiance map. This is the mode to use when rendering animations of moving objects. In doing so one must make sure that the irradiance map is of sufficiently high quality to avoid flickering. Multiframe incremental - this mode is useful when rendering a sequence of frames (not necessarily consequtive) where only the camera moves around (so-called fly-through animations). VRay will compute a new full-image irradiance map for the first rendered frame; for all other frames VRay will try to reuse and refine the irradiance map that has been computed so far. If the irradiance map is of sufficiently high quality as to avoid flickering, this mode can also be used in network rendering - each rendering server will compute and refine its own local irradiance map. From file - in this mode VRay will simply load the irradiance map from the supplied file at the start of the rendering sequence and will use this map for all the frames in the animation. No new irradiance map will be computed. This mode can be used for fly-through animations and will work well in network rendering mode.

Irradiance map

Add to current map - in this mode VRay will compute a completely new irradiance map and will add it to the map that is already in memory. This mode is useful when compiling an irradiance map to render multiple views of a static scene. Incremental add to current map - in this mode VRay will use the irradiance map that is already in memory and will only refine it in places that don't have enough detail. This mode is useful when compiling an irradiance map to render multiple views of a static scene or a fly-through animation. The irradiance map mode that should be used depends on the particular rendering task - a static scene, a static scene rendered from multiple views, a fly-through animation or an animation with moving objects. Refer to the tutorials section for more information. Irradiance map control buttons There some more buttons in this group that allow one to perform certain operations on the irradiance map: Browse - this button allows the user to select the irradiance map file which will be loaded if the From file mode is selected. Alternatively, the user can enter the path and name of the file directly in the edit box. Save to file - this will save to file the irradiance map which is currently in memory. Note that the Don't delete option in the On render end group must be turned on. Otherwise VRay will automatically delete the irradiance map at the end of the rendering process. Reset irradiance map - this will clear the irradiance map from memory. On render end This group of controls instructs VRay what to do with the irradiance map at the end of the rendering process. Don't delete - the default for this option is on, which means that VRay will keep the irradiance map in memory until the next rendering. If this option is cleared, VRay will delete the irradiance map when rendering is complete. This means that you will not be able to save the map manually afterwards. Auto save - if this option is set, VRay will automatically save the irradiance map to the specified file at the end of the rendering. This mode is particularly useful if you want to send the irradiance map for rendering on a different machine through network rendering. Switch to saved map - this option is only available if the Auto save option

Irradiance map

is turned on. If Switch to saved map is on, then VRay will also automatically set the irradiance map mode to From file and will set the file name to be that of the map that was just saved.

Notes

Global photon map

Global photon map


General

Home Render params Examples

The global photon map is somewhat similar to the irradiance map. It is also used to represent the lighting in the scene, and it is a collection of points in 3D space (a point cloud). However, the photon map is built in a different way. It is built by tracing particles (photons) emitted by the scene lights. Those photons bounce around the scene and hit various surfaces. The hit points are stored in the photon map. Reconstructing the illumination from the photon map is also different from the irradiance map. With the irradiance map, a simple interpolation is used to blend the nearby GI samples. With the photon map, we need to estimate the photon density at a given point. The idea of density estimation is central to the photon map. VRay can use several methods for density estimation, each with its own advantages and disadvantages. Usually these methods are based on looking for the photons that are nearest to the shaded point. Note that in general, the photon map provides a less accurate approximation of the scene illumination than the irradiance map, espcially when it comes to small details. The irradiance map is built adaptively, whereas the photon map is not. Also a major disadvantage of the photon map is the boundary bias. This unwanted effect is mostly visible around corners and object edges, which appear darker than they should be. The irradiance map can also exhibit boundary bias, however its adpative nature allows one to decrease the effect greatly. Another disadvantage of the photon map is that it cannot simulate illumination from skylight. This is because the photons need an actual surface to be emitted from. The skylight, at least in VRay, is not a surface actually present in the scene. On the other hand, the photon map is view-independent and can be computed relatively quickly. This makes it ideal for approximating the scene illumination when used together with more accurate methods like direct computation or the irradiance map.

Parameters
Note that the building of the photon map is also controlled by the photon

Global photon map

settings of individual lights in the scene. See the Light settings dialog for more information.

Bounces - this parameter controls the number of light bounces approximated by the photon map. More bounces produce a more reallistic result, but take more time and memory. Auto search dist - when this is on, VRay will try to compute a suitable distance within which to search for photons. Sometimes the computed distance is ok, in other cases it might be too big (which will slow down the rendering) or too small (which will produce a more noisy result). Search dist - this option is only available when Auto search dist is off. It allows you to specify the photon search distance manually. Keep in mind that this value depends on the size of your scene. Lower values will speed up the rendering but may produce more noisy results. Larger values will slow down the rendering but may produce smoother results. Max photons - this option specifies how many photons will be taken into consideration when approximating the irradiance at the shaded point. More photons mean a smoother (and more blurry) result and may also slow down the rendering. Smaller values mean a more noisy result but will render faster. Multipler - this allows you to control the brightness of the photon map. Max density - this parameter allows you to limit the resolution (and thus the memory) of the photon map. Whenever VRay needs to store a new photon in the photon map, it will first look if there are any other photons within a distance specified by Max density. If there is already a suitable photon in the map, VRay will just add the energy of the new photon to the one in the map. Otherwise, VRay will store the new photon in the photon map. Using this options allows you to shoot many photons (and thus get smoother results) while keeping the size of the photon map manageable. Convert to irradiance map - this will cause VRay to precompute the

Global photon map

irradiance at the photon hit points stored in the photon map. This allows fewer photons to be used when interpolated the irradiance during rendering, while keeping the result relatively smooth. It is important to note that the resulting map stores irradiance, but is not the same as the irradiance cache used by VRay for primary diffuse bounces. Interp. samples - this controls how many irradiance samples will be taken from the photon map once it is converted to an irradiance map. Larger values produce smoother results, but may be slower; smaller values produces more noisy results but rendering is faster. Convex hull area estimate - when this is off, VRay will use a simplified algorithm for computing the area, covered by a number of photons (by only taking the distance to the farthest photon). This algorithm may cause corners to be darker. Using the convex hull area estimate avoids the dark corners problem, but is slower and not as robust. Store direct light - when this is on, VRay will store direct illumination in the photon map as well. This may speed up the irradiance map or QMC GI, when used as a primary engine, and there are lots of lights in the scene. When this is off, direct lighting will be computed always by tracing the necessary rays. This may slow things down if there are lots of lights in the scene. Retrace threshold - when this is greater than 0.0, VRay will use direct QMC GI near corners, instead of the photon map, in order to obtain a more accurate result and to avoid splotches in these areas. This may slow down the rendering. When this is 0.0, the photon map will be used always, which will be faster, but may produce artifacts near corners or in places where objects are close to each other. Retrace bounces - controls how many bounces will be made when retracing corners. If Retrace threshold is 0.0, then this parameter is ignored. Typically this should be equal to the Bounces parameter.

Notes
q

The photon map cannot simulate secondary illumination due to skylight. The photon map is mostly useful for interior scenes with artificial lighting or relatively small windows. The photon map works only with VRay materials. Standard materials will receive GI, but will not generate any photons.

Light cache

Light cache
General

Home Render params Examples

Light caching is a technique for approximating the global illumination in a scene. It is very similar to photon mapping, but without many of its limitations. The light cache is built by tracing many many eye paths from the camera. Each of the bounces in the path stores the illumination from the rest of the path into a 3d structure, very similar to the photon map. On the other hand, in a sense, it is the exact opposite of the photon map, which traces paths from the lights, and stores the accumulated energy from the beginning of the path into the photon map. Although very simple, the light-caching approach has many advantages over the photon map:
q

It is easier to set up. We only have the camera to trace rays from, as opposed to the photon map, which must process each light in the scene and usually requires separate setup for each light. The light-caching approach works efficiently with any lights - including skylight, self-illuminated objects, non-physical lights, photometric lights etc. In contrast, the photon map is limited in the lighting effects it can reproduce - for example, the photon map cannot reproduce the illumination from skylight or from standard omni lights without inversesquare falloff. The light cache produces correct results in corners and around small objects. The photon map, on the other hand, relies on tricky density estimation schemes, which often produce wrong results in these cases, either darkening or brightening those areas. In many cases the light cache can be visualized directly for very fast and smooth previews of the lighting in the scene.

Even with these advantages, light caching is similar in speed to the photon map and can produce approximations to the global lighting in a scene very quickly. In addition, the light cache can be used successfully for adding GI effects to animations. Of course, the light cache has some limitations:

Light cache
q

Like the irradiance map, it is view-dependent and is generated for a particular position of the camera. Like the photon map, the light cache is not adaptive. The illumination is computed at a fixed resolution, which is determined by the user. The light cache does not work very well with bump maps.

Parameters
Subdivs this determines how many paths are traced from the camera. The actual number of paths is the square of the subdivs (the default 1000 subdivs mean that 1 000 000 paths will be traced from the camera). Sample size - this determines the spacing of the samples in the light cache. Smaller numbers mean that the samples will be closer to each other, the light cache will preserve sharp details in lighting, but it will be more noisy and will take more memory. Larger numbers will smooth out the light cache but will loose detail. This value can be either in world units or relative to the image size, depending on light cache Scale mode. Scale - this parameter determines the units of the Sample size and the Filter size: Screen - the units are fractions of the final image (a value of 1.0 means the samples will be as large as the whole image). Samples that are closer to the camera will be smaller, and samples that are far away will be larger. Note that the units do not depend on the image resolution. This value is best suited for stills or animations where the light cache needs to be computed at each frame. World - the sizes are fixed in world units everywhere. This can affect the

Light cache

quality of the samples - samples that are close to the camera will be sampled more often and will apear smoother, while samples that are far away will be noisier. This value might work better for fly-through animations, since it will force constant sample density everywhere. Store direct light - with this option, the light cache will also store and interpolate direct light. This can be useful for scenes with many lights and irradiance map or direct GI method for the primary diffuse bounces, since direct lighting will be computed from the light cache, instead of sampling each and every light. Note that only the diffuse illumination produced by the scene lights will be stored. If you want to use the light cache directly for approximating the GI while keeping the direct lighting sharp, uncheck this option. Show calc. phase - turning this option on will show the paths that are traced. This does not affect the calculation of the light cache and is provided only as a feedback to the user. This option is ignored when rendering to fields - in that case, the calculation phase is never displayed. Pre-filter - when this is turned on, the samples in the light cache are filtered before rendering. Note that this is different from the normal light cache filtering (see below) which happens during rendering. Prefiltering is performed by examining each sample in turn, and modifying it so that it represents the average of the given number of nearby samples. More prefilter samples mean a more blurry and less noisy light cache. Prefiltering is computed once after a new light cache is computed or loaded from disk. Filter - this determines the type of render-time filter for the light cache. The filter determines how irradiance is interpolated from the samples in the light cache. None - no filtering is performed. The nearest sample to the shaded point is taken as the irradiance value. This is the fastest option, but it may produce artifacts near corners, if the light cache is noisy. You can use pre-filtering (see above) to decrease that noise. This option works best if the light cache is used for secondary bounces only or for testing purposes. Nearest - this filter looks up the nearest samples to the shading point and averages their value. This filter is not suitable for direct visualization of the light cache, but is useful if you use the light cache for secondary bounces. A property of this filter is that is adapts to the sample density of the light cache and is computed for a nearly constant time. The Interpolation samples parameter determines how many of the nearest samples to look up from the light cache. Fixed - this filter looks up and averages all samples from the light cache that fall within a certain distance from the shaded point. This filter

Light cache

produces smooth results and is suitable for direct visualization of the light cache (when it is used as the primary GI engine). The size of the filter is determined by the Filter size parameter. Larger values blur the light cache and smooth out noise. Typical values for the Filter size are 2-6 times larger than the Sample size. Note that Filter size uses the same scale as the Sample size and its meaning depends on the Scale parameter. Use light cache for glossy rays - if this option is on, the light cache will be used to compute lighting for glossy rays as well, in addition to normal GI rays. This can speed up rendering of scenes with glossy reflections quite a lot. Number of passes - the light cache is computed in several passes, which are then combined into the final light cache. Each pass is rendered in a separate thread independently of the other passes. This ensures that the light cache is consistent across computers with different number of CPUs. In general, a light cache computed with smaller number of passes may be less noisy than a light cache computed with more passes, for the same number of samples; however small number of passes cannot be distributed effectively across several threads. For single-processor non-hyperthreading machines, the number of passes can be set to 1 for best results. Mode - determines the rendering mode of the light cache: Progressive path tracing - in this mode, the light cache algorithm is used to sample the final image progressively. For a discussion of this mode see the tutorial. Single frame - this will compute a new light cache for each frame of an animation. Fly-through - this will compute a light cache for an entire fly-through animation, assuming that the camera position/orientation is the only thing that changes. The movement of the camera in the active time segment only is taken in consideration. Note that it may be better to use World Scale for fly-through animations. The light cache is computed only at the first rendered frame and is reused without changes for subsequent frames. From file - in this mode the light cache is loaded from a file. The light cache file does not include the prefiltering of the light cache; prefiltering is performed after the light cache is loaded, so that you can adjust it without the need to recompute the light cache.

Notes

Light cache

Do not set the Adaptation by importance amount in the QMC sampler rollup to 0.0 when using the light cache, as this will cause excessive render times. Do not apply perfectly white or very close to white materials to a majority of the objects in the scene, as this will cause excessive render times. This is because the amount of reflected light in the scene will decrease very gradually and the light cache will have to trace longer paths. Also avoid materials that have one of their RGB components set to maximum (255) or above. If you want to use the light cache for animation, you should choose a large enough value for the Filter size in order to remove the flickering in the GI. There is a difference between light caches computed for primary bounces (direct visualization) and for secondary bounces. Do not use light caches computed in one of these modes for the other, since this may result in slower renders or poor quality. Similar to the photon map, you can get "light leaks" with the light cache around very thin surfaces with substantially different illumination on both sides. Currently there is no way to avoid this, except to avoid having very thin objects; also the effect can be reduced by decreasing the Sample size and/or the filtering.

Caustics

Caustics
General

Home Render params Examples

VRay supports the rendering of the caustics effects. In order to produce this effect you must have proper caustics generators and caustics receivers in the scene (for information how to make an object a caustics generator/receiver read the Object settings and Lights settings sections in Render parameters > System > Object/Light settings. The settings in this parameter section control the generation of the photon map (an explanation of the photon map can be found in the Terminology section).

Parameters
On - turns caustic on and off. Multiplier this multiplier controls the strength of the caustics. It is global and applies to all light sources that generate custics. If you want different multipliers for the different light sources then you should use the local light settings. Note: this multiplier is cumulative with the multipliers in the local light settings. Search dist - when VRay traces a photon that hits an object in some point the raytracer searches for other photons on the same plane in the surrounding area (search area). The search area in fact is a circle with center the original photon and its radius is equal to the Search dist value. Max photons - when VRay traces a photon that hits an object in some point and counts the photons in the surrounding area it then averages the illumination of that area based on the number of the photons in it. If the photons are more than Max photons VRay will only take the first Max photons of them.

Caustics

Max density - this parameter allows you to limit the resolution (and this the memory) of the photon map. Whenever VRay needs to store a new photon in the caustics photon map, it will first look if there are any other photons within a distance specified by Max density. If there is already a suitable photon in the map, VRay will just add the energy of the new photon to the one in the map. Otherwise, VRay will store the new photon in the photon map. Using this options allows you to shoot many photons (and thus get smoother results) while keeping the size of the caustics photon map manageable. Mode - controls the mode of the irradiance map: New map - when this option is selected a new photon map will be generated. It will overwrite any previous photon map left over from previous rendering. Save to file - hit this button if you want to save an already generated photon map in a file. From file - when you enable this option VRay will not compute the photon map but will load it from a file. Hit the Browse button on the right to specify the file name. Don't delete - when checked, VRay will keep the photon map in memory after the scene rendering has finished. Otherwise the map will be deleted and the memory it takes will be freed. This option can be especially useful if you want to compute the photon map for a particular scene only once and then reuse it for further rendering. Auto save - when this is turned on, VRay will automatically save the caustics photon map to the provided file when rendering is complete. Switch to saved map - this option is only available if Auto save is on. It will cause VRay to automatically set the mode to From file with the file name of the newly saved map.

Notes
q

Caustics also depend on the individual light settings (see Light settings dialog).

Environment

Environment
General

Home Render params

The Environment section in VRay render parameters is where you can specify a color and a map to be used during GI and reflection/refraction calculations. If you don't specify a color/map then the MAX's background color and map will be used instead.

Parameters
GI Environment (skylight)
This group allows you to override the 3dsmax Environment settings for indirect illumination calculations. The effect of changing the GI environment is similar to skylight. Override MAX's - with this option turned on VRay will use the specified environment color and/or texture during GI calculations. Color - lets you specify the background (skylight) color. Multiplier - a multiplier for the color value. Note that the multiplier does not affect the environment texture (if present). Use an Output map to control the brightness of the environment map if the map itself does not have brightness controls. Texture - lets you choose a background texture.

Reflection/refraction environment
This group allows you to override the 3dsmax Environment settings when reflections and refractions are calculated. Note that you can also override the reflection/refraction environment on a per material basis (see VRayMtl) or a per map basis (see VRayMap).

Environment

Override MAX's - with this option turned on VRay will use the specified Color and Texture during GI and reflection/refraction calculations. Color - lets you specify the background (skylight) color. Multiplier - a multiplier for the color value. Note that the multiplier does not affect the environment texture (if present). Use an Output map to control the brightness of the environment map, if the map itself does not have brightness controls. Texture - lets you choose a background texture

QMC sampler

QMC sampler
General

Home Render params Examples

QMC (Quasi Monte Carlo) sampling is employed throughout VRay for every "blurry" value - antialiasing, depth of field, indirect illumination, area lights, gossy reflection/refraction, translucency, motion blur etc. QMC sampling is used to determine what samples should be taken and, ultimately, which rays to trace. Instead of having separate methods for sampling each of those blurry values, VRay has a single unified framework that determines how many and what exactly samples to be taken for a particular value, depending on the context in which that value is required. This framework is called the QMC sampler. For reference, the exact samples that are taken are computed by VRay using a randomized Halton low-discrepancy sequence. The actual number of samples is determined based on three factors:
q

The subdivs value supplied by the user for a particular blurry effect. This is multiplied by the Global subdivs multiplier (see below). The importance of the value (for example, dark glossy reflections can do with fewer samples than bright ones, since the effect of the reflection on the final result is smaller; distant area lights require fewer samples than closer ones etc). Basing the number of samples allocated for a value on importance is called importance sampling. The variance (think "noise") of the samples taken for a particular value - if the samples are not very different from each other, then the value can do with fewer samples; if the samples are very different, then a larger number of them will be necessary to get a good result. This basically works by looking at the samples as they are computed one by one and deciding, after each new sample, if more samples are required. This technique is called early termination or adaptive sampling.

Here is how this works. Any time that VRay needs to compute a blurry value, it calculates two things:
q

The maximum number of samples that can be taken. This is in part controlled by the subdivs parameter for the corresponding blurry

QMC sampler

value. Let's call this number N.


q

The minimum number of samples that must be taken. This is no less than the Min samples parameter described below. It also depends on the Amount of adaptive sampling and the effect of the value on the final result. The number also depends on the Amount of early termination adaptation. Let's call this number M.

After that VRay proceeds to actually compute the first M samples for the blurry value. For each of the next (N-M) remaining samples, VRay will look at the result so far and decide if it is "good enough". The Noise threshold is involved here. If VRay decides that the result is good, or if it has computed all of the N samples, the final blurry value is calculated and returned for further processing. For more information on the relationship and effects of these parameters, please refer to the tutorials section.

Parameters
Amount controls the extent to which the number of samples depends on the importance of a blurry value. It also controls the minimum number of samples that will be taken. A value of 1.0 means full adaptation; a value of 0.0 means no adaptation. Min samples - determines the minimum number of samples that must be made before the early termination algorithm is used. Higher values will slow things down but will make the early termination algorithm more reliable. Noise threshold - controls VRay's judgement of when a blurry value is "good enough" to be used. This directly translates to noise in the result. Smaller values mean less noise, more samples and higher quality. A value of 0.0 means that no adaptation will be performed. Global subdivs multiplier - this will multiply all subdivs values everywhere during rendering; you can use this to quickly increase/decrease sampling quality everywhere. This affects everything, except for the lightmap, photon map, caustics and aa subdivs. Everything else (dof, moblur, irradiance map,

QMC sampler

qmc GI, area lights, area shadows, glossy reflections/refractions) is affected by this parameter. Time independent - when this option is ON, the QMC pattern will be the same from frame to frame in an animation. Since this may be undesirable in some cases, you can turn this option OFF to make the QMC pattern change with time. Note that re-rendering the same frame will produce the same result in both cases.

G-Buffer

G-buffer
General

Home Render params Examples

Parameters
Color mapping
Color mapping can be used to apply a transformation of the colors in the final image. Type - this is the type of transformation used. There are two possible types: Linear multiply - this mode will simply multiply the final image colors based on their brightness are. Color components that are too bright (above 1.0 or 255) will be clipped. This can result in burnt out spots near bright light sources. Exponential - this mode will saturate the colors based on their brightness. This can be useful to prevent burn-outs in very bright areas (for example around light sources etc). This mode will not clip bright colors, but will instead saturate them. HSV exponential - this mode is very similar to the Exponential mode, but it will preserve the color hue and saturation, instead of washing out the color towards white. Dark multiplier - this is the multiplier for dark colors. Bright multiplier - this is the multiplier for bright colors. Affect background - if this is off, color mapping will not affect colors belonging to the background. Clamp output - if this is on, colors will be clamped after color mapping. In some situations, this may be undesirable (for example, if you wish to antialias hdr parts of the image, too) - in that case, turn clamping off.

G-Buffer

G-Buffer parameters
VRay's virtual frame buffer supports many different channels. Internally, VRay makes no difference between the G-Buffer channels (z-depth, coverage etc) and render elements (direct lighting, indirect lighting etc), since they are all stored in a similar manner. The difference between G-Buffer channels is that they represent the respective values only for the pixel fragment that is closest to the camera (a pixel fragment is a part of an object that contributes the final pixel value). G-Buffer channels Z-value Normal Material ID Material color this channel provides a depth buffer. this channel provides a buffer for storing the normal vectors. this channel provides a buffer for storing the material ID. this channel is filled with the material color. The color is calculated as if there are no transparent materials in the scene (transparency for all materials is ignored).

this channel provides an alpha buffer. There VRay Material stores the transparency of the material for each image transparency pixel. Object velocity in this channel VRay stores the objects' velocity per pixel. This can be used for fast motion blur. this channel provides a Node ID buffer. The Node ID can be set per object (not necessarily different IDs for different objects) through MAX object's properties. To do so click with the right mouse button on the desired object and select properties. On the General tab go to the G-buffer section and change the Object Channel value (this is the Node ID of the object). this channel provides a Render ID buffer. The Render ID is an unique integer number that is assigned to every object in the scene by VRay. You can not change the Render IDs of the objects as they are internally generated. VRay guarantees that all Render IDs are unique and consistent (once assigned, an object ID does not change until rendering has finished).

Node ID

Render ID

G-Buffer

Render elements RGB Color Unclamped color Atmosphere Background Diffuse* Reflection* Refraction* Selfillumination Shadow* Specular* Lighting* this is the standard RGB color channel. Note that colors in this channel are clamped. this channel provides a buffer for storing unclamped colors. This can be especially useful when you want to produce a HDRI image. this channel holds the atmospheric effects this channel holds the background color this channel holds the original diffuse surface color, unmodified by lighting this channel holds reflections this channel holds refractions this channel holds self-illumination; currently only VRayLights write to it this channel holds the shadows (the difference between unshadowed and shadowed light); adding this channel to the Raw lighting channel will produce the unshadowed lighting of the scene. this channel holds the specular component (hilights) this channel stores the diffuse direct illumination, multiplied by the diffuse surface color

Global this channel stores the diffuse indirect illumination, illumination* multiplied by the diffuse surface color Caustics* this channel stores the caustics, multiplied by the diffuse surface color

Raw global this channel stores the original indirect illumination, illumination* before it is multiplied by the surface color Raw lighting* this channel stores the original lighting, before it is multiplied by the surface color

* This channel is supported only for VRayMtl or other VRay-aware materials.

The available channels are displayed in the Output channels list and each can be selected/deselected with a simple click with the left mouse button. VRay will automatically generate g-buffer channels required by render effects, but you need to manually select the desired channels when saving to .rpf or . rla file format.

G-Buffer

Notes
q

VRay takes antialiasing filters into account when generating the g-buffer channels, in contrast with the default scanline renderer of 3dsmax. This may cause differences in the way some render effects work. If this is a problem, turn the AA filter off from the Image sampler rollout. Also, avoid using AA filters with negative components (Catmull-Rom, MitchellNetravali) when generating a g-buffer - 3dsmax cannot handle layers with negative coverage and VRay will ignore those when creating the 3dsmax gbuffer. Generating a correct multi-layer g-buffer requires extra memory. This is because the 3dsmax g-buffer supports only scanline-style writing. However, VRay renders in buckets and cannot provide the data in scanline order. That's why VRay stores all the g-buffer data while rendering, and then writes it at once into the final image. VRay antialiases with respect to the RGB Color channel. Therefore other channels may appear jagged in areas where VRay has placed fewer samples. See the Examples section for a demonstration of this effect.

Camera

Camera
General Parameters Camera type Depth of field Motion blur Notes

Home Render params Examples

General
The camera rollout controls the way the scene geometry is projected onto the image.

Parameters
Camera type
The cameras in VRay generally define the rays that are cast into the scene, which essentially is how the scene is projected onto the screen. VRay supports several camera types: Standard, Spherical, Cylindrical (point), Cylindrical (ortho), Box and Fish eye. Orthographic views are supported too.

Camera

Override FOV - with this setting you can override the 3dsmax's FOV angle. This is because some VRay camera types can take FOV ranges from 0 to 360 degrees, whereas the cameras in 3dsmax are limited to 180 degrees. FOV - here you specify the FOV angle (only when Override FOV is turned on and the current camera type supports FOV angle). Height - here you can specify the height of the Cylindrical (ortho) camera. Note: this setting is available only when the Type is set to Cylindrical (ortho). Auto-fit - this setting controls the auto-fit option of the Fish-eye camera. When Auto-fit is enabled VRay will calculate the Dist value automatically so that the rendered image fits horizontally with the image's dimensions. Dist - this setting applies only to the Fish-eye camera. The Fish-eye camera is simulated as a Standard camera pointed to an absolutely reflective sphere (with a radius of 1.0) that reflects the scene into the camera's shutter. The Dist value contorts how far is the camera from the sphere's center (which is how much of the sphere will be captured by the camera). Note: this setting has no effect when the Auto-fit option is enabled. Curve - this setting applies only to the Fish-eye camera. This setting contorts the way the rendered image is warped. A value of 1.0 corresponds to a real world Fish-eye camera. As the value approaches 0.0 the warping is increased. As the value approaches 2.0 the warping is reduced. Note: in fact this value controls the angle at which rays are reflected by the virtual sphere of the camera. Type - from this list you can select the type of the camera. The available types are Standard, Spherical, Cylindrical (point), Cylindrical (ortho), Box, Fish eye. See the Examples section for a more detailed discussion on camera types. Standard - this is a standard pinhole camera. Spherical - this is a spherical camera which means that the camera lenses has spherical form. Cylindrical (point) - with this type of camera all rays have a common origin - they are cast from the center of the cylinder. In the vertical direction the camera acts as a pinhole camera and in the horizontal direction it acts as a spherical camera. Cylindrical (ortho) - in vertical direction the camera acts as an orthographic view and in the horizontal direction it acts as a spherical camera. Box - the box camera is simply 6 standard cameras placed on the sides of a box. This type of camera is excellent for generation of environment maps for cube mapping. It may be very useful for GI too - you can calculate the irradiance map with a Box camera, save it to file and you can reuse it with

Camera

a Standard camera that can be pointed at any direction. Fish eye - this special type of camera captures the scene as if it is normal pinhole camera pointed at an absolutely reflective sphere which reflects the scene into the camera's shutter. You can use the Dist/FOV settings to control what part of the sphere will be captured by the camera. The red arc in the diagram corresponds to the FOV angle. Note that the sphere has always a radius of 1.0.

Depth of field
On - turns the depth-of-field effect on. Aperture - this is the size of the virtual camera aperture, in world units. Small aperture sizes reduce the DOF effect, larger sizes produce more blur. Center bias - this determines the uniformity of the DOF effect. A value of 0.0 means that light passes uniformly through the aperture. Positive values mean that light is concentrated towards the rim of the aperture, while negative values concentrate light at the center. Focal distance - determines the distance from the camera at which objects will be in perfect focus. Objects closer or farther than that distance will be blurred. Get from camera - when this option is on, the Focal distance is determined from the camera target, if the rendering is done froma camera view. Sides - this option allows you to simulate the polygonal shape of the aperture of real-world cameras. When this option is off, the shape is assumed to be perfectly circular. Rotation - specifies the orientation of the aperture shape. Anisotropy - this option allows the stretching of the bokeh effect horizontally or vertically. Positive values stretch the effect in the vertical direction. Negative values stretch it in the horizontal direction. Subdivs - controls the quality of the DOF effect. Lower values are computed faster, but produce more noise in the image. Higher values smooth out the noise, but take more time to render. Note that the quality of sampling also depends on the settings of the QMC sampler as well as on the chosen Image sampler.

Motion blur

Camera

On - turns motion blur on. Duration - specifies the duration, in frames, during which the camera shutter is open. Interval center - specifies the middle of the motion blur interval with respect to the 3dsmax frame. A value of 0.5 means that the middle of the motion blur interval is halfway between the frames. A value of 0.0 means that the middle of the interval is at the exact frame position. Bias - this controls the bias of the motion blur effect. A value of 0.0 means that the light passes uniformly during the whole motion blur interval. Positive values mean that light is concentrated towards the end of the interval, while negative values concentrate light towards the beginning. Prepass samples - this controls how many samples in time will be computed during irradiance map calculations. Blur particles as mesh - this option controls the blurring of particle systems. When this is on, particles will be blurred like normal meshes. However, many particle systems change the number of particles between frames. You can turn off this option to compute the motion blur from the velocity of the particles instead. Geometry samples - this determines the number of geometry segments used to approximate motion blur. Objects are assumed to move linearly between geometry samples. For fast rotating objects, you need to increase this to get correct motion blur. Note that more geometry samples increase the memory consumption, since more geometry copies are kept in memory. Subdivs - determines the quality of the motion blur. Lower values are computed faster, but produce more noise in the image. Higher values smooth out the noise, but take more time to render. Note that the quality of sampling also depends on the settings of the QMC sampler as well as on the chosen Image sampler.

Notes
q

Depth of field is supported only for the Standard camera type. Other camera types do not produce depth of field effect at this time. When DOF and motion blur are both enabled, they are sampled together using the higher of the two Subdivs parameters.

Camera

Default displacement

Default displacement
General

Home Render params

This section allows you to control displacement of objects with displacement materials, which do not have a VRayDisplacementMod modifier applied.

Parameters
Override Max's when this option is on, VRay will render objects with displacement materials using its own internal microtriangle displacement. When this option is off, the objects will be rendered with the standard 3dsmax displacement. Edge length - this determines the quality of the displacement. Each triangle of the original mesh is subdivided into a number of subtriangles. More subtriangles mean more detail in the displacement, slower rendering times and more RAM usage. Less subtriangles mean less detail, faster rendering and less RAM. The meaning of Edge length depends on the View-dependent parameter below. View-dependent - when this is on, Edge length determines the maximum length of a subtriangle edge, in pixels. A value of 1.0 means that the longest edge of each subtriangle will be about one pixel long when projected on the screen. When View-dependent is off, Edge length is the maximum subtriangle edge length in world units. Max. subdivs - this controls the maximum subtriangles generated from any triangle of the original mesh. The value is in fact the square root of the maximum number of subtriangles. For example, a value of 256 means that at most 256 x 256 = 65536 subtriangles will be generated for any given original triangle. It is not a good idea to keep this value very high. If you need to use higher values, it will be better to tesselate the original mesh itself into smaller triangles instead. From build 1.45.20 onward, the actual subdivisions for a triangle are rounded up to the nearest power of two (this makes it easier to avoid gaps because of different tesselation on neighboring triangles). Tight bounds - when this is on, VRay will try to compute the exact bounding

Default displacement

volume of the displaced triangles from the original mesh. This requires presampling of the displacement texture, but the rendering will be faster, if the texture has large black or white areas. However, if the displacement texture is slow to evaluate and varies a lot between full black and white, if may be faster to turn this option off. When it is off, VRay will assume worst-case bounding volumes, and will not presample the texture.

Notes
q

The default displacement amount is based on the bounding box of an object. Therefore, it is not a good choice when you have deforming objects. In that case, you should apply a VRayDisplacementMod modifier, which supports constant displacement amount.

System

System
General Parameters Raycaster parameters Render region division Previous render Distributed rendering ShadeContext compatibility Frame stamp Object settings Light settings Presets VRay log Other parameters

Home Render params

General
In this section you can control variety of VRay parameters. These are divided into the following sections:

Parameters
Raycaster parameters
Here you can control various parameters of VRay's Binary Space Partitioning (BSP) tree. One of the basic operations that VRay must perform

System

is raycasting determining if a given ray intersects any geometry in the scene, and if so identifying that geometry. The simplest way to implement this would be to test the ray against every single render primitive (triangle) in the scene. Obviously, in scenes with thousands or millions of triangles this is going to be very slow. To speed this process, VRay organizes the scene geometry into a special data structure, called a binary space partitioning (BSP) tree. The BSP tree is a hierarchical data structure, built by subdividing the scene in two parts, then looking at each of those two parts and subdividing them in turn, if necessary and so on. Those "parts" are called nodes of the tree. At the top of the hierarchy is the root node - which represents the bounding box of the whole scene; at the bottom of the hierarchy are the leaf nodes - they contain references to actual triangles from the scene. Max tree depth - the maximum depth of the tree. Larger values will cause VRay to take more memory, but the rendering will be faster - up to some critical point. Values beyond that critical point (which is different for every scene) will start to slow things down. Smaller values for this parameter will cause the BSP tree to take less memory, but rendering will be slower. Min leaf size - the minimum size of a leaf node. Normally this is set to 0.0, which means that VRay will subdivide the scene geometry regardless of the scene size. By setting this to a different value, you can make VRay to quit subdividing, if the size of a node is below a given value. Face/level coef - controls the maximum amount of triangles in a leaf node. If this value is lower, rendering will be faster, but the BSP tree will take more memory - up to some critical point (which is different for every scene). Values below that critical point will make the rendering slower. Default geometry - internally VRay maintains four raycasting engines. All of them are built around the idea of a BSP tree, but have different uses. The engines can be grouped into raycasters for non-motion blurred and for motion blurred geometry, as well as for static and dynamic geometry. This parameter determines the type of geometry for standard 3dsmax objects. Note that some objects (displacement-mapped objects, VRayProxy and VRayFur objects, for example) always generate dynamic geometry.

System

Static geometry is precompiled into an acceleration structure at the beginning of the rendering and remains there until the end of the frame. Note that static raycasters are not limited in any way and will consume as much memory as necessary. Dynamic geometry is loaded and unloaded on the fly depending on which part of the scene is being rendered. The total memory taken up by the dynamic raycasters can be controlled within certain limits. Dynamic memory limit - the total RAM limit for the dynamic raycasters. Note that this limit is divided between the number of rendering threads. If you specify 400 MB total limit, for example, and you have a dual processor machine with multithreading enabled, then each rendering thread will use 200 MB for its dynamic raycaster. If this limit is too low, and geometry needs to be loaded and unloaded very often, this may turn out to be slower than rendering in single-threaded mode.

Render region division


Here you can control various parameters of VRay's rendering regions (buckets). The bucket is an essential part of the distributed rendering system of VRay. A bucket is a rectangular part of the currently rendered frame that is rendered independently from other buckets. Buckets can be sent to idle LAN machines for processing and/or can be distributed between several CPUs. Because a bucket can be processed only by a single processor the division of the frame in too small a number of buckets can prevent the optimal utilization of computational resources (some CPUs stay idle all the time). However the division of the frame in too many buckets can slow down the rendering because there is a some time overhead related with each bucket (bucket setup, LAN transfer, etc). X - determines the maximum region width in pixels (Region W/H is selected) or the number of regions in the horizontal direction (when Region Count is selected) Y - determines the maximum region height in pixels (Region W/H is selected) or the number of regions in the vertical direction (when Region Count is selected) Region sequence - determines the order in which the regions are rendered. Note that the default Triangulation sequence is best if you use a lof of dynamic geometry (displacement-mapped objects, VRayProxy or VRayFur objects), since it walks through the image in a very consistent manner so that geometry that was generated for previous buckets can be used for the next buckets. The other sequences tend to jump from one end of the image to another which is not good with dynamic geometry.

System

Reverse sequence - reverses the Region sequence order


Note: When the Image Sampler is set to Adaptive Sampler the size of the buckets will be rounded up to the nearest number which is a power of 2.

Previous render
This parameter determines what should be done with the previous image in the virtual frame buffer when rendering starts. The possible values are: Unchanged - no changes will be made - the virtual frame buffer remains the same; Cross - every second pixel of the image will be set to black; Fields - every other line of the image will be set to black; Darken - the colors in the image will be darkened. Note that this parameter has no effect on the final result of the rendering; it is implemented simply as a convenient way to distinguish between parts from the current frame being rendered, and part left over from the previous rendering.

Distributed rendering
Distributed rendering is the process of computing a single image over several different machines. Note that this is different from distributing the frame over several CPU's in a single machine, which is called multithreading. VRay supports multithreading, as well as distributed rendering. Before you can use the distributed rendering option, you must determine the machines that will take part in the computations. Both 3dsmax and VRay need to be properly installed on those machines, although they don't need to be authorized. You must make sure that the VRay spawner application is running on those machines - either as a service, or as a stand-alone application. Refer to the Installation section for more details on configuring and running the VRay spawner. For additional information on distributed rendering, please refer to the dedicated Distributed rendering section. Distributed rendering - this checkbox specifies whether VRay will use distributed rendering. Settings... - this button opens the VRay Networking settings dialog. See the Distributed rendering section for more information.

System

ShadeContext compatibility
VRay carries all its computations in world space. However, some 3dsmax plugins (notably atmospherics) take it as granted that the renderer works in camera space, because this is what the default scanline renderer does. To preserve compatibility with such plugins, VRay emulates work in camera space by converting the various points and vectors passed to and from other plugins. In addition to slowing down VRay by forcing it to convert values all the time, working in camera space messes up with camera modifiers such as the Technical camera script. This why you have the option of turning off the camera-space emulation.

Frame stamp
The frame stamp is a convenient way to put some short text over the rendered images. It can be useful in many ways - for example, in network rendering, to quickly determine which frames were rendered by which machine. The frame stamp is one line of text, which appears at the bottom of the image. Checkbox - turns the frame stamp on and off. Edit box - here you enter the text you wish to appear in the images. You can also use some special keywords, all of which begin with the percent symbol (%). The keywords are replaced by VRay with the corresponding value: Keyword %vrayversion %filename %frame Meaning the current version of VRay the name of the current scene file the number of the current frame the number of unique intersectable %primitives * primitives generated for the current frame* %rendertime the render time for the current frame %computername the network name of the computer %date the current system date %time the current system time %w the width of the image in pixels %h the height of the image in pixels

System

%camera %<maxscript parameter name> %ram %vmem %mhz %os

the name of the camera for this frame (if rendering from a camera, empty string otherwise) the value of any VRay parameter, given its MaxScript name (see section on MaxScript) the amount of physical memory (in KBytes) installed on the system the amount of virtual memory (in KBytes) available on the system the clock speed of the system CPU(s) the operating system

intersection with a ray (such as a triangle, the infinite plane generated by a VRayPlane plugin etc). Most often, the number of these primitives is the same as the number of triangles (faces) processed by VRay for the current frame. Note that this may be different from the total number of triangles in the scene. With the dynamic raycaster, only geometry that is actually needed is generated and accounted for. Geometry that is not generated is not included in this count. Furthermore, each rendering thread maintains its own geometry cache, and so on multiprocessor machines, dynamic geometry will be counted more than once and the primitive count may differ from one rendering to the next, even if the scene is essentially the same.

* An intersectable primitive is a primitive that provides a direct method for

Font - this button allows you to choose a font and font attributes for the text in the frame stamp. Full width - when this option is checked, the frame stamp will take the whole width of the image, otherwise the stamp will be only as wide as the text is. Justify - specifies the position of the stamp: Left - the stamp is placed on the left of the image. Center - the stamp is centered. Right - the stamp is placed on the right side of the image.

Object Settings / Light Settings


These buttons bring up the dialogs for the local object and light settings.

Presets
This button brings up the presets dialog.

System

VRay log
These parameters control the VRay messages window. During rendering, VRay writes various information in the file C:\VRayLog.txt. The messages window shows some of that information so that you can view it without the need to manually open that file.

Each message can fall into one of four categories, which are colored in a different way in the messages window. Those catergories are errors (colored in red), warnings (colored in green), informative messages (colored in white) and debug messages (colored in black). Show window - when this is turned on, VRay will show the messages window at the start of every render. Level - this determines what kind of messages will be showed in the window: 1 - only error messages 2 - error and warning messages 3 - errors, warnings and informative messages 4 - all messages Log file - this parameter determines the location and the name of the log file. The default log file is C:\VRayLog.txt

Other parameters
Check for missing files - when this is on, VRay will try to find any missing files in the scene and will put up a dialog listing them, if there are any. The missing files will also be printed to the C:\VRayLog.txt file.

System

Optimized atmospheric evaluation - normally in 3dsmax, atmospherics are avaluated after the surface behind them has been shaded. This may be unnecessary if the atmospheric is very dense and opaque. Turning this option on will cause VRay to first evaluate the atmospheric effects, and shade the surface behind them only if the atmospherics are sufficiently transparent. Low thread priority - turning this on will cause VRay to use threads of lower priority when rendering.

VRay Material

VRayMtl parameters
General Parameters Basic parameters BRDF Options Maps Reflect interpolation Refract interpolation Notes

Home Examples

General
A special material - the VRayMtl - is provided with the VRay renderer. This allows for better physically correct illumination (energy distribution) in the scene, faster rendering, more convenient reflection and refraction parameters. Within the VRayMtl you can apply different texture maps, control the reflections and refractions, add bump and displacement maps, force direct GI calculations, and choose the BRDF for the material.

Parameters
Basic parameters
Diffuse - this is the diffuse color of the material. Note the actual diffuse color of the surface also depends on the reflection and refraction colors. See the Energy preservation parameter below. Reflect - reflection color. Fresnel reflections checking this option makes the reflection strength dependent on the viewing angle of the surface. Some

VRay Material

materials in nature (glass etc) reflect light in this manner. Note that the Fresnel effect depends on the index of refraction as well. Glossiness - controls the sharpness of reflections. A value of 1.0 means perfect mirror-like reflection; lower values produce blurry or glossy reflections. Use the Subdivs parameter below to control the quality of glossy reflections. Subdivs - controls the quality of glossy reflections. Lower values will render faster, but the result will be more noisy. Higher values take longer, but produce smoother results. Use interpolation - VRay can use a caching scheme similar to the irradiance map to speed up rendering of glossy reflections. Check this option to turn caching on. See the Reflection interpolation section for more details. Max depth - the number of times a ray can be reflected. Scenes with lots of reflective and refractive surfaces may require higher values to look right. Exit color - if a ray has reached its maximum reflection depth, this color will be returned without tracing the ray further. Refract - refraction color. Note that the actual refraction color depends on the reflection color as well. See the Energy preservation parameter below. IOR - index of refraction for the material, which describes the way light bends when crossing the material surface. A value of 1.0 means the light will not change direction. Glossiness - controls the sharpness of refractions. A value of 1.0 means perfect glass-like refraction; lower values produce blurry or glossy reractions. Use the Subdivs parameter below to control the quality of glossy refractions. Subdivs - controls the quality of glossy refractions. Lower values will render faster, but the result will be more noisy. Higher values take longer, but produce smoother results. This parameter also controls the quality of the translucent effect, if on (see below). Use interpolation - VRay can use a caching scheme similar to the irradiance map to speed up rendering of glossy refractions and translucency. Check this option to turn caching on. See the Refraction interpolation section for more details. Max depth - the number of times a ray can be refracted. Scenes with lots of refractive and reflective surfaces may require higher values to look right. Exit color - if this is on, and a ray has reached the maximum refraction depth, the ray will be terminated and the exit color returned. When this is off, the ray will not be refracted, but will be continued without changes. Fog color - the attenuation of light as it passes through the material. This

VRay Material

option allows to simulate the fact that thick objects look less transparent than thin objects. Note that the effect of the fog color depends on the absolute size of the objects and is therefore scene-dependent. Fog multiplier - the strength of the fog effect. Values above 1.0 are not recommended. Affect shadows - this will cause the material to cast transparent shadows, depending on the refraction color and the fog color. This only works with VRay shadows and lights. Affect alpha - this will cause the material to transmit the alpha of the refracted objects, instead of displaying an opaque alpha. Note that currently this works only with clear (non-glossy) refractions. Translucent - turning this on will make the material translucent - being able to transport light below the material surface. Note that refraction must be enabled for this effect to be visible. The effect is also known as sub-surface scattering (SSS). Currently VRayMtl supports only single-bounce scattering. Thickness - this limits the rays that will be traced below the surface. This is useful if you do not want or don't need to trace the whole sub-surface volume. Light multuplier - a multiplier for the translucent effect. Scatter coefficient - the amount of scattering inside the object. 0.0 means rays will be scattered in all directions; 1.0 means a ray cannot change its direction inside the sub-surface volume. Forward/backward coefficient - controls the direction of scattering for a ray. 0.0 means a ray can only go forward (away from the surface, inside the object); 0.5 means that a ray has an equal chance of going forward or backward; 1.0 means a ray will be scattered backward (towards the surface, to the outside of the object).

BRDF
The BRDF parameters determine the type of the hilights and glossy reflections for the material. There parameters have an effect only if the reflection color is different from black and reflection glossiness is different than 1.0. Type - this determines the type of BRDF (the shape of the hilight): Phong - Phong hilight/reflections Blinn - Blinn hilight/reflections Ward - Ward hilight/reflections

VRay Material

Anisotropy - determines the shape of the hilight. A value of 0.0 means isotropic hilights. Negative and positive values simulate "brushed" surfaces. Rotation - determines the orientation of the anisotropic effect in degrees (rotation in degrees). Local axis - controls how the direction for the anisotropic effect is chosen: Local axis - the direction is based on the selected local object axis. Map channel - the direction is based on the selected mapping channel.

Options
Trace reflections - if this is off, reflections will not be traced, even if the reflection color is greater than black. You can turn this off to produce only hilights. Note that when this is off, the diffuse color will not be dimmed by the reflection color, as would happen normally. Trace refractions - if this is off, refractions will not traced, even if the refraction color is greater than black. Cutoff - this is a threshold below which reflections/refractions will not be traced. VRay tries to estimate the contribution of reflections/refractions to the image, and if it is below this threshold, these effects are not computed. Do not set this to 0.0 as it may cause excessively long render times in some cases. Double-sided - if this is true, VRay will flip the normal for back-facing surfaces with this material. Otherwise, the lighting on the "outer" side of the material will be computed always. You can use this to achieve a fake translucent effect for thin objects like paper. Reflect on back side - if this is true, reflections will be computed for backfacing surfaces too. Note that this affects total internal reflections too (when refractions are computed). Use irradiance map - if this is true, the irradiance map will be used to approximate diffuse indirect illumination for the material. If this is off, direct qmc GI will be used. You can use this for objects in the scene which have small details and are not approximated very well by the irradiance map. Treat glossy rays as GI rays - this specifies on what occasions glossy rays will be treated as GI rays: Never - glossy rays are never treated as GI rays. Only for GI rays - glossy rays will be treated as GI rays only when GI is being evaluated. This can speed up rendering of scenes with glossy

VRay Material

reflections and is the default. Always - glossy rays are always treated as GI rays. A side effect is that the Secondary GI engine will be used for glossy rays. For example, if the primary engine is irradiance map, and the secondary is light cache, the glossy rays will use the light cache (which is a lot faster). Energy preservation mode - determines how the diffuse, reflection and refraction color affect each other. VRay tries to keep the total amount of light reflected off a surface to be less that or equal to the light falling on the surface (as this happens in the real life). For this purpose, the following rule is applied: the reflection level dims the diffuse and refraction levels (a pure white reflection will remove any diffuse and refraction effects), and the refraction level dims the diffuse level (a pure white refraction color will remove any diffuse effects). This parameter determines whether the dimming happens separately for the RGB components, or is based on the intensity: RGB - this mode causes dimming to be performed separately on the RGB components. For example, a pure white diffuse color and pure red reflection color will give a surface with cyal diffuse color (because the red component is already taken by the reflection). Monochrome - this mode causes dimming to be performed based on the intensity of the diffuse/reflection/refraction levels.

Maps
These determine the various texture maps used by the material.

Reflect interpolation
These determine the options for the interpolation of glossy reflections. They are very similar to the options for the irradiance map. Note that it is not recommended to use interpolation for animations, since this may cause severe flickering.

Refract interpolation
These determine the options for the interpolation of glossy reflections. They are very similar to the options for the irradiance map. Note that it is not recommended to use interpolation for animations, since this may cause severe flickering.

Notes
q

Use the VRayMtl whenever possible in your scenes. This material is specifically optimized for VRay and often GI and lighting is computed

VRay Material

much faster for VRay materials than for standard 3dsmax materials.
q

VRayMtl can produce reflections/refractions for matte objects - see VRayMtlWrapper.

VRayMtlWrapper

VRayMtlWrapper
General

Home

The VRayMtlWrapper can be used to specify additional surface properties per material. These properties are also available in the Object settings dialog. Note that settings from the VRayMtlWrapper override those from the Object settings.

Parameters
Base material - this is the actual surface material.

Generate GI - controls the GI generated by the material. Receive GI - controls the GI received by the material. Generate caustics - turn this off, if the material should not generate caustics. Receive caustics - turn this off if the material should not receive caustics. Caustics multiplier - determines the effect of caustics on the material. Matte surface - makes the material appear as a matte material, which shows the background, instead of the base material, when viewed directly. Note that the base material is still used for things like GI, caustics, reflections etc.

VRayMtlWrapper

Alpha contribution - determines the appearance of the object in the alpha channel of the rendered image. A value of 1.0 means the alpha channel will be derived from the transparency of the base material. A value of 0.0 means the object will not appear in the alpha channel at all and will show the alpha of the objects behind it. A value of -1.0 means that the transparency of the base material will cut out from the alpha of the objects behind. Matte objects are typically given an alpha contribution of -1.0. Note that this option is independent of the Matte surface option (i.e. a surface can have an alpha contribution of -1.0 without being a matte surface). Shadows - turn this on to make shadow visible on the matte surface. Affect alpha - turn this on to make shadows affect the alpha contribution of the matte surface. Areas in perfect shadow will produce white alpha, while completely unoccluded areas will produce black alpha. Note that GI shadows (from skylight) are also computed, however GI shadows on matte objects are not supported by the photon map and the light map GI engines, when used as primary engines. You can safely use those with matte surfaces as secondary engines. Color - an optional tint for the shadows on the matte surface. Brightness - an optional brightness parameter for the shadows on the matte surface. A value of 0.0 will make the shadows completely invisible, while a value of 1.0 will show the full shadows. Reflection amount - shows the reflections from the base material. This only works if the base material is directly a VRayMtl. Refraction amount - shows the refractions from the base material. This only works if the base material is directly a VRayMtl. GI amount - determines the amount of GI shadows.

VRayLight parameters

VRayLight parameters
General

Home Examples

This section describes the parameters that control the VRayLight light source.

Parameters
On - turns VRayLight on and off Exclude - allows one to exclude objects from being illuminated or from shadow-casting for the light. Double-sided - when the light is a planar light source this option controls whether light is beamed from both sides of the plane. This field has no effect for spherical light sources. Invisible - this setting controls whether the shape of the VRayLight source is visible in the render result. When this option is turned off the source is rendered in the current light color. Otherwise it is not visible in the scene. Ignore light normals - normally, the surface of the source emits light equally in all directions. When this option is off, more light is emitted in the direction of the source surface normal. Normalize intensity - normally, the intensity of a light source depends on its size - larger sources generate more light than smaller sources. However, when this option is on, the size of the light source will not affect its intensity. The intensity will be the same as if the light source's size was 1 square unit. No decay - normally the light intensity is inversely proprtional to the square of the distance from the light (surfaces that are farther from the light are darker than surfaces which are closer to the light). When this option is on the intensity will not decay with distance. Color - the color of the light. Multiplier - multiplier for the light color. Skylight portal - when this option is on, the Color and Multiplier parameters are ignored, instead the light will take its intensity from the environment

VRayLight parameters

behind it. Store with irradiance map - when this option is on and GI calculation is set to Irradiance map VRay will calculate the effects of the VRayLight and store them in the irradiance map. The result is that the irradiance map is computed more slowly but the rendering takes less time. You can also save the irradiance map and reuse it later. Smooth surface shadows - turning this on will cause VRay to try and avoid blocky shadows that may occur on low-poly objects. Currently this does not work very well. Type Plane - the VRayLight has the shape of a planar rectangle. Sphere - the VRayLight has the shape of a sphere. Dome - the VRayLight acts like the SkyLight object in 3dsmax. The light is coming from a hemispherical dome above the z-axis of the light. U size - the U size of the light source (if Sphere light source is selected U size corresponds to the sphere's radius). V size - the V size of the light source (this field has no effect when Sphere light source is selected). W size - currently this parameter does nothing. It's reserved if (one day) the VRayLight supports box-shaped light sources. Subdivs - this value controls the number of samples VRay takes to compute lighting. Lower values mean more noisy results, but will render faster. Higher values produce smoother results but take more time. Note that the actual number of samples also depends on the QMC Sampler settings.

Shadow params

VRayShadow parameters
General

Home Examples

The VRay shadow plug-in can be used to achieve raytraced shadows with standard 3dsmax lights and VRay. Note that in most cases the standard 3dsmax Raytrace shadows will not work with VRay. You must use VRay shadows. In addition to supporting blurry (or area) shadows, they will also cast correct shadows from objects with VRay displacement, as well as from transparent objects.

Parameters
Transparent shadows - this option determines the behaviour of the shadows when there are transparent objects in the scene. When this option is on, VRay will calculate shadows regardless of the light's Object Shadows settings (Color, Density, Map, etc.), however the color of shadows from transparent objects will be correct. When this option is off, the shadows will take into account the Object Shadows parameters of the light, but shadows from transparent objects will be monochromatic (shades of gray only). Smooth surface shadows - turning this on will cause VRay to try and avoid blocky shadows that may occur on low-poly objects. Currently this does not work very well for long thin faces. Bias - optionally, VRay can compute the shadows at a point that is slightly displaced towards the light from the actual surface being shaded. This may be useful to prevent "surface acne" (black spots on the surface because of incorrect self-shadowing). Area shadow - turns area shadows on and off. Type - determines the way in which the area shadows are calculated: Box - VRay computes the shadows as if they were cast by a light source with the form of a box. Sphere - VRay computes the shadows as if they were cast by a light source with the form of a sphere. U size - the U size of the light source VRay takes into account when

Shadow params

computing area shadows (if Sphere light source is selected U size corresponds to the sphere's radius). V size - the V size of the light source VRay takes into account when computing area shadows (this parameter has no effect when Sphere light source is selected). W size - the W size of the light source VRay takes into account when computing area shadows (this parameter has no effect when Sphere light source is selected). Subdivs - this value controls the number of samples VRay will take to compute area shadows at a given point. More subdivs mean less noise, but will render slower.

VRayMap parameters

VRayMap parameters

Home Examples

General
The VRayMap allows you to add VRay reflections and refractions to standard and other 3rd party materials. It's usage is similar to that of the standard Raytrace map in 3dsmax. However, do not use the Raytrace map with VRay. Use the VRayMap instead.

Parameters

VRayMap parameters

Type - this determines whether the map acts as a reflection map or a refraction map. Note that the VRayMap does not automatically detect this type; you need to set this manually. Reflect - when this option is chosen VRayMap will act like a reflection map. Then the Reflection params section can be used for controlling the settings of the map (Changing settings in Refraction params section will have no effect on the map). Refract - when this option is chosen VRayMap will act like a refraction map. Then the Reraction params section can be used for controlling the settings of the map (Changing settings in Refraction params section will have no effect on the map). Reflection params Filter color - multiplier for the reflections. Do not use the spinner in the material to set the strength of reflections. Use this filter color instead (photon map will not be correct otherwise). Reflect on back side - this checkbox forces VRay to trace reflections always. Using this option in conjunction with a refraction map increases rendering times. Glossy - turns glossy (blurry) reflections on. Glossiness - the glossiness of the material. A value of zero means extremely blurry reflections. Higher values makes reflections sharper. Subdivs - controls the number of rays sent out to evaluate the glossy reflection. More rays mean smoother reflection, but more rendering time. Max depth - maximum ray depth for the map. The map will return the Exit color for rays of greater depth. Cutoff thresh - reflections which contribute little to the final value of an image sample will not be traced. The cut-off threshold sets the minimum contribution for a reflection to be traced. Exit color - the color to be returned when the maximum ray depth has been reached but the reflection has not been computed completely. Refraction params Filter color - multiplier for the refraction. (see Filter color in Reflection

VRayMap parameters

params section). Glossy - turns glossy (blurry) refractions on. Glossiness - (see Glossiness in Reflection params section). Subdivs - (see Subdivs in Reflection params section). Fog color - VRay allows you to fill refractive objects with fog. This is the color of the fog. Fog multiplier -multiplier for the Fog color. Smaller values produce more transparent fog. Max depth - the maximum ray depth for the refractions. (see Max depth in Reflection params section) Cutoff thresh - (see Cutoff thresh in Reflection params section) Exit color - (see Exit color in Reflection params section)

Notes
q

The index of refraction is controlled by the materials, not by the VRayMap. For Standard materials, the index of refraction is set in the Extended parameters rollout.

VRayHDRI

VRayHDRI map
General

Home

The VRayHDRI map can be used to load high dynamic range images (HDRI) and map them onto the environment. Supports most of the standard environment mapping methods.

Parameters

HDR map - the file name of the high dynamic range image. Currently only .hdr and .rad files are supported. Browse - click this button to browse for an HDR image. Multiplier - a control for the brightness of the image. Horiz. rotation - allows rotation of the environment map left and right. Flip horizontally - flips the environment horizontally. Vert. rotation - allows rotation of the environment map up and down. Flip vertically - flips the environment vertically. Map type - chooses the environment mapping type.

VRayEdgesTex

VRayEdgesTex

Home

General
VRayEdgesTex is a very simple texture map that allows you to achieve an effect similar to the wireframe materials is 3dsmax. Since it's a texture, is allows you to create some interesting effects that are not possible with the standard 3dsmax materials.

Parameters

Color - the color of the edges Hidden edges - when checked, this will render all edges of the object. Otherwise, only edges marked as "visible" will be rendered. Thickness - this determines the thickness of the edge lines: World units - the thickness is in world units. Pixels - this thickness is in pixels.

Notes
q

For objects displaced with VRay displacement, the VRayEdgesTex map shows the edges of the original faces, not the edges of the resulting sub-

VRayEdgesTex

triangles:

VRayDisplacementMod

VRayDisplacementMod

Home Examples

>>> Displacement mapping >>>

General
Displacement mapping is a technique for adding detail to your scene geometry without having to model it first. The concept is very similar to bump mapping. However, bump mapping is a shading effect that only changes the appearance of a surface, while displacement mapping actually modifies the surface.

Parameters
Type - the method used to apply displacement mapping: 2D mapping (landscape) - this method bases the displacement on a texture map that is known in advance. The displaced surface is rendered as a warped height-field based on that texture map. The actual raytracing of the displaced surface is done in texture space, and the result is mapped back into 3d space. The advantage of this method is that it preserves all the details in the displacement map. However, it requires that the object has valid texture coordinates. You cannot use this method for 3d procedural textures or other textures that use object or world coordinates. The displacement map can take any values (as opposed to 3D mapping, which will ignore values outside the 0.0-1.0 or black to white range).

VRayDisplacementMod

3D mapping - this is a general method which takes the original surface geometry and subdivides its triangles into smaller subtriangles which are then displaced. It can be applied for arbitrary displacement maps with any kind of mapping. This method can also use the displacement map specified in the object's material. Note that with 3d mapping the displacement map's range of values must be within the 0.0-1.0 range (black to white). Values outside of this range will be clipped. Subdivision - this method is similar to the 3D mapping method, with the difference that it will apply a subdivision scheme to the object, similarly to a MeshSmooth modifier. For triangular portions of a mesh, the Loop subdivision scheme is used. For quadrangular portions, the Catmull-Clark scheme is used. Other polygons are first converted to triangles. If just want to smooth the object, without applying a displacement map, set the Amount parameter to 0.0. Which method to use? In previous VRay versions, there was a great difference between the performance of the two methods, with the 2D mapping being faster in many cases. With the introduction of dynamic geometry handling in VRay 1.45.xx, 3d displacement has become a lot faster for similar or better quality compared to the 2d mapping. Still, for large displaced surfaces like oceans or mountains, the 2d mapping method might work better. Also the 2D mapping method keeps the displacement map in a precompiled state in memory. Large displacement maps can take a lot of RAM. It may be more efficient to use 3D mapping in that case, since it can recycle the memory used for the displaced geometry. Texmap - the displacement map. This can be any texture map - a bitmap, procedural map, 2d or 3d map etc. Note that you can only use textures with explicit UV mapping with 2D displacement, while with 3D displacement any texture can be used. The texture map is ignored if the Use object mtl option is turned on. Texture channel - the UVW channel that will be used for displacement mapping. This must match the texture channel specified in the texture map itself, if it uses explicit UVW mapping. This is ignored if the Use object mtl

VRayDisplacementMod

option is on. Filter texmap - if this is on, the texture map will be filtered. This is ignored if the Use object mtl option is on. Amount - the amount of displacement. A value of 0.0 means the object will apear unchanged (or simply smoothed, if you use the Subdivision method). Higher values produce a greater displacement effect. This can also be negative, in which case the displacement will push geometry inside the object. Shift - this specifies a constant, which will be added to the displacement map values, effectively shifting the displaced surface up and down along the normals. This can be either positive or negative. Use water level - this will clip the surface geometry in places where the displacement map value is below a certain threshold. This can be used for clip mapping. Water level - a displacement map value below which geometry will be clipped. 2D mapping params Resolution - this determines the resolution of the displacement texture used by VRay. If the texture map is a bitmap, it would be best to match this resolution to the size of the bitmap. For procedural 2d maps, the resolution is determined by the desired quality and detail in the displacement. Note that VRay will also automatically generate a normals map based on the displacement map, to compensate for details not captured by the actual displaced surface. Precision - this parameter is related to the curvature of the displaced surface; flat surfaces can do with a lower precision (for a perfectly flat plane you can use 1), more curved surfaces require higher values. If the precision is not high enough you can get dark spots ("surface acne") on the displacement. Lower values compute faster. Shift by average - this will automatically compute a Shift value based on the average values in the displacement map. Tight bounds - this parameter will cause VRay to compute more precise bounding volumes for the displaced triangles, leading to slightly better rendering times. 3D mapping/subdivision params Edge length - this determines the quality of the displacement. Each triangle

VRayDisplacementMod

of the original mesh is subdivided into a number of subtriangles. More subtriangles mean more detail in the displacement, slower rendering times and more RAM usage. Less subtriangles mean less detail, faster rendering and less RAM. The meaning of Edge length depends on the View-dependent parameter below. View-dependent - when this is on, Edge length determines the maximum length of a subtriangle edge, in pixels. A value of 1.0 means that the longest edge of each subtriangle will be about one pixel long when projected on the screen. When View-dependent is off, Edge length is the maximum subtriangle edge length in world units. Max. subdivs - this controls the maximum subtriangles generated from any triangle of the original mesh. The value is in fact the square root of the maximum number of subtriangles. For example, a value of 256 means that at most 256 x 256 = 65536 subtriangles will be generated for any given original triangle. It is not a good idea to keep this value very high. If you need to use higher values, it will be better to tesselate the original mesh itself into smaller triangles instead. From build 1.45.20 onward, the actual subdivisions for a triangle are rounded up to the nearest power of two (this makes it easier to avoid gaps because of different tesselation on neighboring triangles). Tight bounds - when this is on, VRay will try to compute the exact bounding volume of the displaced triangles from the original mesh. This requires presampling of the displacement texture, but the rendering will be faster, if the texture has large black or white areas. However, if the displacement texture is slow to evaluate and varies a lot between full black and white, if may be faster to turn this option off. When it is off, VRay will assume worst-case bounding volumes, and will not presample the texture. With the Subdivision method VRay will always compute the exact bounding volume and this parameter is ignored. Use object mtl - this will cause the displacement map to be taken from the object's material instead of the map selected in VRayDisplacementMod. Note that you will need to disable Max's own displacement mapping through the Displacement checkbox in Max's Common parameters roll-out (not the VRay displacement option in the Global switches roll-out which only disables VRay displacement). Keep continuity - using this will try to produce a connected surface, without splits, when you have faces from different smoothing groups and/or material IDs. Note that using material IDs is not a very good way to combine displacement maps since VRay cannot always guarantee the surface continuity. Use other methods (vertex colors, masks etc) to blend different displacement maps. Edge thresh - when Keep continuity is checked, this controls the extent to

VRayDisplacementMod

which maps on faces with different material IDs will be blended. Note that VRay can only guarantee edge continuity, but not vertex continuity (meaning that the surface will not have gaps along edges, but there may be splits around vertices). For this reason you should keep this value small.

Notes
q

Textures are applied to the displaced surface; therefore textures with "Object XYZ" and "World XYZ" mapping may look different on the displaced object, compared to how they look on the original undisplaced one. If this is not desired (e.g. you want the displacement map to match the texture) use explicit channel mapping for the material textures and leave the "Object XYZ"/"World XYZ" mapping for the displacement map only. Displaced objects will not work properly with shadows maps. The shadow maps will include information about the undisplaced mesh. For small displacement amounts this may work fine. VRayDisplacementMod has no effect on VRayPlane objects, VRayProxy objects or VRayFur objects.

VRayFur

VRayFur

Home

>>> VRayFur >>>

General
VRayFur is a very simple procedural fur plugin. The fur is generated only during render time and is not actually present in the scene.

Creating a fur object


Select any geometric object in 3dsmax, go to the Create panel and choose the VRay category:

VRayFur

Click VRayFur. This creates a fur object with the currently selected object as a source. Select the fur and go to the Modify panel to adjust the parameters.

Parameters

VRayFur

Source object - this is the source geometry for the fur. Length - the length of the fur strands. Thickness - the thickness of the strands. Gravity - this controls the force that pulls fur strands down along the zdirection. Sides - currently this parameter is disabled. The fur is always rendered as polygons facing the traced ray; normals are interpolated to create a smooth appearance. Knots - fur strands are rendered as several connected straight segments; this parameter controls the number of segments. Flat normals - when this option is on, the normal of the fur strands does not vary across the strand width. Although not very precise, this is similar to how other fur/hair solutions work. It may also help with fur antialiasing, making the job of the image sampler a little easier. When this option is turned off, the surface normal varies across the width of the strands, creating the illusion that the strands have cylindrical shape. Direction variation - this parameter adds slight variation to the direction in which fur strands grow from the source object. Any positive value is valid. This parameter should also depend on the scene scale. Length/Thickness/Gravity variation - these add variation to the corresponding parameters. Values are from 0.0 (no variation) to 1.0. Distribution - determines the density of strands over the source object: Per face - specifies the number of fur strands per face of the source object. Every face will generate the specified number of fur strands. Per area - the number of strands for a given face is based on the size of that face. Smaller faces have fewer strands, larger faces have more strands. Every face has at least one strand. Reference frame - this specifices the frame at which the source object

VRayFur

is captured to calculate the face area. The captured data will be used throughout the entire animation to ensure that the number of strands for a given face remains constant during animation. Placement - determines which faces of the source object will generate fur strands: Entire object - all faces will generate fur. Selected faces - only selected faces (for example with a MeshSelect modifier) will generate fur. Material ID - only faces with the specified material ID will generate fur. Generate W-coordinate - in general, all mapping coordinates are taken from the base object. However, the W mapping coordinate can be modified to represent the offset along the hair strands. The U and V coordinates are still taken from the base object. Channel - the channel for which the W coordinate will be modified.

Notes
q

At present the fur has no meaningful representation in the viewport. This will be corrected in future releases. At present the fur will only generate one-segmented motion blur geometry, regardless of the Geometry samples option for motion blur. Avoid applying textures with Object XYZ mapping to the fur. If you need to use a 3d procedural texture, apply a UVW Map modifier to the source object with the option to convert XYZ to UVW coordinates and use explicit mapping for the texture. Avoid having very large triangles covered with fur, since the fur is generated in groups corresponding to triangles of the original mesh. Shadow maps will not include information about the VRayFur. However, other objects will cast shadows on the fur, even with shadow maps. Sharp VRayShadows may produce flickering with VRayFur in animations, because the lighting situation of individual hairs will change very rapidly. Area shadows or VRayLights may produce smoother results. VRayFur will not work with VRayPlane as a base object.

VRayProxy

VRayProxy
General Exporting a mesh to a file The Mesh Export dialog The .vrmesh file format Creating a proxy object Proxy parameters Notes

Home

General
VRayProxy allows you to import geometry from an external mesh at render time only. The geometry is not present in the 3dsmax scene and does not take any resources. This allows the rendering of scenes with many millions of triangles - more than 3dsmax itself can handle.

Exporting a mesh to a file


Before you can import a mesh through a VRayProxy object, you need to create the mesh file first. You can do this in two ways:
q

From MaxScript: select the meshes you want to export and then type doVRayMeshExport() in the Listener window. This will cause the VRay Mesh Export dialog box to appear.

Through the quad-menu: select the meshes you want to export, rightclick in the viewport and select the "VRay mesh export" option. This will cause the VRay Mesh Export dialog box to appear.

The Mesh Export dialog


The Mesh Export dialog allows you to specify the mesh file as well as some export options.

VRayProxy

Folder - this is the folder where the mesh file(s) will be created. Export as single file - this option will take all selected objects and will merge them into one mesh file. This option also stores the transformations of the selected objects. When you import the file with a proxy object, it must be centered at the origin, if you want the objects to be in the same place. Also, since the imported mesh is rendered using the material of the proxy object, all meshes from the file will render with that material. You must use subobject materials and different material IDs if you want them to have different materials. File - this is the name of the file. You don't need to specify a path. The Folder path will be used. Export as multiple files - this option will create one file for each selected object. The name of each file is derived from the name of the correspondig object. 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. Automatically create proxies - this option will create proxy objects for the exported meshes. The proxies will have the correct transformations and materials derived from the original objects. The original objects will be deleted. Pressing the OK button will create the mesh files and the proxy objects. The export process may take some time, depending on the amount of geometry that must be processed.

The .vrmesh file format


Meshes are exported to a special .vrmesh file format. It contains all

VRayProxy

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 the viewports. 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 3dsmax file (which may be different from the file that gets rendered in the end).

Creating a proxy object


After you export a mesh to a .vrmesh file, you need a proxy object to represent it in the 3dsmax scene. To create a proxy object, go to the Create panel and choose the VRay category:

Click VRayProxy and then click in a viewport. A dialog box will appear that allows you to choose the .vrmesh file to import.

VRayProxy

Proxy parameters
Mesh file - this is the source .vrmesh file. Display - controls the display of the proxy in the viewports: bounding box - the mesh is represented as a box in the viewports. preview from file - displays the mesh preview info that is stored in the . vrmesh file.

Notes
q

The geometry generated by the proxy object is not modifiable. Any modifiers applied to the VRayProxy object will be ignored. At present, the .vrmesh file cannot store animated meshes. If you need to create several proxies linked to the same .vrmesh file, it's better to make them instances - this will save memory since the .vrmesh file will be loaded only once. Materials are not saved in the .vrmesh file. Instead, the geometry will be rendered with the material applied to the VRayProxy object. This is because third party materials and procedural textures would be difficult to describe in a general way. In addition, you may want to edit the material independently of the mesh. The resulting .vrmesh files can be rendered outside of 3dsmax - for example, by the standalone version of VRay. Shadow maps will not include information about the proxy objects. If you want the proxy objects to cast shadows, you should use VRay shadows.

VRayPlane

VRayPlane

Home

General
The VRayPlane is a very simple plugin that implements a procedural infinite plane primitive for VRay. The source code of VRayPlane is also available as part of the VRay Geometry SDK.

Creating a VRayPlane
The VRayPlane can be created from the the VRay category of the Create panel:

VRayPlane

Parameters
This plugin has no parameters at the moment.

Notes
q

The position of the plane depends on its transformation in the 3dsmax scene. You can have more than one infinite plane in the scene. The plane is rendered with the material applied to the VRayPlane object. Shadow maps will not include information about the plane object. However, other objects will cast correct shadows on the plane, even with shadow maps.

VRayToon

VRayToon

Home

>>> VRayToon >>>

General
VRayToon is a very simple atmospheric plugin that produces cartoon-style outlines on objects in the scene. The source of VRayToon is available as part of the VRay SDK. Note that VRayToon is not intended to be a full NPR (non-photorealistic rendering) effect. However, it may be useful in many cases.

Why an atmospheric effect?


There are several solutions for adding toon effects to 3d renderings for 3dsmax; most of them function either as special materials (shaders) or as render (post) effects. Each of these approaches has both advantages and limitations. VRayToon has been implemented as an atmospheric effect for several reasons:
q

The implementation is very simple. Works with any geometry supported by VRay, including displaced objects and VRayFur. Works with any camera type supported by VRay (spherical, fish-eye etc). Works with any camera effects (depth of field and/or motion blur). Works with raytraced effects such as reflection and refraction. Smooth and consistent outlines for intersecting objects.

Creating a VRayToon atmospheric effect


VRayToon can be created from the Environment dialog of 3dsmax. To create a VRayToon effect choose Rendering > Effects... from the 3dsmax menu. Then click the Add... button and choose VRayToon:

VRayToon

Parameters
Basic parameters

Line color - this is the color of the outlines. Pixels width - this is the width of the outlines in pixels. World pixels width - this is the widthe of the outlines in world units. Lines closer to the camera will be thicker. Opacity - opacity of the outlines. Normal threshold - this determines when lines will be created for parts of the same object with varying surface normals (for example, at the inside edges of a box). A value of 0.0 means that only 90 degrees or larger angles will generate internal lines. Higher values mean that more smooth normals can also generate an edge. Don't set this value to pure 1.0 as this will fill curved objects completely. Overlap threshold - this determines when outlines will be created for overlapping parts of one and the same object. Lower values will reduce the internal overlapping lines, while higher values will produce more overlap lines. Don't set this value to pure 1.0 as this will fill curved objects completely. Do reflections/refractons - this will cause the outlines to appear in reflections/refractions as well. Note that this may increase render times. Trace bias - this parameter depends on the scale of your scene, it determines the ray bias when the outlines are traced in reflections/refractions. Color map - a texture map for the outline color. Screen-mapped maps will work best. Maps with World XYZ mapping are also supported, but may not work very well. Width map - a multiplier texture for the outline width. Screen-mapped maps will work best. Maps with World XYZ mapping are also supported, but may not work very well. Distortion map - a texture that will be used to distort the outlines. This works similar to bump-mapping and will take the gradient of the texture as direction for distortion. Note that high output values may be required for larger distortion. Screen-mapped textures work best, although World XYZ mapping is also supported. Opacity map - a texture for the outline opacity. Screen-mapped textures work best, although World XYZ mapping is also supported.

Notes
q

VRayToon only provides outlines. You will need to come up with your own cartoon-style materials (for example, using falloff maps etc or other third-party material plugins). VRayToon doesn't work very well with transparent objects. It will be better to use refractive objects with IOR 1.0.

VRayToon

There are no per-object settings. VRayToon will create outlines for all objects in the scene. VRayToon will not work properly with objects that have their Cast Shadows property turned off. The quality of the lines depends on the current settings of the Image sampler.

VRayBmpFilter

VRayBmpFilter

Home

General
The VRayBmpFilter texture map is usually useful for displacement maps, created in external programs (like ZBrush, for example) where exact placement of the map is very important. The VRayBmpFilter map produces a smooth map by interpolating the bitmap pixels, but without applying any additional blurring or smoothing. This is not possible with the default Bitmap texture of 3dsmax.

Parameters
Bitmap - this is the bitmap file. This can be in any format supported by 3dsmax. U offset - allows to position the bitmap more precisely; the value is in pixels of the bitmap. V offset - allows to position the bitmap more precisely; the value is in pixels of the bitmap. Flip U - flips the bitmap in the horizontal direction. Flip V - flips the bitmap in the vertical direction. Channel - mapping channel from which the UV coordinates are derived.

Notes
q

Image sampler examples

Image samplers examples


Example Example Example Example Example Example Example Example Example 1: 2: 3: 4: 5: 6: 7: 8: 9: What is antialiasing? Image samplers comparison Another image samplers comparison Yet another image samplers comparison Texture antialiasing G-Buffer based antialiasing Randomized antialiasing Antialiasing filters Antialiasing filters and moire effects

Home Render params Image sampler params

Example 1: What is antialiasing?


The following example shows the basic difference between an image with antialiasing, and one without: No antialiasing (Fixed rate sampler, 1 subdiv) Antialiasing on (Adaptive subdivision sampler, rate 1/2)

The left images are jagged around the edges of the sphere, while the right are smooth. Here are close-ups of the two images: No antialiasing (Fixed rate sampler, 1 subdiv) Antialiasing on (Adaptive subdivision sampler, rate -1/2)

Image sampler examples

Example 2: Image samplers comparison


Here are some examples demonstrating the quality vs speed of the image samplers. All the samplers were set to produce approximately the same image quality. The first example is a normal smooth image (no blurry effects), click the images for a larger view: Fixed rate (4 subdivs) Two-level (subdivs 1/4) Adaptive subdivision (rate -1/2)

Both the two-level and the adaptive subdivision samplers are substantially faster than the fixed rate sampler.

Example3: Another image samplers comparison


Note: the Sponza Atrium model is created by Marko Dabrovic (http://www.rna.hr) and is one of the models for the CGTechniques Radiosity competition. The Athene model is a free model from the DeEspona Infografica model bank.

Here is a more complex example with some fine textures (lots of fine bump mapping) and an area light; this example uses a precalculated irradiance map - the render times are for the final rendering only. Click the images for a larger view. Fixed rate (4 subdivs) Two-level (subdivs 1/4) Adaptive subdivision (rate 0/2, threshold 0.05)

Image sampler examples

In this case, the two-level sampler performed best, and the adaptive - worst. Why is that? Here is the non-antialiased image (click it for full view), to give an idea of what the image samplers had to deal with.

Some parts of the image are quite "noisy" because of the fine bump map. Lots of image samples were required to smooth this out. Furthermore, each image sample was quite costly to compute - there is an irradiance map and an area light, which (especially the area light) need a lot of computations. With the fixed and two-level samplers, VRay knows in advance how many image samples will be taken for a pixel; therefore it can optimize the computation of some values (the area light for example) so that the final image result is similar, while actually those values are computed with lower accuracy (i.e. tracing fewer shadow rays) for the individial image samples. This can not be done for the adaptive sampler - it does not know in advance how many samples will be computed for a pixel, therefore it needs to maintain a constant (high) accuracy. Constant accuracy is also required in order for the sampler to adapt correctly to the image. This is why, in this example, the adaptive sampler performed worse than the other two methods.

Image sampler examples

Example 4: Yet another image samplers comparison


Note: the dragon model is from one of the example scene files of 3dsmax 4

The third example is an image with direct GI and motion blur (click the images for full view): Fixed rate (4 subdivs) Two-level (subdivs 1/4) Adaptive subdivision (rate 0/2, threshold 0.1)

In this case the fixed rate sampler was the fastest and the adaptive subdivision sampler - slowest of all (admittedly, the image computed with adaptive subivision is very smooth). This is because the cost of supersampling a pixel for the two-level and the adaptive samplers becomes too great. Here is the scene without motion blur, with irradiance map and with the Adaptive subdivision sampler (render time includes GI calculations):

Example 5: Texture antialiasing


This example deals with texture antialiasing and the effect of the color threshold for the Two-level and Adaptive subdivision samplers. VRay does not support Max's mechanism for supersampling materials and maps. Instead, texture antialiasing is controlled by the image samplers. By default VRay antialiases everything in the image, including textures. This is especially useful for textures with small details or noisy bump maps as seen in Example 3. The Color threshold parameter controls the extent to which texture antialiasing is performed. The effect of this parameter is most noticeable with the Adaptive subdivison

Image sampler examples

sampler and low min rates. For the four images below, min/max rate of -3/2 was used: Color threshold 10.0 Color threshold 5.0

Color threshold 1.0

Color threshold 0.1

Note that the edges of the object in those images is always sharp. This is because the Object outline option is turned on - see Example 6. If you set the Color threshold to a high value, you are effectively telling VRay not to antialias textures. You can use this fact to speed up the rendering of complex materials. Note however, that this will disable antialiasing of VRay shadows, reflections etc as well.

Example 6: G-Buffer based antialiasing


In Example 5, the edges of the object are always sharp, regardless of the value of the Color threshold. This is because the Object outline option is turned on. Here are the first and the last of the images from the previous example, rendered with Object outline off: Color threshold 10.0, Object outline off Color threshold 0.1, Object outline off

Image sampler examples

Now the antialiasing of edges depends only on the Color threshold. By default, the Object outline option is on, meaning that the outlines of objects are always antialiased. If there are many small objects in the scene, this may slow the rendering. In that case, it's better to turn this off and use only the Color threshold to control image quality. On the other hand, if there are lots of fine textures in the image, which you don't want supersampled, you can simply turn up the Color threshold. In order to still keep object edges sharp, you'll need the Object outline option. The other options (Normals, Z-Value, Material ID) allow you to choose additional areas in which to force antialiasing. For example, the Normals option allows you to always antialias internal object edges, in addition to the object outline, as shown in the example below (min/max rate -3/2, Color threshold 10.0, Object outline on): Normals off Normals on

Example 7: Randomized antialiasing


Normally VRay places the image sample in a strict grid-like pattern. This may cause unwanted banding of edges that are nearly horizontal or nearly vertical. You can use the Rand option to avoid that. Here is a comparison of an image rendered with and without the Rand option: Rand off Rand on

Image sampler examples

Here are close-ups of the two images: Rand off Rand on

The Rand option can be very useful for images with long thin lines as well.

Example 8: Antialiasing filters


Here is an example briefly demonstrating the effect of different antialiasing filters on the final result. Note that rendering with a paricular filter is not the same as rendering without a filter and then blurring the image in a post-processing program like Adobe Photoshop. Filters are applied on a sub-pixel level, over the individual sub-pixel samples. Therefore, applying the filter at render time produces a much more accurate and subtle result than applying it as a post effect. VRay can use all standard 3dsmax filters (with the exception of the Plate match filter) and produces similar results to the scanline renderer. The Adaptive image sampler was used for the images below, with Min/Max rate of -1/3 and the Rand option on. Filter Image Zoomed-in image Comments

Image sampler examples

Filtering is off

Applies an internal 1x1 pixel box filter

Area filter, size 1.5 (default setting)

Slightly blurrs the image, visually more pleasing than the box filter.

Area filter, size 4.0

Image sampler examples

More blurring

Blend filter

Combination of a sharp and a soft filter, kind of dreamy effect

Catmull-Rom

Image sampler examples

Edge-enhancing filter, often used for architectural visualizations. Note that edge enhancing can produce "moire" effects on detailed geometry.

Mitchell-Netravali

Allows control between edgeenhancement and blurring

MItchell-Netravali, ringing=1.5

Image sampler examples

Strong edge-enhancement.

Mitchell-Netravali, ringing=2.0

Even more edge enhancement; kind of cartoon-style effect

Soften

Image sampler examples

Gaussian blur

Example 9: Antialiasing filters and moire effects


This example demonstrates the effect antialiasing filters have on moire effects in your images. Sharpening filters (Mitchell-Netralavli, Catmull-Rom) may enhance moire effects, even if your image sampling rate is very high. Blurring filters (Area, Quadratic, Cubic) reduce moire effects. Note that moire effects are not necessarily a result of poor image sampling. In general, moire effects appear simply because the image is discretized into square pixels. As such, they are inherent to digital images. The effect can be reduced through the usage of different antialiasing filters, but is not completely avoidable. The scene is very simple: a sphere with a very fine checker map applied, texture filtering is off. The images were rendered with a very high sampling rate (15 subdivs, or 225 rays/pixel). This is enough to produce quite an accurate approximation to the pixel values. Note that the image looks quite different depending on the filter:

Image sampler examples

No filter

Area filter, size=1.5

Area filter, size=4.0

Quadratic filter

Sharp quadratic filter

Cubic filter

Image sampler examples

Video filter

Soften filter,size=6.0

Cook variable, size=2.5

Blend, size=8.0, blend=0.3

Blackman

Mitchell-Netravali, blur=0.333, ringing=0.333

Image sampler examples

Catmull-Rom

Indirect Illumination examples

Indirect illumination examples


Example 1: Comparisons of different GI methods Example 2: GI caustics Example 3: Light bounces

Home Render params Indirect illumination

Example 1: Comparisons of different GI methods


Here is a scene rendered with different GI algorithms in VRay. Combining the different GI engines allows great flexibility in balancing time versus quality of the final image.

QMC GI, 4 bounces. The image is darker because only 4 light bounces are computed. Notice the grain and the long render time.

Irradiance map + QMC GI, 4 bounces. The image is darker because only 4 light bounces are computed. The grain is gone, although the GI is a little blurry (see the GI caustics below the glass sphere).

Light cache only. Very fast, but shadows are blurry (Store direct light for the light map is on).

Light cache and direct lighting (Store direct light is off).

Indirect Illumination examples

QMC GI + light cache, there is some grain in the GI but is a lot faster than QMC GI alone.

Irradiance map + light cache; probably the best quality/speed ratio.

Photon map only, notice the caustics from the glass sphere, as well as the dark corners.

Photon map and direct lighting

Photon map with precomputed irradiance only; splotchy, but faster than a raw photon map.

Irradiance map + photon map, notice the dark corners and incorrect shading on the letters.

Irradiance map + photon map with retracing of corners; corners are better although still a little dark

Irradiance map + photon map with precomputed irradiance, with corner retracing

Indirect Illumination examples

Irradiance map + light cache with GI caustics enabled (notice the slowdown because of the caustics)

Light cache in Progressive path tracing Mode with photon-mapped caustics. Render time is quite high.

Example 2: GI caustics
This example shows GI caustics generated by a self-illuminated object:

Indirect Illumination examples

Example 3: Light bounces


This example shows the effect of the number of light bounces on an image:

Indirect Illumination examples

Direct lighting only: GI is off 1 bounce: irradiance map, no secondary GI engine

2 bounces: irradiance map + QMC GI with 1 secondary bounce

4 bounces: irradiance map + QMC GI with 3 secondary bounces

8 bounces: irradiance map + QMC GI with 7 secondary bounces

Unlimited bounces (complete diffuse lighting solution): irradiance map + light cache

Irradiance map examples

Irradiance map examples


Example Example Example Example Example 1: 2: 3: 4: 5: Interpolation methods The Delone triangulation method Sample look-up Check sample visibility The Max rate and control of detail

Home Render params Irradiance map

Example 1: Interpolation methods


The following examples shows the main differences between a blurry interpolation method (Least squares fit) and a non-blurry one (Delone triangulation). Notice how the images in the first column are more blurry, while the images in the second column are sharper. Comment Blurry method (Least squares fit) Non-blurry method (Delone triangulation)

The scene is a simple cube on a sphere as seen from above, lit by a HDRI map. Low hemispheric subdivs and low irradiance map rates were used intentionally so that the difference is more obvious. Both images were rendered with exactly the same irradiance map.

This scene shows the ability of the Delone triangulation method to preserve detail. Notice that the shadows in the right image are sharper. Both images used the same irradiance map.

Irradiance map examples

A close-up of the previous scene. The irradiance map is exactly the same as for the two previous images (it was saved and then loaded from disk).

Example 2: The Delone triangulation method


This example shows the triangles used by the Delone triangulation method to interpolate samples in the irradiance map. Note that the triangles are constructed on the fly from the irradiance samples; no actual mesh is ever created. The vertices of the shown triangles correspond to samples in the irradiance map. On-the-fly Delone triangulation || Interpolated result

Irradiance map examples

Irradiance map examples

Example 3: Sample look-up


The following examples show the differences between the three sample lookup methods and more specifically, their behaviour in areas with changing sample density. This is the test scene, the left image shows the final image and the right image shows the samples in the irradiance map (it was rendered with the Show samples option checked). The scene itself is a sphere on a plane, lit by a VRay area light and a little skylight. The area light had the option Store with irradiance map checked.

Test scene

The samples in the irradiance map

As one can notice, the density of the samples is quite different in the uniformly lit areas and in the shadow transition area. The following three images used exactly the same irradiance map with the Least squares fit interpolation method.

Irradiance map examples

Nearest lookup method

Nearest quad-balanced lookup method

Precalculated overlapped method

You can see the ringing artifacts (the white halo around the shadow) caused by the different sample density in the first two images. The last image, rendered with the Precalculated overlapping method is free from those artifacts. It also rendered faster than the other two images. As a comparison, here is the same image rendered with the Delone triangulation interpolation method.

Nearest lookup method

Nearest quad-balanced lookup method

Precalculated overlapped method

The images are nearly identical. This is because the Delone triangulation method, being a non-blurry method, is less sensitive to the samples that are being looked up, so long as the delone trianglulation can be performed successfully from them.

Irradiance map examples

Example 4: Check sample visibility


The following examples demonstrate the effect of the Check sample visibiliy parameter. The scene is a thin wall lit on the two sides by two VRay area lights with different color. Both lights had the Store with irradiance map option checked. The two images are rendered with the Medium irradiance map preset.

Check sample visibility is off

Check sample visibility is on

Notice the light leak in the first image. This happens because near the thin wall VRay will use samples from both the sides. When Check sample visibility is turned on, VRay will discard the samples from the wrong side. As a comparison, here is the same image rendered with the High irradiance map preset and Check sample visibility turned off.

High irradiance map preset, Least squares fit

High irradiance map preset, Delone triangulation

Irradiance map examples

The light leak effect is negligible in the left image, and completely absent in the right one. This is because the High irradiance map preset will cause VRay to take additional samples at the base of the thin wall, thus decreasing the leaking effect. Using a non-blurry interpolation method (Delone triangulation) further limits this effect. The conlcusion is that turning on Check sample visibility is only useful for low irradiance map settings. Also note that this option may not work very well for curved objects.

Example 5: The Max rate and control of detail


The following examples show how the Max rate of the irradiance map determines the detail in the GI solution. The scene contains small details with sizes less than a pixel. Note how a higher Max rate leads a more accurate approximation with the irradiance map, but also to increased rendering times. Note also that the differences between the irradiance map and the QMC solution appear only in areas with small details. Large flat areas are handled by the irradiance map very easily and accurately. Choosing an appropriate Max rate depends on what details you have in your scene and on the desired quality. If the image contains relatively flat surfaces with little detail, you can use a lower Max rate. If the scene contains a lot of small sub-pixel details, you need a higher Max rate too. Above a certain point of detailness, the irradiance map becomes too slow and in that case, QMC GI might perform better. Settings Image Exaggerated difference with the QMC GI solution

Fixed AA and QMC GI (correct GI solution)

N/A

Irradiance map examples

QMC AA and Medium GI preset (Max rate is -1)

QMC AA and High GI preset (Max rate is 0)

QMC AA and modified High GI preset (Max rate is 1)

Irradiance map examples

QMC AA and modified High GI preset (Max rate is 2)

Caustics examples

Caustics examples
Common settings for the following images: Sph. subdivs = 50, Multiplier = 17000, Max photons = 60. The number of photons (Sph. subdivs) is deliberately lowered so that separate photons are more distinct.

Search dist = 1

Search dist = 10

Common settings for the following images: Sph. subdivs = 300, Multiplier = 1700, Max photons = 60. The number of photons is increased from the previous renderings but is still lower from the default settings of VRay.

Search dist = 1

Search dist = 5

Common settings for the following images are: Sph. subdivs = 4000, Multiplier = 17000, Search distance = 0.5. The number of photons is increased quite much and the search distance is lowered so that the effect of the Max photons setting is more obvious.

Max photons = 1

Max photons = 60

The following images demonstrate the caustics produced by glossy and non-glossy refractive materials.

Caustics examples

Common settings: Multiplier = 17000, Search dist = 5, Max photons = 60.

Glossiness = 1.0

Glossiness = 0.9, Max photons = 200, Search dist = 15

QMC sampler examples

QMC sampler examples


Example 1: Noise vs Speed

Home Render params QMC sampler

Example 1: Noise vs Speed


You can use the QMC sampler as global quality control, particularly the Early termination parameters. For lower quality:
q

increase the Amount increase Noise reduce Min samples

For higher quality:


q

decrease the Amount decrease Noise increase Min samples

These controls have effect on everything: DOF, GI, glossy stuff, area lights etc. Color mapping mode also affects render times and sampling quality, since VRay tries to distribute samples based on the final image result. The images below have the same subdivs for DOF (10 subdivs), GI (50 subdivs, Direct method), glossy reflection (50 subdivs, no interpolation), area light (10 subdivs) for all images. Notice how changes in the QMC sampler parameters affect the image quality and render time (click the images to enlarge them): Early termination settings Amount Noise Min samples Render time

QMC sampler examples

0.85

0.005

15

8m 43.7s

0.95

0.01

4m 34.5s

0.95

0.05

1m 35.8s

QMC sampler examples

0.99

0.05

0m 49s

1.0

0.1

0m 28.6s

G-Buffer and Color Mapping Examples

G-Buffer and Color Mapping Examples


Example 1: Color mapping modes Example 2: Render elements and combinations

Home Render params

GBuffer/ Color mapping

Example 1: Color mapping modes


This example demonstrates the differences between the color mapping modes:
Note: the Sibenik Cathedral model is created by Marko Dabrovic (http://www.rna.hr) and is one of the models for the CGTechniques Radiosity competition.

Linear color mapping

Exponential color mapping

HSV exponential color mapping

G-Buffer and Color Mapping Examples

Linear color mapping

Exponential color mapping

HSV exponential color mapping

As visible in the above images, the Linear mapping method clamps bright colors to white, causing bright parts of the image to

G-Buffer and Color Mapping Examples

appear "burnt out". Both the Exponential and HSV exponential modes avoid this problem. While the Exponential mode tends to wash out the colors and desaturate them, the HSV exponential mode preserves the color hue and saturation.

Example 2: Render elements and combinations


Here are some examples of render elements and their combinations. Note that the original elements were generated by VRay on one pass (no re-rendering required). Normally, render elements are added to each other in order to reproduce the final result; however, there are a few exceptions:
q

the Raw GI and Raw Lighting elements must be multiplied by the Diffuse element before they are added to the final image. the Shadow element is not, strictly speaking, a part of the image; however, it can be added to the Raw Lighting element to adjust the shadow intensity. Simply adding the two elements produces lighting as though no shadows were computed.

Also note that multiplying the Raw GI element by the Diffuse element will give the Global Illumination element; multiplying the Raw Lighting element by the Diffuse element gives the Lighting element. This gives the user more freedom for adjusting the scene lighting.

RGB color

Real RGB color; notice the worse antialiasing on very bright parts (the area light and its reflections)

Self-illumination only

Direct Lighting only

G-Buffer and Color Mapping Examples

Global illumination only

Reflections only

Refractions only

Diffuse color only

Raw lighting

Shadows only; note the aliasing at the box shadow - this is because the RGB Color channel does not require more samples in that area

Raw GI only

Raw lighting + shadows (added); the resulting illumination is as though shadows were turned off.

G-Buffer and Color Mapping Examples

Raw lighting * diffuse (multiplied); the result is the same as the Direct Lighting only channel

Raw GI * diffuse (multiplied); the resuilt is the same as the GI only channel

Self-illumination + Direct lighting + Global illumination + Reflection + Refraction (all added); the result is the same as the Real RGB Color channel

Indirect Illumination examples

VRay global switches examples


Example 1: Secondary rays bias

Home Render params Global switches

Example 1: Secondary rays bias


This example shows the effect of the Secondary rays bias parameter. The scene below has a box object with a height of 0.0, which makes the two sides of the box to occupy exactly the same region in space. Due to this, VRay cannot resolve unambiguously intersections of rays with these surfaces. The first image shows what happens when you try to render the scene with the default settings. You can see the splotches in the GI solution, caused by the fact that rays randomly intersect one or the other surface:

In the second image below, the Secondary rays bias is set to 0.001, which offsets the start of each ray a little bit along its direction. In effect, this makes VRay skip the problemmatic surface overlaps and render the scene correctly:

Indirect Illumination examples

Note that the Secondary rays bias affects only things like GI, reflections etc. In order to render the scene properly, the material assigned to the box has its 2-sided option checked. This is so that the object looks in the same way regardless of whether the camera rays hit the top or the bottom of the box. If the material did not have this option checked, it would appear "noisy" even though the Secondary rays bias is greater than 0.0:

Camera examples

Camera examples
Example 1: Camera types Example 2: Camera types explained

Home Render params Camera

Example 1: Camera types


The images below show the difference between the different camera types:

Standard camera

Spherical camera

Cylindrical camera

Camera examples

Orthographic cylinder

Box camera

Fish-eye camera

Example 2: Camera types explained


This example shows how the rays for different camera types are generated. The red arcs in the diagrams correspond to the FOV angles.

Camera examples

Standard

Spherical

Cylindrical (point)

Cylindrical (ortho)

Box

Fish-eye

Displacement examples

Displacement Examples
Example Example Example Example Example Example 1: 2: 3: 4: 5: 6: Displacement vs Bump mapping Clip mapping A Landscape Displacement on a character The Keep continuity option Subdivision displacement

Home VRayDisplacementMod

Example 1: Displacement vs Bump mapping


This example shows the difference between bump mapping and displacement mapping. Notice the round outline of the sphere and its shadow in the case of bump mapping, and the deformed outline produced by the displacement:

Bump mapping

Displacement mapping

The displacement map in this case is a 3d Cellular map; the 3D displacement method was used.

Displacement examples

Example 2: Clip mapping


This example demonstrates the use of displacement mapping to clip away geometry from an object. The displacement map is a mix of a Noise map and a tiled Gradient ramp map; the dark regions of the map are clipped away:

In this case the displacement map was applied to an explicit mapping channel; 2D displacement was used in this case.

Example 3: A Landscape
This is an example of a displaced landscape; 2D displacement was used; the displacement map is a Simbiont procedural texture.

Displacement examples

Example 4: Displacement on a character


This example shows displacement on a character; the map is a 3D cellular map, so the 3D displacement method is used. Note that if the character is animated and the map is a 3d map using Object XYZ mapping, then the map will change relative to the object surface, since the surface itself changes its position in space. If you want to lock 3d procedural maps to the surfaces of animated objects, apply a UVW Map modifier with mode set to XYZ to UVW to the objects, and use Explicit mapping channel for the procedural map.

Displacement examples

Character without displacement

Character with displacement

Example 5: The Keep continuity option


The Keep continuity option is useful for objects with disjoint normals on neighboring triangles, usually because of different smoothing groups. In the middle image below you can see the edge splits produced by disjoint normals. Using the Keep continuity option avoids this problem. This option will also help to produce a smoother result across material ID boundaries for objects with multi/subobject materials.

Displacement examples

No displacement

Keep continuity is off

Keep continuity is on

Example 6: Subdivision displacement


Here is an example of subdivision displacement (head model by Alexander Sokerov):

Displacement examples

No subdivision/displacement

Only subdivision (displacement Amount is 0.0)

Subdivision and displacement

VRayLight examples

VRayLight examples
Example Example Example Example 1: 2: 3: 4: Single-sided vs Double-sided lights Size of lights, shadows and intensity Real-world lights have inverse-square falloff Skylight, self-illuminated panels and VRayLights

Home VRayLight

Example 1: Single-sided vs Double-sided lights


This example demonstrates the difference between a single-sided and a double-sided planar area light:

Double-sided is off

Double-sided is on

Example 2: Size of lights, shadows and intensity


The following images show how the size of a light affects shadows. Bigger lights produce blurrier shadows, while smaller lights produce sharper shadows:

VRayLight examples

U size = 3.0; Normalize intensity is on

U size = 6.0; Normalize intensity is on

U size = 12.0; Normalize intensity is on

In the above images, the light appears to be of constant intensity. This is because the Normalize intensity option was turned on. This is what the three images look like with Normalize intensity off (the default). Larger luminaires have larger surfaces, which means that they emit more light. Note that the light multiplier had to be adjusted compared to the previous three images in order to produce similar light intensity; however, it is the same multiplier for all three images.

VRayLight examples

U size = 3.0; Normalize intensity is off (default)

U size = 6.0; Normalize intensity is off (default)

U size = 12.0; Normalize intensity is off (default)

Example 3: Real-world lights have inverse square falloff


The following images demonstrate the No decay parameter. In the real world the light sources attenuate with the inverse square of the distance from the light to the shaded surface. However you can disable light decay to achieve behavior similar to the standard 3dsmax lights. The settings for the light source the same for both images with the exception of the Decay parameter:

VRayLight examples

No decay is off (default)

No decay is on

Example 4: Skylight, self-illuminated panels and VRayLights


Here is an example of a simple room where the light comes from the environment. The scene was rendered in several different ways:
q

with just environment skylight with irradiance map as a primary engine; with a self-illuminated panel at the window, again with the irradiance map as a primary engine; with a VRayLight at the window and the irradiance map as a primary GI engine; with just environment skylight but with QMC GI as a primary engine.

In all cases, the Light cache was used as a secondary GI engine. The environment, the self-illuminated panel, and the VRayLight all have the exact same color and multiplier.

VRayLight examples

Environment light (skylight) only

Self-illuminated panel at the window

VRayLight at the window

Environment light (skylight) only and QMC GI

VRayLight examples

As you can see, all methods produce the same light distribution, but there is a difference between render times and quality. In the first two cases, we rely on the irradiance map to capture the lighting coming from the window. The result is very similar, as well as the rendering times. Since the irradiance map is a blurry method, the shadows come out a little blurred. Although we can reduce the blurring by using higher irradiance map settings, this will cost us additional render time. In the third case, since we use a VRayLight, the shadows come out very sharp and nice, and the rendering time is reduced. This is because the irradiance map was calculated much faster - in the previous two cases, it had to trace a lot of rays to sample the window accurately. In the fourth case, we used QMC GI instead of the irradiance map. This produces sharp shadows too, since the QMC GI is a nonblurry GI method. However, render time has increased quite a lot. In this exampe, using a VRayLight produces the best result in the shortest time. However, if you need to have many lights, this method can become quite slow, since every single light needs to be sampled.

Indirect Illumination examples

Light cache examples


Example 1: The Subdivs parameter Example 2: The Sample size parameter Example 3: The Scale parameter

Home Render params Light cache

Example 1: The Subdivs parameter


The Subdivs parameter controls the number of rays that are shot into the scene, and the "noise" quality of the light cache samples. Here is a scene rendered with different settings for the Subdivs parameter, all other settings are the same.
q

As we add more samples, the noise is reduced, but the render times increase. When the Subdivs parameter is increased twice, the light cache takes approximately 4 times as long to calculate.

Indirect Illumination examples

Subdivs = 500

Subdivs = 1000

Subdivs = 2000

Example 2: The Sample size parameter


The Sample size parameter controls the size of the individual light cache samples. Smaller values produce a more detailed lighting solution, but are noisier and take more RAM. Larger values produce less detail, but take less RAM and may be faster to calculate. Here is a scene rendered with different values for the Sample size parameter. All other values are the same.
q

Note the light leak from the wall on the right in the last image - this is because samples from the other side of the wall are quite large (because of the Screen Scale) and end up being used on the side facing the camera (compare this with the World Scale in Example 3). Note the difference in the noise level between the samples.

Indirect Illumination examples

Sample size = 0.01

Sample size = 0.02

Sample size = 0.04

Example 3: The Scale parameter


The Scale parameter determines whether the Sample size and Filter size parameters are in screen space, or world space. In the table below, the Screen scale was used, and the scene was rendered with different image and world sizes. The Sample size was constant for all images - the default 0.02.
q

As you can see, we always get the same number of light cache samples for all cases, regardless of resolution or scene size - in fact, when scaled to the same size, the images look identical. This is why the Screen Scale is applicable to the large variety of scenes.

Scene scaled down to 50%

Normal scene

Scene scaled up to 200%

Indirect Illumination examples

Resolution 250x300

Resolution 500x600

Indirect Illumination examples

Resolution 1000x1200

In the table below, the World Scale mode was used. Again, the scene is rendered at three different resolutions and scales, but with the same light cache parameters. The sample size was set to be 1/5th of the sphere radius in the scene at normal scale.
q

You can notice that the number of samples again does not depend on the image resolution, but it does depend on the scene size. Also notice how the samples near the camera appear larger because of the perspective - in difference from the Screen Scale mode which compensates for this effect and tries to make the samples with more or less equal size on the image. Another thing to note is that we don't get light leaks (compare with Example 2), even when the samples are relatively large - this is because the World Scale forces a uniform sample size on both sides of the right wall.

Scene scaled down to 50%

Normal scene

Scene scaled up to 200%

Indirect Illumination examples

Resolution 250x300

Resolution 500x600

Indirect Illumination examples

Resolution 1000x1200

Distributed rendering

Distributed rendering
Introduction

Home

Distributed rendering is a technique for distributing a single render job within a single frame across many computers in a network. There are different approaches of doing this but the main concept is to reduce the render times by dividing different parts of the rendering pipeline and giving each participant different parts of the job. The most common way to do this is to divide the frame to be rendered into small regions(buckets) and give each machine to render a number of them. Then get the results and combine them into the final image.

VRay organization
VRay supports DR. It divides the frame into regions and spreads them across the participants in the distributed rendering. This is done completely through TCP/IP protocol which is the standard protocol of the Internet and thus the most common protocol that is supported by the hardware. VRay itself does not need additional file or directory sharing (note that you may actually need some file/directory sharing for the bitmaps or other additional files used during rendering). The distribution management is divided into Render Clients and Render Servers.

Render Clients
The render client is the computer that the user is currently using and from which the rendering is started. It divides the frame into rendering regions and spreads it across the Render Servers. It distributes data to the render servers for processing and collects the results.

Render Servers
A render server is a computer that is part of the so-called render farm - it requests render data from the render client, processes it and sends the result back.

Installation notes
See the distributed rendering section in the install instructions.

How to test

Distributed rendering

First start with the testing of the render server:


q

Start the vrayspawnerXX.exe program. It will automatically try to find the 3dsmax.exe file and start it in server mode. You should end up with 3dsmax minimized down in the task bar. It should have the title "vraydummy.max". If 3dsmax stays there alive without closing then you have the Render Server part working. Now test the render client:
q

Open your 3dsmax as you normally would. Open a scene you would like to render (preferably a simple one for this test). Choose VRay as your current renderer and make sure you have checked Distributed Rendering ON in the VRay System section. Press the Settings button in the Distributed Rendering section. Add the machines used for rendering - either with their IP address or their network name and close the dialog. Render the scene as you normally would. You should see the buckets rendered by the different servers. Buckets rendered by the client itself will be marked with IP address "0.0.0.0".

If something fails
Practically every action taken by VRay DR is logged. You can find all the log files in the C:\ directory and find out what has failed. If you do not understand the problem you can compress and send the files to us to analyze them and eventually try to help - vray@chaosgroup.com If any of the servers fails, you should get a notification and the render client will try to reassign the buckets to another server.

VRay Distributed rendering settings


The Distributed

Distributed rendering

rendeing settings dialog is accessible from the System rollout of the renderer settings. Add server - this button allows you to manually add a server by entering its IP address or network name. Remove server - this button deletes the currently selected server(s) from the list. Resolve servers - this button resolves the IP addresses of all servers.

Notes
q

Every render server must have all the plugins and texture maps in their proper directories loaded so that the scene you are sending will not cause them to abort. For example having a PHOENIX plugin used in the scene will cause a server failure in any of the servers that do not have the PHOENIX plugin installed. If you have mapped your object with a file named JUNGLEMAP.JPG and you do not have that map in the BITMAPS directories of the render server installation - you will get bucket rendered at that machine as if the map was turned off.

Rendering an animation sequence in distributed rendering mode is not supported. Use distributed rendering only for single frames.

Incremental add to current map and Add to current map modes for the irradiance map are not supported in Distributed rendering mode. In Single frame mode and Bucket mode, the calculation of the irradiance maps is distributed among the render servers to reduce the render time.

When you cancel a DR rendering, it may take some time for the render servers to finish working and they may not be immediately available for another render.

Distributed rendering
q

Currently the only G-Buffer channels available in DR mode are RGB and Alpha. This restriction will be removed in a later release.

Tutorials

Tutorials

Home

This tutorial section presents step-by-step walkthroughs for some of the most common rendering tasks. Some of the tutorials also demonstrate specific usage of VRay's features. Irradiance map modes: rendering a static scene from multiple views Rendering a walk-through animation Photon mapping Displacement Rendering an interior scene Progressive path tracing with VRay Rendering surface interfaces Rendering an animation with moving objects

Rendering a static scene from multiple views

Irradiance map modes: Rendering a static scene from multiple views

Home Tutorials

In this tutorial we will examine ways to efficiently render a static scene from multiple views. This is the scene we will use for the tutorial:

We want to efficiently render several views of this scene, using the irradiance map. The different irradiance map modes will help us in this task. First open the starting scene. By default the irradiance map mode is set to Single frame. This allows us to render the scene from any view, but every time the irradiance map will be computed from scratch. There are two cameras in the scene. Render each of them:

Rendering a static scene from multiple views

We could render a single view, save the irradiance map, and tell VRay to use that map, instead of computing a new one the next time. Since the irradiance map from the last rendering is still in memory (we have the Don't delete option in the On render end group set), all we have to do is open the Advanced irradiance map parameters rollout and click the Save to file button. Choose a file name, for example "test", and save the irradiance map. Now that we have map saved to disk, we have to tell VRay to use that map. Change the irradiance map mode to From file, click the Browse button and select the file we just saved. Re-render the image. Notice that now VRay does not calculate an irradiance map, but skips directly ahead to the rendering.

Rendering a static scene from multiple views

Since no irradiance map is computed, the rendering is very fast. What if we want to render the first view at this moment? This is what happens:

Clearly this is not what we want, but why does it happen? The irradiance map is only partially view-independent - meaning that a single sample in the irradiance map is valid for any view, but the samples for a given view are optimally generated for that view only. VRay will not calculate the irradiance map for parts of the scene that are out of view. If you check the Show samples option in the Indirect illumination rollout and render the scene, you can see where the actual samples are:

Rendering a static scene from multiple views

Is it possible to render this new view using the old samples and add new ones only where it is necessary? The answer is "yes". Just set the irradiance map mode to Incremental add to current map. Remember that the current irradiance map is still in memory. Render the view:

Rendering a static scene from multiple views

VRay has added more samples to the irradiance map. Here is a comparison of the old map (green samples) and the new map (red samples):

Rendering a static scene from multiple views

Now, let us see what the scene looks like with the this map. Save the irradiance map to the same file, set the mode to From file, turn off Show samples and render:

Rendering a static scene from multiple views

In fact it is not necessary to go through the whole save/load procedure every time. Set the mode again to Incremental add to current map. Change the current view to perspective view and render some more random views - simply change the view and render. Do this several times. Here are the views I rendered: (click an image for a larger rendering):

Rendering a static scene from multiple views

After you render some views, save the irradiance map to a file by clicking the Save to file button. Save it to the same file as before. We are going to need this map in a moment. As a comparison, here is the last of these images, re-rendered with the irradiance map mode set to Single frame (which means that a completely new irradiance map was generated):

Rendering a static scene from multiple views

Notice the increased render time - generating a new map is more costly than using the one already in memory as a basis. Let's go back to the saved irradiance map. Now it contains information for quite a large portion of our scene. We can use that to render other views without adding any more irradiance samples. Set the mode to From file. Choose a view that is roughly similar to a view you have rendered before and render:

Rendering a static scene from multiple views

Note that we did not do any irradiance calculations for this image! We used only the irradiance map that we have computed so far. This is possible because the irradiance map already contained enough information to render this view, even though we have not rendered it before. If the irradiance map did not contain enough information, we would get artifacts as before, and would have to use the Incremental add to current map mode to fill in the missing information. As a conclusion, here is a basic workflow that can be used to render a static scene from multiple views:
q

First prepare the scene (geometry, materials, lighting etc) Adjust the irradiance map settings for the required level of detail (e.g. chose a suitable preset) and tune the other render parameters. Clear any previous irradiance map from memory in order to avoid weird results Set the irradiance map mode to Incremental add to current map

Rendering a static scene from multiple views


q

Render as many views as you need. The first one will be slow, since a full irradiance map will be computed. Each of the next views will be faster depending on how relevant the memory irradiance map is to that view. You can save the accumulated irradiance map to a file. That map can be used to render quickly other views of the scene, if required later on. To load the saved map, you need to set the mode to From file, enter the correct file name and render any image. You can then set the mode back to Incremental add to current map and continue rendering other views. If you are sure the map already contains enough information, you can simply leave the mode to From file.

Note that if you make any changes in the scene (e.g. add/delete objects, change materials or lights etc) the irradiance map that is in memory will no longer be relevant to the scene and you will need to reset the irradiance map and start all over again.

Rendering fly-through animations

Rendering a walk-through animation

Home Tutorials

General Part I: Calculating the light cache Part II: Calculating the irradiance map Part III: Rendering the final animation Notes Discussion

General
In this tutorial we will render a walk-through animation of a static scene, where nothing but the camera moves. We will use global illumination to light the scene, which makes the task somewhat complicated. GI is usually too slow to calculate from scratch and with sufficient quality for each frame of the animation. To optimize this process and save rendering time, we can use the fact that the scene is static and the camera is the only thing that moves. Most of the GI solutions used in VRay (irradiance map, photon map, light cache) are either fully or partially view-independent, and we can use this fact to reduce rendering times. For this tutorial, we will use the irradiance map as a primary GI engine, and the light cache as a secondary engine. To make the process easier to understand, we will render the scene in three steps. In the first step, we will calculate the light cache for the entire animation. In the second step, we will calculate the irradiance map. In the third step, we will render the final animation. Note that you don't have to use this method to render walk-throughs. You can always use a slower brute-force approach and avoid having to deal with

Rendering fly-through animations

all the issues around precalculating the various GI solutions. However, you pay for this with render times.

Part I: Calculating the light cache


1.1. Open the starting scene. 1.2. Assign V-Ray as the current renderer. 1.3. Set the Background color in the 3dsmax Environment and Effects window to RGB 252,252,252. 1.4. In the Render scene dialog, turn Global illumination on and set both the Primary GI engine and the Secondary GI engine to Light cache. 1.5. Set the Image sampler type to Fixed for faster previews. 1.6. Turn on Show calc. phase in the Light cache rollout. 1.7. Check the skylight Override MAX's checkbox in the Environment rollout. 1.8. Set the skylight color to RGB 252,253,255 and HSV(156,3,255). 1.9. Set the skylight color Multiplier to 4.0. 1.10. Uncheck the Default lights checkbox in the Global switches rollout. This will remove the default max lighting in the scene and it will by lit only by the environment skylight. 1.11. Go to the Camera rollout and change the Camera type to Fish eye. 1.12. Uncheck the Auto-fit checkbox, change the Dist value to 1.0 and Curve to 0.35. We set the camera to Fish-eye to produce a more interesting effect. 1.13. Render frames 0 and 360 for reference.

Rendering fly-through animations

The light cache doesn't look bad, but we will need to calculate it for the entire walk-through animation, and not for a single frame only. Note that this is not strictly necessary - we can render the animation with the light cache being calculated each frame; however, rendering it only once will save rendering time, especially for long animations. 1.14. Set the light cache Mode to Fly-through. Make sure that the timeline animation range matches the range which you want to render. This is important because the light cache will look at the current timeline animation range when calculating the fly-through cache. Since all the light cache samples will be distributed among all the animation frames, we will need to increase the light cache Subdivs value. The exact value depends on the quality you want to achieve and on your specific animation. If the camera moves slowly, or the path is relatively short (e.g. just one room of a house) then you can use lower Subdivs value, since most of the samples will fall in the same place anyways. If the camera moves quickly or covers larger parts of the scene, you will need more samples to get adequate coverage everywhere. 1.15. Set the light cache Subdivs to 2000. 1.16. Render frame 360 for example. Note that although we render only one frame, the Fly-through mode forces the light cache to be computed for the entire animation:

Rendering fly-through animations

During the fly-through mode, the preview display of the light cache is not very useful, since it shows samples from the entire camera path. The following image shows the preview display while the light cache is being calculated:

Now that we have computed the light cache, we need to see if it is good enough for our needs. We can do this by rendering several different frames with the same light cache. 1.17. Save the light cache to disk, for example to lightcache.vrlmap. 1.18. Set the light cache Mode to From file and select the saved file name. 1.19. Change the Filter in the Light cache rollout from Nearest to None. Now we can see better the samples' size. 1.20. Render frame 435:

Rendering fly-through animations

You can notice that in places where the camera gets close to a wall in the scene, the light cache samples are smaller and more noisy. This is because the light cache Scale is set to Screen by default. This is fine for still images, but for animation we would like a more even sample distribution. To achieve this, we will need to use the World option. 1.21. Set the light cache Scale to World. Now we have to determine a good Sample size for the scene. This can be done, for example, by creating a geosphere directly in the camera viewport or a Tape object and using it to visualize the sample size. For our scene, a sample size of about 2.0 seems to be good enough (the scene is in Generic units). In general, you should make the Sample size as large as possible without getting artifacts (light leaks etc). Even if you are getting some light leaks, it may be possible to remove them by reducing the filter Interp. samples value. 1.22. Set the light cache Sample size to 2.0. Keep in mind that when you use the World scale, you must make sure that your scene is not too large (e.g. with a large ground plane) or that the light cache samples are not too small, otherwise you can run out of memory for the light cache. This is not such a problem for the Screen mode, since surfaces that are far away from the camera will get fewer samples anyways. For exterior scenes, it is recommended to use the Screen mode always. 1.23. Change the light cache Mode back to Single frame and lower the Subdivs to 500 just to check if the sample size is adequate. Here is an example of frame 435:

Rendering fly-through animations

The samples are equal in size everywhere and they are just big enough so we don't get artifacts on the image. 1.24. Set the light cache Mode to Fly-through again. 1.25. To smooth out the light cache a little bit, increase the the Subdivs to 3300. 1.26. Change the Filter back to Nearest. 1.27. Render frame 360:

The calculation time is longer now due to the increased samples number. 1.28. Save the light cache and set the mode to From file again. You may notice that the light cache file has become bigger in size. This is because there are more samples in the light cache, partly because of the World scale mode - the same amount of samples are taken everywhere in the scene (in Screen mode, the sample size increases as the samples get farther from the camera, which leads to less samples). Now we can render several different frames to make sure that the light cache is adequate for our animation.

Rendering fly-through animations

1.29. Render a few frames. It looks like the light cache is good and we can move on to the next part calculating the irradiance map.

Part II: Calculating the irradiance map


Compared to the light cache, the irradiance map may take significantly more time to calculate. This is because the light cache provides a very crude and undetailed lighting solution. The irradiance map, on the other hand, takes care of the small GI shadows in the scene. Note that the irradiance map cannot be calculated through backburner. It must be calculated on a single machine. This is because we will use the Multiframe incremental Mode for the irradiance map. 2.1. Set the primary engine to Irradiance map. 2.2. Set the irradiance map Mode to Multiframe incremental. 2.3. Check the Show calc. phase checkbox. Since the camera moves quite slowly, there is no need to render every single frame of the animation at this stage. We can get an adequate irradiance map by rendering every 10-th frame, for example. If the camera moves faster, we will need to render more frames, for example every 5th frame. 2.4. Set 3dsmax to render every 5-th frame from the Common tab of the Render scene dialog. 2.5. Turn on the Don't render final image option in the Global switches rollout, since we are not rendering the final animation yet and we don't need the final frames. 2.6. Render the entire sequence. 2.7. Save the irradiance map to file, for example, irmap.vrmap. 2.8. Set the irradiance map Mode to From File with the saved file. Now we have one irradiance map for entire animation sequence. We can render a few frames to make sure everything is ok. 2.9. Turn off the Don't render final image option. 2.10. Render frames 0 and 360 from the animation:

Rendering fly-through animations

The two images above were rendered with the settings used for the final animation in Part III. Now we are ready to render the final animation.

Part III: Rendering the final animation


For the final animation you can use backburner with the saved irradiance map either on the client pc or locally on each server machine. In either case, you must make sure that each render slave can find the irradiance map in the location specified in the From file parameter for the irradiance map. 3.1. Set the Image sampler type to Adaptive subdivision with Min/Max rate to 0/3 for better antialiasing quality. You can also check the Normals checkbox to avoid flickering problems with small details in the scene. 3.2. Make sure the irradiance map Interpolation type is set to Densitybased. This will enable the irradiance map to pick the closest available samples from the cached solution. 3.3. Set 3dsmax to render every single frame. 3.4. Render the final animation.

Rendering fly-through animations

Here is the ending scene. Here is the final animation that you should get if you have followed the tutorial correctly (8 MB).

Notes
q

We are not using glossy reflections in this scene, but if you are using them and not using the Use light cache for glossy rays option at the same time, then you can set the Secondary GI engine to None for the final animation. This is because you won't need the light cache and turning it off will save memory.

Discussion
In this section, we have added some questions about this tutorial that were asked on our online forum, along with the respective answers. Q: Did you render out to consecutive images and then compile the avi or was it straight out to avi? A: The animation was first rendered out to .png images, and then compiled into an .avi. That way, you won't lose all rendered frames if something goes wrong in the middle of the rendering... and also you can play with the compression settings later. Q: Why did you choose Multiframe incremental over Incremental add to current map mode? What is the difference between the two that would cause you to choose one over the other? I ask because Ive never used Multiframe incremental and have always used the Incremental add to current map. A: The only difference is that the Multiframe incremental mode will delete the map in memory at the start of the rendering. With the Incremental add mode, the current map is not deleted. Q: I just wanted to clarify... It is possible to use Incremental add to current map mode in conjunction with backburner without any problems (ie flicker)? Does backburner handle frame allocation ok without max saving any files? Reading your post above, I get the feeling you are suggesting that you need to send different sections of the animation to each render-node. A: Yes, you can render different sections on different nodes, but you must merge the resulting irradiance maps manually with the irradiance map viewer in the end, before rendering the final animation. Also, you must make sure that each section is allocated to one single render node only. Q: I must make an animation with a spray which you can see in the image upload, and I have many glossy reflect and refract, if I follow your tut how can I make my final setup? With lightcache for second bounce and Use light

Rendering fly-through animations

cache for glossy rays or without light cache and none for the second bounce? Does Use light cache for glossy rays and irmap in first bounce work fine? A: You can have the light cache saved with the irradiance map. If done so, you can actually just turn off secondary bounces which will save memory as you wont have to load the light cache. However, if you have the light cache help precompute the glossies with the Use light cache for glossy rays option, then you'll need to go ahead and load the light cache when rendering.

Photon mapping

Photon mapping

Home Tutorials

In this tutorial we'll examine photon mapping in VRay and efficient ways to use it.

What is photon mapping?


Photon mapping is a technique for computing global illumination. However, in difference from the irradiance map, which starts tracing rays from the camera, photon mapping traces rays from the lights in the scene. The two approaches are not mutually exclusive, and indeed for best results the photon map and the irradiance map should be used together. The photon map has many parameters that allow for a lot of interesting results; here we will not discuss all possibilities but will just point out settings that are reliable and work well in most cases.

Initial settings
For all of our experiments, we will start with the following settings for the photon map (note that these may be different from the defaults): Convert to irradiance map - off Auto search distance - off Max photons - zero Convex hull area estimate - off Store direct light - on Retrace threshold - zero The only parameters that we will actually use are: Max density - this defines the resolution (spatial detail) of the photon map. Lighting information from the photon map is accumulated at a number of points on the surfaces of scene objects. This parameter defines the distance (in world units) between those points. Smaller values mean that the points will be closer to each other and there will be more of them. Larger values mean that the light samples will be farther away from each other and there will be fewer of them. Obviously, this parameter depends on the scale of your scene. Changing this parameter requires recomputing of the photon map, since it is used only while the photon map is computed. Search distance - this defines how lighting will be reconstructed from the surface points described above. You may think of it as blurring of the photon map. It should be larger than Max density, but the exact value

Photon mapping

depends on how blurry you want your photon map solution to be. Values of 2-5 times the value of Max density work well. Changing this parameter does not require recomputation of the photon map since it is used only during rendering. Additional parameters that we will keep at the default values, but which you may change as needed are: Bounces - this controls the number of light bounces; you can set it to whatever value you want; more bounces mean slower computation of the photon map. We will keep this at 10, but you you may adjust it as you want. Multiplier - this is a multiplier for the photon map; we will keep it at 1.0, but you may adjust it if you need. We have thus limited the parameters of the photon map that we'll use to just two - Max density, and Search distance. These are enough for controlling the photon map. Besides those settings, the quality of the photon map depends on the number of photons emitted from scene lights. More emitted photons mean a smoother and more accurate photon map. The number of light photons is controllable for each light from the Light settings dialog, accessible from VRay's System rollout.

A simple example - the Cornel box


We'll demonstrate the effect of those two parameter on a simple Cornell boxlike scene. You can download the starting scene here (for 3dsmax 5). It includes a very simple setup of a closed space with differently colored walls and a spot light. The walls have VRay materials applied to them since currently photon mapping works only with VRay materials. Note that the spot light has inverse square falloff and quite a high multiplier. This is because real-world lights have inverse square falloff, and photon mapping produces inverse square falloff by default. This is what you get if you render the file straight away.

Photon mapping

Now turn on GI and set the photon map method for both primary and secondary bounces. Turn off Auto search dist, set Max photons to 0, Retrace threshold to 0.0, and Max density to 10.0:

If you render, you should get this result:

Photon mapping

A bit dark, but this can be corrected by increasing Secondary bounces multiplier (in the Indirect illumination rollout) to 1.0. If you render again, you should get this:

This renders quite fast, and it is quite a good approximation to the lighting in the scene. Obviously, it is far from being a good-quality image, but we will get there eventually. Now go to the Render dialog, and in the VRay System rollout, click the Light

Photon mapping

settings button. In the dialog that opens, select the spot light and set its Diffuse subdivs parameter to 500. This controls the number of diffuse photons emitted by the light (not directly though, the actual number of photons is the square of this number, in this case - 250,000). Close the Light settings dialog and render again:

The photon tracing phase takes longer, but you can notice that the noise of the individual light samples is reduced, although the image is still splotchy. We can reduce the splotchiness by increasing the Search distance parameter. Set this to 40 and render again:

Photon mapping

The result is a lot smoother, although very blurry. Also notice the dark corners. Dark corners are not easy to avoid with this setup of the photon map, but the effect can be reduced to a great extent. Now set Max density to 5.0 and Search distance to 10.0:

The effect of dark corners is reduced a lot, but the image is again noisy and splotchy. To decrease the noise, increase the Diffuse subdivs for the light to 1500:

Photon mapping

The noise of the individual samples is reduced again. Now we could increase the Search distance again to smooth the result, however we will do something else - we'll use the irradiance map to do the smoothing instead. In the Indirect illumination rollout, set the First diffuse bounce method to Irradiance map and choose the High irradiance map preset. If you render, you will get this:

The Cornell box scene is a very easy scene for a global illumination algorithm, since there is very little occlusion (objects casting shadows and stopping the light). Next we will look at a more difficult example: the Sponza Atrium Scene.

A more difficult example: the Sponza Atrium


Now we will show how to use photon mapping on a more complex scene, the Sponza Atrium, which is modelled by Marko Dabrovic (http://www.rna.hr). You can download the initial scene here. If you render right away, the scene will look like this:

Photon mapping

Note that photon mapping does not work with skylight. This is because photons need a real surface to be emitted from. Therefore, photon mapping is not suitable for outdoor scenes. However, in scenes where skylight comes in from small openings like windows, you can "invite" the light in by putting VRay lights at those openings. In the case of the Sponza scene, we have put a VRay light at the top of the building, which is the only place skylight comes from. Now turn on Global illumination and choose the Photon map as both the first and secondary diffuse bounces method. Set the secondary bounces Multiplier to 1.0. Next go to the Global photon map rollout and turn off Auto search distance, set Retrace threshold to 0.0 and set Max photons to 0: Next, we must determine a good value for Max density. From that we will choose a value for Search distance. A good Max density value depends on the scene scale and the desired photon map detail. There is a Tape helper in the scene, measuring the distance between two columns. Its length is almost 6 units. So, a good value could be, let's say, one tenth of that distance. Set the Max density parameter to 0.6 and Search distance to twice that value, 1.2 and render. You should get a similar result:

Photon mapping

The result is quite blurry, so we'll obviously need lower values for Max density and Search distance. After some experimenting, we have found that 0.05 for Max density and 0.1 for Search distance produce the following result:

Very noisy obviously, but the detail (the size of the spots) seems to be good enough. We get dark areas and bright spots because we don't have enough

Photon mapping

photons emitted from the lights. To fix that, go to the System rollout and click on the Light settings button. Select both lights in the scene and set the Diffuse subdivs to 500 (which means 500 x 500 = 250,000 photons from each light). Close the Light settings dialog and render. The photon tracing now takes longer, but the result is better:

Still, we will need more photons for a good photon map, so set the Diffuse subdivs for the sun (the target direct light) to 2000 (which means 4,000,000 photons) and the the Diffuse subdivs for the VRay light to 2500 (which means 6,250,000 photons). Close the Light settings dialog and render. The photon tracing phase now takes quite a bit of time (several minutes), but the result is a lot better:

Photon mapping

In order to save time for subsequent renderings, you can save the photon map to disk: go to the Global photon map rollout and click the Save to file button. Choose any name for the photon map and save it. Then set the photon map Mode to From file and using the Browse button select the map you just saved. We can now play a little with the Search distance parameter to blur the photon map a little more. Set the Search distance to 0.4 and render:

Photon mapping

The photon map is smoother, but the effect of dark edges can be clearly seen. So, instead of using the photon map alone for GI, we will use the irradiance map to smooth the GI. Return the Search distance value to 0.1 and set the first diffuse bounce method to Irradiance map. Turn on the Show calc. phase option, choose the High irradiance map preset and render:

Note that the photon map is view-independent. We can render a different view without recalculating the photon map (the irradiance map still needs to be computed, though):

In this last image you can see some artifacts (splotches) in the corners where two surfaces meet. This happens because the photon map is too noisy in

Photon mapping

those areas, which is reflected in the irradiance map too. This is what the photon map looks like from this view:

The noise is because light is more difficult to get into occluded areas of a scene. One way to reduce the noise in the photon map is to shoot yet more photons. Here is the photon map with 6000 subdivs (36,000,000 photons) for the sun and 5000 subdivs (25,000,000 photons) for the area light:

Here is the same image, but with irradiance map as the first diffuse bounces method:

Photon mapping

Of course, shooting more photons means (much) longer photon tracing phase. Another way to reduce the artifacts is to increase the Search distance value, which will blur the photon map a little more; however this will also make the dark edges effect more pronounced. This image was rendered with Search distance of 0.2; the original low-resolution photon map was used:

Yet another way to deal with the artifacts is by increasing the Retrace threshold value to its default value of 2.0. This will cause VRay to compute GI directly for secondary bounces near corners, instead of using the photon map. This means that the irradiance map will be slower to compute, but the corners will be somewhat better. The following image was rendered with Search distance 0.1 and Retrace threshold 2.0:

Photon mapping

Displacement mapping

Displacement mapping
In this tutorial we'll examine displacement mapping in VRay. We will concentrate on the 3d displacement mapping method.

Home Tutorials

What is displacement mapping?


Displacement mapping is a technique for adding geometric detail to surfaces at render time. In contrast with bump mapping, which works by just changing the surface normal to create the illusion of surface detail, displacement mapping modifies the surface itself. Here is an example of the same object rendered with bump mapping and with displacement mapping:

Original object

Bump mapping

Displacement mapping

In the case of displacement mapping, the surface is actually modified, which leads to correct outline, shadow and GI. In the case of bump mapping, although the surface appears modified, the outline and the shadow stay the same. Note that displacement is different from other kinds of shading, since it needs to modify the actual object surface. Therefore an object must be displaced before it can be rendered. This is why in VRay displacement is represented with a modifier (although the modifier can take the displacement map from the object material).

A simple example - a displaced sphere


Start with an empty scene. Create a GeoSphere with a radius about 40 units in the viewport and choose VRay as the renderer. Apply some Standard material to the sphere.

Applying the VRayDisplacementMod


Go to the Modify panel and apply a VRayDisplacementMod to the sphere. If you render straight away, you will notice a slight displacement effect, like so:

This is because VRay applies a simple noise displacement map when no other texture is chosen.

Selecting a displacement map


To select another map, click the texture button in VRayDisplacementMod. This will bring up the Material/map browser dialog. Choose a Cellular texture. To edit the newly created map, open the Material Edtior and drag the map from the button in VRayDisplacementMod to a slot in the Material Editor. Choose the Instance method when you drop the map. If you render again, you should get a similar result:

Displacement mapping

Setting the displacement amount and shift


To make the displacement effect more pronounced, increase the Amount value of VRayDisplacementMod. If you set it to 5.0 and render you will get something like this:

The Amount value determines the maximum displacement amount (which occurs at places where the displacement map is white). You can shift the whole displacement map up and down by adjusting the Shift parameter. The effect will be to expand (for positive Shift values) or shrink (for negative Shift values) the displaced surface. Here are some examples of different Shift values:

Shift = -5.0

Shift = 0.0

Shift = 5.0

Note that the Shift parameter is an absolute value in world units. If you change the Amount, you will probably need to adjust the Shift too.

Clipping geometry using the Water level


The Use water level and Water level parameters allow you to clip parts of the object. Return the Shift value to 0.0, if you have changed it. Then turn on the Use water level option and set the Water level to 2.5:

Displacement mapping

The geometry is clipped away for those places in the displacement map where the displacement value is below the Water level. Here are a few examples of different Water levels (assuming the Amount parameter is still 5.0 and the Shift parameter is 0.0):

Water level = 0.0 (no clipping)

Water level = 1.25

Water level = 2.5

Water level = 3.75

Water level = 5.0 (all geometry is clipped)

The Water level parameter is also absolute in world units. If you change the Amount and/or Shift, you will probably need to adjust the Water level to get the same effect. For 3d displacement, the geometry is clipped on a sub-triangle basis - a subtriangle is either clipped away entirely, or completely visible (this is not the case for 2d displacement where clipping is more precise). Therefore, you may get a jagged effect at the clipped edges. You can reduce this effect by producing more subtriangles (see the next section).

Displacement quality
VRay does 3d displacement by subdividing each triangle of the original object into a number of subtriangles. More subtriangles mean better displacement, but will also take more memory and will increase the render time. To get a better idea of how many subtriangles you have, apply a Standard material to the sphere (if you haven't done so already) and turn its Faceted option on. This is important, as otherwise VRay will not only smooth the surface normals, but will also automatically apply a normals map that represents the normal of the perfect displaced surface, which will make the surface look a lot more detailed that it actually is. Also, switch off the Use water level option of VRayDisplacementMod, if it is on. If you render, you should get a similar result (click the image for a larger view):

Here is a blow-up of this rendering to better show the individual subtriangles (click the image for a larger view):

Displacement mapping

In addition, here is a rendering that shows the boundaries of the original triangles of the sphere. To do that, put a VRayEdgesTex map in the Diffuse slot of the material and instance this map into the Self-illumination slot. Set the Color of the edges in the VRayEdgesTex to red and the Thickness to World units:

The quality of the displacement is determined by the size and number of the subtriangles. The main parameter to tweak is the Edge length. It determines the maximum length of a subtriangle's edge. This can be in world units or in pixels, depending on the View-dependent option. Lower values for Edge length mean smaller triangles and better quality. Here is the previous image rendered with various values for Edge length (with View-dependent turned on). Note that the View-dependent option refers to pixels in the original image, not the zoomed-in image you get with a blow-up rendering. This is why we were able to do a blow-up rendering to see the individual subtriangles better. Click the images for a larger view: Edge length value Normal rendering Blowup rendering

0.5

1.0

Displacement mapping

2.0

5.0

10.0

The flipside scene

Rendering an interior scene

Home Tutorials

Note: The scene for this tutorial is provided by Wouter Wynen from Aversis (http://www.aversis.be/). For further discussion of this topic, see this topic on the VRay forum.

Part Part Part Part

I: Adjusting the GI settings II: Rendering with materials III: Rendering the final image IV: Post-processing the image

Part I: Adjusting the GI settings

The flipside scene

Step 1. First render 1.1. Open the scene (which can be found here). 1.2. Assign VRay as the current renderer. Since the default VRay settings are not very well suited for a fast initial preview, we'll make a few quick adjustments before the first render. 1.3. Check the Override mtl option in the Global switches rollout, click the button next to it and select a default VRayMtl material. 1.4. Set the Image sampler type to Fixed. 1.5. Set the resolution to 400 x 325. 1.6. Set the Region size in the System rollout to 32 x 32 pixels. 1.7. Optionally, you can turn on the Frame stamp to print the render time on the image. 1.8. Render the scene:

The flipside scene

Step 2. GI preview 2.1. Turn GI on from the Indirect illumination rollout. 2.2. Select Light map as both the primary and secondary GI engine. 2.3. In the Light cache rollout, set the Subdivs to 500, since we want only a fast preview. We'll return this to 1000 for the final rendering. 2.4. Set the Interp. samples of the light map to 5 for a faster rendering. 2.4. Turn on the Show calc phase option for the light map. 2.5. Render:

The flipside scene

The result is quite noisy, but it does give a good idea of what the scene lighting is like. Step 3: Tweaks 3.1. Since the scene looks too dark, we would like to brighten it a bit. There are several ways to do this. One is to increase the power of the lights. However, this will make the directly lit areas of the image, like the patch of sunlight, too bright while indirectly lit regions will remain relatively dark. Here is an example of this (all lights are x 2):

The flipside scene

You can see that the increased light power has made the image brighter, and also has increased the contrast of the lighting. The scene still looks dark though. We can increase the light power even further, but this will blow out the directly lit areas too much, and will slow down the GI calculations later on. So, instead of increasing light power, we will simply make the material brighter. 3.2. Go to the Material Edtior and put the default VRayMtl in one of the slots (it shows up as being used in the "Environment" in the Material/Maps browser). 3.3. Make the diffuse color of the material RGB (200,200,200). 3.4. Render

The flipside scene

The result is much better. We still have the same amount of light entering the scene, but it is bounced around more and thus increases the overall brightness of the scene. At this point, you can adjust the ratio, color etc of the lights, while getting a relatively fast feedback on the lighting. Step 4. Better GI. The GI settings that we used are good mostly for fast previews, while you are still adjusting the scene. Once you have settled on the parameters of the lights, it's time to refine the GI solution. 4.1. 4.2. 4.3. 4.4. Set the primary GI engine to Irradiance map. Select a Medium preset for the irradiance map. Turn the Show calc phase option for the irradiance map on. Render the scene.

The flipside scene

Rendering takes more time now as VRay needs to calculate a more precise GI solution.

Step 5: Better antialiasing and less noise The GI looks ok now, but we still have no antialiasing and there is noise from the area light at the window. We'll deal with those now. 5.1. Set the Image sampler type to Adaptive QMC. 5.2. Turn GI off. 5.3. Render

The flipside scene

We do have antialiasing now, but the noise is even worse. We'll adjust the QMC sampler to improve that. 5.4. Set the Min. samples of the QMC sampler to 16 and the Noise threshold to 0.002. 5.5. Render.

The flipside scene

The noise is less, but there is still some of it. Reducing the Noise threshold and increasing the Min. samples any more will not help. We simply need more samples for the area light. One way to do that is to go to the parameters of the VRayLight and increase the subdivs. However, if you have many lights in the scene, this is quite a lot of clicking. Instead, we will use the Global subdivs multiplier to do that. 5.6. Set the Global subdivs multiplier to 4.0 and render:

The flipside scene

There is still some noise, but we can continue to increase the Global subdivs multiplier until the result is good enough; 16.0 seems to be a good value. 5.7. Set the Global subdivs multiplier to 16.0 and render:

The flipside scene

Step 6. Final rendering with GI The increased Global subdivs multiplier affects the irradiance map too, so if we render now with GI, it will be too slow. We'll need to do some adjustments. 6.1. Turn GI on. 6.2. Set the Hemispheric subdivs for the irradiance map to 8.0 to compensate for the increased Global subdivs multiplier. 6.3. Render

The flipside scene

This completes the first part of the tutorial. In the next part, we'll add the scene materials.

Part II: Rendering with materials


Step 1. Rendering with materials 1.1. 1.2. 1.3. 1.4. 1.5. Turn the Override mtl option in the Global switches rollout off. Turn on the reflection/refraction Max depth limit in the same rollout. Turn GI off. Set the Noise treshold of the QMC sampler to 0.005 for faster previews. Render.

The flipside scene

Step 2. Preview materials with GI on 2.1. Turn GI on. 2.2. For faster previews set the primary engine to Light cache . 2.3. Render

The flipside scene

At this point you can adjust your scene materials while getting fast previews of how the will look in the scene. Step 3. Better GI with the materials 3.1. 3.2. 3.3. 3.4. 3.4. Set the primary engine to Irradiance map. Set the QMC Noise threshold to 0.002. Set the light cache Subdivs to 1000. Set the light cache Sample size to 0.03 (this will make the light cache a little smoother and slightly faster). Render.

The flipside scene

This is the final image that we will render at full res in the next part.

Part III: Rendering the final image


We now have to render the final image. Step 1. Adjusting VRay for larger resolution 1.1. Set the resolution to 1600 x 1300. 1.2. Set the render region size to 64 x 64. We will need to adjust the irradiance map parameters: since we increased the resolution twice, we can decrease the irradiance map Min and Max rate by 2.

The flipside scene

1.3. Set the irradiance map preset to Custom. 1.4. Set irradiance map min rate to -5. 1.5. Set irradiance map max rate to -3. Step 2. Rendering the final image. 2.1. Set the 3dsmax to save the rendered image. For increased precision, you can choose a 16-bit image format (for example, a 16-bit .png). Optionally, you can save to a .hdr image; in that case you need to select the Unclamped color channel in the VRay GBuffer rollout. 2.2. Press the Render button. 2.3. Go out for lunch.

The flipside scene

The final scene for this rendering can be found here.

Part IV: Post-processing the image


The image looks ok, but in most cases you will want it to be a little darker or a little brighter etc. Instead of changing the lights and re-rendering, you can do those adjustments in an image processing program. For example, here is the same image with the gamma value adjusted. I used a .png file and IrfanView for this purpose, but you can use any other software that you feel comfortable with - for example, HDRShop for .hdr files.

The flipside scene

To add a more photographic feel to your image, you can apply some radial darkening of the corners, for example like this:

The flipside scene

Progressive path tracing with VRay

Progressive path tracing with VRay

Home Tutorials

General Initial rendering Rendering with materials Increasing the image size Notes

General
In this tutorial we will discuss an alternative method for computing the final image with VRay called progressive path tracing. Typically, computing the image goes through several separate tasks - for example, caustics calculations, light cache computation, irradiance cache computation, and final image sampling. While the user receives visual feedback through some of these stages, the final image is completed only at the end of the last stage - the intermediate results cannot be used. Progressive path tracing, on the other hand, is a method for incremental computation of the whole image at once. The user can stop the calculation at any time and use the intermediate results, if they are good enough. In addition, with path tracing, the user has only a few controls to worry about and it is very easy for set up. VRay builds upon the foundation of the light cache algorithm to perform progressive path tracing. This has the advantage of using the light cache for noise reduction during the path tracing process for cleaner results and faster light propagation. Using the light cache ensures that the number of light bounces is not limited and that the result converges to the correct lighting solution for the scene. In addition, the light cache from a path traced image can be saved and re-used later on for a normal rendering.

Initial rendering
Step 1: Initial setup. Setting up progressive path tracing is fairly easy:

Progressive path tracing with VRay

1.1. Open the starting scene, which can be found here. 1.2. Set VRay as the current rendering engine. 1.3. Check the Override mtl option in the Global switches rollout, click the button next to it and select a default VRayMtl material. 1.4. Turn Indirect illumination on and set both the primary and the secondary GI engines to Light cache. 1.5. Set the light cache mode to Progressive path tracing. 1.6. Optionally, you can turn on the Frame stamp to print the render time on the image. 1.7. Check the Enable built-in frame buffer option in the VRay virtual frame buffer rollout. This is not necessary, but allows you to safely zoom and pan through the rendered image during the rendering process. Using the 3dsmax VFB may cause 3dsmax to crash if you zoom/pan during rendering. 1.8. Render the scene. You should see the image being gradually sampled, more noisy at first, but getting better as more samples are added:

Step 2: Adjusting the noise level The image above is fairly noisy, although it is computed quite quickly and can be used for previews. However, for final renderings, we would like to reduce the noise. This is done by adjusting the light cache Subdivs parameter. 3.1. Set the light cache Subdivs to 2000. 3.2. Render. Rendering now takes more time, as VRay computes more samples. Since we increased the Subdivs twice, render time will approximately quadruple:

Progressive path tracing with VRay

3.3. If you want to reduce noise even further, increase the Subdivs even more. For rendering stills, you can set this to a very high value and wait for as long as you like before cancelling the render and using the result. Here is a render with 20000 subdivs which was cancelled after one hour:

Step 4: Adjusting the bias of the GI solution For the images above, we used the default settings for the light cache (except for the Subdivs parameter). The default settings use the light cache as an aid during GI calculations. This helps to reduce noise in the final image, at the cost of introducing bias to the GI solution. This bias may show up as light leaks under thin walls or splotchy secondary GI. In most cases however, the difference between a biased and an unbiased solution is minimal. You can use the light cache Sample size parameter to control bias. Larger values will use larger light cache samples and will increase the bias. Smaller values will decrease bias but may use more memory. A value of 0.0 will not use any caching at all and will produce an unbiased solution. Here are three renderings with different values for the Sample size and with the same Subdivs value (1000). There isn't much of a difference in this simple scene, but in more complicated situations, the noise reduction can be significant.

Progressive path tracing with VRay

Sample size = 0.04

Sample size = 0.02

Sample size = 0.0 (unbiased solution)

Rendering with materials


Step 1: Rendering with materials 1.1. Turn off the Override mtl option from the Global siwtches rollout. 1.2. For faster previews, return the Subdivs for the light cache to 1000. 1.3. Render:

At this point, you can adjust material settings etc, while getting relatively fast feedback.

Progressive path tracing with VRay

Step 2: Better quality with materials. Since the noise level is determined by the Subdivs parameter, we only have to increase that. Individual Subdivs for materials (f.e. glossy reflections/refractions) do not matter. 2.1. Increase the Subdivs parameter to 2000 and render. Rendering now takes more time, but the noise is reduced:

By default, VRay does not compute reflective GI caustics, since these tend to add noise to the image. Sometimes however, they are important for the final result. 2.2. Turn Reflective GI caustics on from the Indirect illumination rollout. 2.3. Render the image. Reflective caustics can be seen on the green patch and the sphere, as well as a general brightening of the scene. Notice that the image is also noisier in places where there are caustics:

Progressive path tracing with VRay

2.4. To reduce the noise in the image, we will need more Subdivs for the light cache, for example, 4000. Since we increased the value twice, render time will again approximately quadruple:

Note that you cannot obtain GI caustics from perfectly specular surfaces with point light sources. Either the light source must be an area source, or the material must be glossy, or both. You can also use photon mapping to generate the caustics through the settings in the Caustics rollout. This method is not as precise as the GI caustics, but can handle point light sources with perfect specular surfaces.

Increasing the image size


The only thing to remember when changing the image size is that larger images are noisier compared to smaller ones for the same light cache Subdivs value. This is because the samples are distributed over more pixels, and so each pixel gets fewer samples. To compensate for this, you will need to increase the Subdivs value. Increasing the resolution twice means that you will also have to increase the Subdivs twice to get the same quality (and it means that the render time will again quadruple). Here is the last image rendered at 800x600 with 8000 Subdivs (click for the full version):

Progressive path tracing with VRay

Notes
q

The image sampler type (Fixed, Adaptive QMC, Adaptive subdivision) is ignored in this mode, since the path tracing algorithm does pixel supersampling automatically. After the image is complete, VRay will print the minimum and maximum paths that were traced for the pixels in the image. The antialiasing filter however, is taken into consideration. Note that sharpening filters (Mitchell-Netravali, Catmull-Rom) may introduce noise and will require more samples to produce a smooth image. Larger filters like Blend may also take more time to converge. Turning the antialiasing filter off produces the least noise. Subdivs parameters in materials, textures, lights, camera settings etc. are ignored in this mode. Noise and quality is controled entirely through the light cache Subdivs parameter. The only parameters of the QMC sampler that are taken into consideration are Adaptive amount and Time-independent. Never set the Adaptive amount parameter to 0.0 when using path tracing, since this will bring the rendering to a halt. At present, only the RGBA channel is generated by the path tracing algorithm. Any additional GBuffer channels are ignored. The light cache has no limitation on the number of diffuse light bounces in the scene. The number of specular bounces (through reflections/refractions) is controlled either per material, or globally from the Global switches rollout. At present, the path tracing mode does not work properly when rendering to fields. At present, the path tracing mode does not work with matte objects/materials. At present, VRay can only generate 2^32 unique light paths internally. The light cache Subdivs spinner is limited to 60,000, which gives 60,000^2 = 3,600,000,000 unique paths. Since these are distributed across the entire image, for very large images it may be impossible to get enough samples per pixel for a smooth result. For example, a 2000x2000 image can be computed with at most 900 paths per pixel - which may be inadequate for a smooth result. In that case, using a traditional sampling method (QMC GI) may prove a better solution.

Rendering surface interfaces

Rendering surface interfaces

Home Tutorials

General Initial rendering Rendering the liquid Final rendering

General
In this tutorial we will discuss the rendering of refractive surface interfaces with VRay. A typical example of this is the rendering of a liquid in a glass container. The problem is that we have two separate objects, which share the exact same surface boundary. From a modelling point of view, it is very difficult to ensure that the two objects have the exact same boundary geometry. While this can be achieved (although with difficulty) for static scenes, things become very problemmatic in animation. From a rendering point of view, if the two surfaces match exactly, the renderer cannot distinguish between them accurately, which may lead to errors in the rendering. Considering these two issues, it is obvious that we will need to separate the surfaces, or to model the surface interface separately. We have the following three options: The liquid and the container do not touch and have a gap between them. This approach is simple to implement and does not require any special support from the renderer. However, it does not produce a reallistic result.

Rendering surface interfaces

This is because the gap between the two surfaces changes the rendering drastically and makes the liquid look like a solid block.

The liquid overlaps the container. This approach potentially produces much more realistic results, but it requires special support from the renderer. This is because the renderer must keep track of which surfaces have been intersected along a ray path, so that it can compute the correct index of refraction. Without this built-in support, this method cannot be used. Luckily, VRay supports the necessary framework for this, which makes this approach the preferred one.

The third approach is to model the interface separately. In general, this is difficult to implement - especially in animations. Further on, with this approach introduces a third object in the scene with a separate material, which makes things more complicated. Also, it will not work very well with things like fog in the glass - since in that case, VRay cannot make the connection between the glass/liquid material, and the surface interface material, and cannot apply the correct fogging value.

Below, we will discuss the first two methods only; the third method is more difficult and we do not recommend it with VRay.

Initial rendering
1.1. Open the starting scene, which can be found here. 1.2. Assign VRay as the current renderer. 1.3. To make the previews of the scene faster, go to the Image sampler rollout and set the Image sampler type to Fixed.

Rendering surface interfaces

Next, we want to get some fast GI: 1.4. In the Indirect illumination rollout, turn GI on and set both the Primary and Secondary GI engines to Light cache. 1.5. Turn off the Refractive GI caustics. We will add photon-mapped caustics later on for the final image.

1.6. In the Light cache rollout, set the light cache Sample size to 0.04 for less noisy light cache samples. 1.7. Set the light cache Filter mode to Fixed and set the Filter size to 0.08 since we will display the light cache directly. 1.8. Turn off the Store direct light option for the light cache, since we want to compute direct lighting separately. 1.9. Set the light cache Subdivs to 500.

Rendering surface interfaces

1.10. Optionally, turn on the frame stamp from the System rollout.

1.11. Render:

This shows the container that we will fill with liquid in the next section.

Rendering surface interfaces

Rendering the liquid


Now that we have the container, we have to add the liquid. 2.1. Unhide the "liquid inside" object. If you look at the from the Front viewport, you will notice that the object is slightly inside the glass container, without touching it:

2.2. Render:

Although the distance between the container and the liquid is really small, the rendering does not look realistic - it looks like we have a glass with a solid block inside it. To avoid this, we will make the liquid to overlap the container a little bit. 2.3. Hide the "liquid inside" object and unhide the "liquid overlapped" object. In the Front viewport you can notice that this object overlaps the container a little bit:

Rendering surface interfaces

2.4. Render:

Now it looks a lot better; the liquid really seems to be touching the glass.

Final rendering
For the final rendering we would like to improve the antialiasing, and to add some caustics. 3.1. Turn Caustics on from the Caustics rollout. 3.2. Set the Max. density to 0.2 - we want to limit the caustics photon density, since this allows us to shoot more caustics photons for a smoother caustics effect. 3.3. Set the Search distance to 2.0. Typically values of 5 to 10 times the Max. density parameter work well. 3.4. Set the Max. photons parameter to 0 - this will cause VRay to consider all photons within the search distance from the shaded point.

Rendering surface interfaces

3.5. Render:

Rendering now takes a little more time, since VRay needs to compute the caustics as well. We have caustics now, but they appear quite noisy. We can reduce the noise by increasing the Caustics subdivs for the light. 3.6. Select the VRayLight object. 3.7. Right-click in the viewport and select "VRay properties..." to bring up the VRay Light settings dialog. 3.8. Set the Caustics subdivs to 4000.

Rendering surface interfaces

3.9. Render:

Caustics look better now and these are the settings that we will use for the final rendering. If you want even smoother caustics, further increase the Caustics subdivs of the light and/or increase the Search distance parameter. 3.10. In order to avoid recomputing the caustics every time for the next renderings, save the caustics photon map to file, set the Caustics mode to From file, and select the saved caustics map with the Browse button. Now we need to improve the antialiasing and to reduce the noise from the area light.

Rendering surface interfaces

3.11. In the Image sampler rollout, set the Image sampler type to Adaptive QMC.

3.12. In the QMC Sampler rollout, set the Noise threshold to 0.002. 3.13. Set the Global subdivs multiplier to 8.0 - this will reduce the noise from the area light.

3.14. Render:

Rendering surface interfaces

This is our final image.

Rendering an animation with moving objects

Rendering an animation with moving objects

Home Tutorials

Note: the scene we use for this tutorial is based on the Sponza Atrium scene, modeled by Marco Dabrovic (http://www.rna.hr) and is one of the models for the CGTechniques Radiosity competition.

General Compositing basics Compositing in 3dsmax The VRaySphereFade atmospheric The workflow Rendering the layers Final compositing Conclusion

General
In this tutorial we will render an animation with moving objects and GI with VRay. The goal is to make the process as efficient as possible. We can always use a high-quality GI solution to render an animation without any special tricks, however this will typically take very long. We would like to optimize this process as much as possible.

Rendering an animation with moving objects

Typically, we have a small number of moving objects (f.e. a few characters) in some more complex environment. Our main optimization idea uses this fact: we can split the animation into a background part, and animation part. Since the background does not move, we can render it using a walk-through animation method, for example as pointed out in this tutorial. Then we can render out the moving objects, and composite these for the final animation.

Compositing basics
Before we go into details on rendering the animation, we will cover some compositing basics. Our task is this: given an object in a 3d scene, we would like to composite it over a given background, taking into account as many effects as possible (shadows, reflections, GI etc). This is typically done with the help of two layers with the 3d object, which are then composited over the background. We will call one layer a mask layer, and it determines which parts of the background are altered by the 3d object, and which parts remain the same. The mask layer is multiplied by the background. We will call the second layer object layer, and it determines what color must be added to the masked background in order to get the final image. The object layer is added to the masked background. So, in general, the compositing formula is this: final_image = background_layer * mask_layer + object_layer Our background layer is given, and we don't have to worry about it. It may be a photograph, live footage, or a prerendered image. We must determine only the mask layer and the object layer. We will compute these using three separate renderings of the 3d object:
q

a render without the object; we will call this "pure" render; a render with the object, but with a perfectly black material applied to the object; we will call this "black" render; a render with the object with a normal material; we will call this "normal" render.

Given these three renders, we can compute the mask layer and the object layer in this way: mask_layer = black / pure; object_layer = normal - black; Then, we can use the mask and object layers to composite the final image.

Rendering an animation with moving objects

Compositing in 3dsmax
Now, let us apply all this theory in practice. We will use 3dsmax for compositing, but this can be done in any compositing program that supports the necessary image operators (addition, difference, multiplication and division) - for example, Digital Fusion. Unfortunately, 3dsmax does not have the necessary compositing operators built-in, so we are going to use an additional plugin, the VRayCompTex texture map, which you can download here (extract the .dlt file in the \plugins\vrayplugins\ folder of 3dsmax). This is the background plate that we will use:

We are going to add a teapot in the middle of this rendering. 1.1. Open the starting scene, which can be found here. The scene is not exactly the same as the one that was used for the background plate, but it is close enough for the composition. In general, you should try to match the plate as best as possible. If the background plate is a rendered 3d scene, then it would be best to use the same scene. 1.2. Render the scene and save it as normal.png, with 48 bits per pixel (for increased precision during the compositing later on).

Rendering an animation with moving objects

1.3. Open the material editor, create a new VRayLightMtl and assign a pure black color to the material - or you can use the black mtl material in the ME. Apply the material to the teapot in the scene. 1.4. Render the scene and save it as black.png with 48 bits per pixel (for increased precision).

Rendering an animation with moving objects

1.5. Hide the teapot. 1.6. Render the scene and save it as pure.png (again, with 48 bits per pixel).

Rendering an animation with moving objects

This is all the work we have to do with the 3d scene. Now we are going to composite the final result. 1.7. Open 3dsmax with an empty scene. 1.8. Open the Material Editor and put the four images (normal.png, black.png, pure.png and the background) into four separate bitmap textures; set the mapping mode of the bitmaps to Screen environment. Now we will create the mask and object layers. 1.9. Create a VRayCompTex and name it object. 1.10. Drag the normal bitmap onto the Source A bitmap slot in the VRayCompTex (choose the Instance method when prompted). 1.11. Drag the black bitmap onto the Source B bitmap slot in the VRayCompTex (again, choose the Instance method). 1.12. Set the Operator of the VRayCompTex to Difference. This is what you should get:

Rendering an animation with moving objects

Now we have our object layer. Next, we need to create the mask layer. 1.13. 1.14. 1.15. 1.16. Create a new VRayCompTex in an unused slot of the material editor and name it mask. Drag the black bitmap onto the Source A bitmap slot in the VRayCompTex (choose the Instance method when prompted). Drag the pure bitmap onto the Source B bitmap slot in the VRayCompTex (again, choose the Instance method). Set the Operator of the VRayCompTex to Divide. This is what you should get:

Rendering an animation with moving objects

Now we have the mask and object layers for the final compositing. We need to combine these with the background to get the final image. 1.17. 1.18. 1.19. 1.20. Create a new VRayCompTex in an unused slot of the material editor and name it masked bg. Drag and instance the mask texure into the Source A slot of the VRayCompTex map. Drag and instance the background bitmap into the Source B slot of the VRayCompTex map. Set the Operator of the VRayCompTex to Multiply.

Now that we have the masked background map, we need to add the object map to it. 1.21. 1.22. 1.23. 1.24. Create a new VRayCompTex in an unused slot of the material editor and name it final. Drag and instance the masked bg map into the Source A slot of the VRayCompTex. Drag and instance the object map into the Source B slot of the VRayCompTex. Set the Operator of the VRayCompTex to Add.

This is our final composite texture map. Here is a schematic view of how we have connected the four input images:

Rendering an animation with moving objects

Now we need to render that map in order to get the final image. 1.25. Open the Render scene dialog and in the Common Tab set the resolution to 600x600 (the resolution of all our images in this section). 1.26. Set the current renderer to Default scanline. 1.27. In the Renderer tab, turn off the Antialiasing option. 1.28. Turn off the Filter maps option. 1.29. Open the Environment dialog and assing the final map as an environment map. 1.30. Render the scene:

Rendering an animation with moving objects

Here is the final scene for the composite that you should get if you followed all the steps correctly. The beauty of using this method is that it can composite properly all effects (reflections, shadows, GI etc), without having to worry about any matte/shadow stuff or anything in 3dsmax.

The VRaySphereFade plugin atmospheric


We will use the same workflow as defined above, to render our entire sequence. However, we have to render our animation three times. With more heavy scenes, this means a lot of rendering. The correct calculation of GI effects requires all of the scene geometry, so we can't just remove it to speed things up. Most of the effects that we are interested in (shadows, reflections, GI) appear near the animated object in the scene. Ideally we would like to render only those parts, and skip re-rendering the entire image. This is where the VRaySphereFade atmospheric comes into play. It allows you to render only that part of the scene, which is located near the animated object. The rest of the scene is shown as a solid grey color. However GI, reflections, shadows etc. are still computed using the entire scene, so that they produce the correct effect. You can download the plugin here (extract the .dlr file to the \plugins\vrayplugins\ folder of 3dsmax). Here is how we would use the VRaySphereFade plugin in the scene from the previous part.

Rendering an animation with moving objects

2.1. Open the starting scene which can be found here. 2.3. Create a spherical gizmo object around the teapot. Typically, you will surround each animated object with a gizmo linked to that object:

2.2. Open the Environment dialog and add the VRaySphereFade atmospheric. 2.4. Click the Pick button in the VRaySphereFade parameters and then click the newly created gizmo. 2.5. Go to the VRay System rollout and check the Optimized atmospheric evaluation option - this will speed up a lot the rendering of the areas masked by the atmospheric. 2.6. Render the scene:

Rendering an animation with moving objects

You can see how only the parts of the scene inside the gizmo are visible to the camera. Note the grey color - because we are computing our mask layer through division, it is not a good idea to have pure black colors in the "normal" image. Proceed as in the previous step to create the pure, black and normal renders, and to composite them onto the background. The result is this:

Rendering an animation with moving objects

Normal layer

Black layer

Pure layer

Rendering an animation with moving objects

Object layer = Normal - Black

Mask layer = Black / Pure

Final composite over the background plate

It is quite close to the result in the previous section, and it was a lot faster to calculate. Here are comparisons between the two composites that we got, as well as a rendering of the original scene with the teapot inside it:

Original rendering of the scene with the teapot

Full-scene compositing

Compositing with VRaySphereFade

Using the VRaySphereFade plugin, we can control how much an object will affect its surroundings. For GI effects, it is usually enough to limit the influence not far away from the object. However, some effects (like long shadows, or reflections on surfaces at grazing angles) may require larger spheres of influence. An alternative in that case would be to add more gizmos to capture those effects, or to render them in a separate pass and composite them separately.

Workflow
Now we have all the necessary information to render our animation. This is done in 4 steps: a) Render the background as a walk-through animation, without the animated objects. b) Create and link gizmos to the animated objects, create a VRaySphereFade atmospheric and add those gizmos to the

Rendering an animation with moving objects

atmospheric. c) Render the animation with the moving objects normal, black, and hidden respectively into three separate animations. d) Composite the background animation out of the four other animations.

Rendering the layers


a) First, we need to render the background template which will serve as a basis on the moving characters. We will do this similarly to how it is described in the Walk-through animation tutorial. We will calculate the light cache first. 3.1. Open the starting background scene. We have rendered all animations at a resolution of 900 x 500 pixels. This may take quite a while (it took more than two days to render the three character animations when preparing this tutorial), so you may want to use lower resolution, for example, 450 x 250. 3.1a. In the Common tab of the Render scene dialog, set the rendering resolution to 450 x 250 pixels. 3.2. Turn off Default lights in the Global switches rollout. 3.3. Set the Antialiasing to Adaptive QMC with the default settings of 1/4. 3.4. Turn on GI and set the primary and secondary engines to Light cache. 3.5. Set the light cache Subdivs to 4000, Sample size to 4.0 and Scale to World. 3.6. Switch the lightcache Mode to Fly-through and for display purposes turn on Show calc. phase. 3.7. Turn on Use light cache for glossy rays and set Interp. samples to 5. 3.8. In the GI Environment group of the Environment rollout, turn on the Override MAX's option and set the Multiplier to 2.0. 3.9. Render any frame of the animation to calculate the ligth cache. 3.10. Save the light cache and change the Mode to From file with the just saved file. Once we have the light cache ready, we need to calculate the irradiance map. 3.11. Change the Primary GI engine to Irradiance map with High preset. 3.12. Set the Noise threshold in the QMC Sampler rollout to 0.002. 3.13. Turn on the Don't render final image option in the Global switches rollout. 3.13. Set the irradiance map Mode to Multiframe incremental. 3.14. Render every 10th frame of the animation to calculate the irradiance map. 3.15. Change the irradiance map Mode to From file with the just saved file. 3.16. Turn off the Don't render final image in the Global switches rollout. 3.17. Render every 1st frame of the final background animation with the saved GI solutions and save the animation as a 48bit . png sequence.

Rendering an animation with moving objects

Now we have a ready background template that will be populated with the moving objects. Here is the end scene for stage a). b) Now we will use sphere gizmos and VRaySphereFade atmospheric to isolate the moving objects in the scene, so we can composite them later with the ready background. 3.18. Continue with the background scene from part a) and unhide the four biped characters in the scene.

Rendering an animation with moving objects

3.19.

Create four sphere gizmos with radius of about 80.

3.20.

Align each of them to each Biped COM object (Bip01, Bip02, Bip03, Bip04).

Rendering an animation with moving objects

3.21. Open the Environment dialog and add the VRaySphereFade atmospheric. 3.22. Add the four gizmos in the list.

Rendering an animation with moving objects

Here is the end scene after the gizmos setup. c) For the rendering of the three animations we will use QMC GI as a primary GI engine to avoid flickering problems on and around the characters. 3.23. Change the Primary GI engine to QMC GI with 25 subdivs. 3.24. Change the light cache Subdivs to 3000. 3.25. Change the light cache Mode to Single frame.

Rendering an animation with moving objects

3.26. Go to the System rollout and turn on the Optimized atmospheric evaluation option - this will accelerate the calculation considerably. First, we will render the normal animation. 3.27. Render the whole sequence to 48-bit .png files.

Rendering an animation with moving objects

Frame 145 Second, we will render the black animation.

Frame 268

3.28. Apply a black VRayLight material to the four biped characters and render the entire sequence to 48-bit .png files.

Frame 145

Frame 268

Rendering an animation with moving objects

Third, we will render the pure animation. 3.29. Hide all the biped characters and render the whole sequence again.

Frame 145 Now we have all the necessary animations to composite the final animation.

Frame 268

Final compositing
In this part we will amalgamate the normal, black and pure animations with the help of the VRCompTex map. 4.1. Open a new scene in max and open the Material editor. 4.2. Load the normal, black and pure animation sequences in three different slots and name them "normal", "black" and "pure". 4.3. Load also the backgroud animation that we rendered before. 4.3. Change the display type of all four textures to Environment with Screen mapping.

Rendering an animation with moving objects

4.4. Make four VRayCompTex maps into four unused slots. 4.5. Drag-drop the normal map into Source A, the black map into Source B, change Operator to Subtract in the first VRayCompTex map and name it object. 4.6. Drag-drop the black map into Source A, the pure map into Source B, change Operator to Divide in the second VRayCompTex map and name it mask. 4.7. Drag-drop the mask map into Source A, the background map into Source B, change Operator to Multiply in the third VRayCompTex map and name it masked bg. 4.8. Drag-drop the masked bg map into Source A, the object map into Source B, change Operator to Add in the fourth VRayCompTex map and name it final. We have just followed the scheme that we described earlier in the Compositing with 3dsmax section.

Rendering an animation with moving objects

4.9. Drag-drop the final map into the Environment map slot of the Environment dialog of 3dsmax. 4.10. Change the renderer to Scanline. 4.11. In the Renderer Tab of the Render scene dialog, switch off Antialiasing and Filter Maps. 4.12. Render the final animation. Here is the compositing scene. Here is a link to the final rendered animation at the original 900x500 resolution (5 MB), and here is a link to a smaller version (2 MB). Let is look at one frame of the animation:

Rendering an animation with moving objects

You can notice that the character shadow for the metallic biped is cut off where its sphere gizmo ends. This is because we used somewhat smaller gizmos when we rendered the animation, in order to save render time. To make the full shadow visible, you can either enlarge the gizmo for that character, or use another gizmo near the ground, specifically for the purpose of capturing the shadow. If we have lights that cast long shadows, or the shadows are far away from the object that casts them, it might be better to render the shadows in a separate pass and composite them additionally. The same is true for reflections of the animated objects.

Conclusion
We did a lot of extra work to render out our animation - setting up gizmos, rendering four different animations and compositing them. Why was this necessary and do we really have to go through all these troubles to render any animation? If we are going to composite the animation against live-action footage, then we don't really have a choice other than to use compositing, in which case there is no way around rendering all the different passes. However, when we are rendering a fully CG animation, the only thing that we save is render time - which is the single point of the whole exercise. Of course, if we had a large render farm then we could have simply rendered out each frame of the animation as it is, with high enough settings to obtain a stable GI solution from frame to frame. If the scene environment is simple enough, this would be the best and fastest thing to do. However, if we don't have a render farm or the scene is quite detailed, then we can drastically reduce the render times by avoiding re-rendering of the entire scene's background just because we have one or two moving characters in there.

Irradiance map viewer

Irradiance map viewer

Home

General
The irradiance map viewer can be used to view, merge and save irradiance map files created by VRay. Note that the viewer is a separate program and does not require 3dsmax in order to run.

Installation
Just unzip the files in a folder of your choice.

Usage
There are several methods of running the irradiance map viewer, which are outlined below. The simplest way is to double-click the imapviewer.exe file. This will bring up an Open File dialog box that lets you browse for an irradiance map to open. The menus of the program allow you to do various things with the irradiance map (merging and saving etc). You can also run the irradiance map viewer from the command line. In this case there are several possible choices:
r

If you type just

Irradiance map viewer

> imapviewer on the command line, this is the same as double-clicking the file. It will bring up the File Open dialog for selecting an irradiance map file.
r

You can also type > imapviewer <filename> where <filename> is the name of an irradiance map file. This file will be opened automatically.

A third way is to use the viewer to merge several maps into one: > imapviewer -load <map1> -load <map2> ... [-save <finalmap>] [-nodisplay] This will load the specified maps and combine them into one irradiance map. If the -save option is specified, the result will be written to the given file. If the -nodisplay option is specified, the resulting map will not be displayed (otherwise the viewer will display the final result).

Notes

.ply to .vrmesh converter

.ply to .vrmesh converter

Home

General
This is a command-line utility that can be used to convert .ply files to . vrmesh files for rendering by VRay.

Installation
Just unzip the files in a folder of your choice.

Usage

> ply2vrmesh <inputFile> <outputFile> This converts the given .ply file and writes it to the given .vrmesh file. Note that you must specify the file extension, it will not be added automatically.

Notes
q

The converter understands most of the popular .ply formats, both ASCII and binary, big-endian or little-endian. In addition to the geometric data (faces and vertices), the converter recognizes some of the most common additional channels like diffuse surface color. Vertex colors are recognized if they are specified as "red", "green" and "blue" or "diffuse_red", "diffuse_green" and "diffuse_blue" vertex properties. In 3dsmax, those can be visualized by applying a Vertex Color texture in the diffuse slot of the corresponding VRayProxy object.

GI methods

GI methods

Home

The rendering equation I. Exact vs approximate methods II: Gathering vs shooting methods III: Approximate methods: view-dependent vs view-independent solutions GI methods supported by VRay

The rendering equation


Virtually all modern GI renderers are based on the rendering equation introduced by James T. Kajiya in his 1986 paper "The Rendering Equation". This equation describes how light is propagated throughout a scene. In his paper, Kajiya also proposed a method for computing an image based on the rendering equation using a Monte Carlo method called path tracing. It should be noted that the equation has been known long before that in engineering and has been used for computing radiative heat transfer in different environments. However, Kajiya was the first to apply this equation to computer graphics. It should also be noted that the rendering equation is only "an approximation of Maxwell's equation for electromagnetics". It does not attempt to model all optical phenomena. It is only based on geometric optics and therefore cannot simulate things like diffraction, interference or polarization. However, it can be easily modified to account for wavelength-dependent effects like dispersion. Because the rendering equation is based on geometric optics, raytracing is a very convenient way to solve the rendering equation. Indeed, most renderers that solve the rendering equation are based on raytracing. Different formulations of the rendering equation are possible, but the one proposed by Kajiya looks like this:

where: L(x, x1) is related to the light passing from point x1 to point x; g(x, x1) is a geometry (or visibility term); e(x, x1) is the intensity of emitted light from point x1 towards point x; r(x, x1, x2) is related to the light scattered from point x2 to point x

GI methods

through point x1; S is the union of all surfaces in the scene and x, x1 and x2 are points from S. What the equation means: the light arriving at a given point x in the scene from another point x1 is the sum of the light emitted from all other points x2 towards x1 and reflected towards x:

Except for very simple cases, the rendering equation cannot be solved exactly in a finite amount of time on a computer. However, we can get as close as we want to the real solution - given enough time. The search for global illumination algorithms has been a quest for finding solutions that are reasonably close, for a reasonable amount of time. The rendering equation is only one. Different renderers only apply different methods for solving it. If any two renderers solve this equation accurately enough, then they should generate the same image for the same scene. This is very well in theory, but in practice renderers often truncate or alter parts of the rendering equation, which may lead to different results. Another, more philosophical point to make, is that the rendering equation is derived from a mathematical model of how light behaves. While it is a very good model for the purposes of computer graphics, It does not describe exactly how light behaves in the real world. For example, the rendering equation assumes that light rays are infinitesimally thin and that the speed of light is infinite - neither of these assumptions is true in the real physical world.

I: Exact vs approximate methods


The rendering equation can be solved directly (typically with Monte Carlo or quasi-Monte Carlo methods), or approximately (for example, with radiosity methods).

Exact (unbiased or brute-force) methods.

GI methods

Advantages:
q

Produce very accurate results. The only artifact these methods produce is noise. Renderers using exact methods typically have only few controls for specifying image quality. Typically require very little additional memory.

Disadvantages:
q

Unbiased methods are not adaptive and so are extremely slow for a noiseless image. Some effects cannot be computed at all by an exact method (for example, caustics from a point light seen through a perfect mirror). It may be difficult to impose a quality requirement on these methods. Exact methods typically operate directly on the final image; the GI solution cannot be saved and re-used in any way.

Examples:
q

Path tracing (brute-force GI in some rendereres). Bi-directional path tracing. Metropolis light transport.

Approximate (biased) methods:


Advantages:
q

Adaptive, so typically those are a lot faster than exact methods. Can compute some effects that are impossible for an exact method (e. g. caustics from a point light seen through a perfect mirror). Quality requirements may be set and the solution can be refined until

GI methods

those requirements are met.


q

For some approximate methods, the GI solution can be saved and reused.

Disadvantages:
q

Results may not be entirely accurate (e.g. may be blurry) although typically the error can be made as small as necessary. Artifacts are possible (e.g. light leaks under thin walls etc). More settings for quality control. Some approximate methods may require (a lot of) additional memory.

Examples:
q

Photon mapping. Irradiance caching. Radiosity. Light cache in VRay.

Hybrid methods: exact methods used for some effects, approximate methods for others.
Advantages:
q

Combine both speed and quality.

Disadvantages:
q

May be more complicated to set up.

Examples:
q

Final gathering with Min/Max radius 0/0 + photon mapping in mental

GI methods

ray.
q

QMC GI + photon mapping or light cache in VRay. Light tracer with Min/Max rate 0/0 + radiosity in 3dsmax.

II: Gathering vs shooting methods


Shooting methods
These start from the lights and distribute light energy throughout the scene. Note that shooting methods can be either exact or approximate. Advantages:
q

Can easily simulate some specific light effects like caustics.

Disadvantages:
q

They don't take into consideration the camera view; thus they might spend a lot of time for parts of the scene that are not visible or do not contribute to the image (e.g. caustics that are not visible - they must still be computed). Produce more precise solutions for portions of the scene that are close to lights; regions that are far from light sources may be computed with insufficient precision. Cannot simulate efficiently all kinds of light effects e.g. object lights and environment lights (skylight); non-physical light sources are difficult to simulate.

Examples:
q

photon mapping (approximate). particle tracing (approximate). light tracing (exact). some radiosity methods (approximate).

Gathering methods

GI methods

These start from the camera and/or the scene geometry. Note that gathering methods can be either exact or approximate. Advantages:
q

They work based on which parts of the scene we are interested in; therefore, they can be more efficient than shooting methods. Can produce a very precise solution for all visible parts of the image. Can simulate various light effects (object and environment lights), non-physical lights.

Disadvantages:
q

Some light effects (caustics from point lights or small area lights) are difficult or impossible to simulate.

Examples
q

path tracing (exact) irradiance caching (final gathering in mental ray), (approximate). some radiosity methods (approximate).

Hybrid methods
These combine shooting and gathering; again, hybrid methods can be either exact or approximate. Advantages:
q

Can simulate nearly all kinds of light effects

Disadvantages:
q

May be difficult to implement and/or set up.

Examples:

GI methods

final gathering + photon mapping in mental ray (approximate). irradiance map/qmc GI + photon map in VRay (approximate). bi-directional path tracing and metropolis light transport (exact). some radiosity methods (approximate).

III: Approximate methods: view-dependent vs view-independent solutions


Some approximate methods allow the caching of the GI solution. The cache can be either view-dependent or view-independent.

Shooting methods
Advantages:
q

Shooting methods typically produce a view-independent solution.

Disadvantages:
q

The solution is typically of low quality (blurry and lacking details). Detailed solution requires a lot of time and/or memory. Adaptive solutions are difficult to produce. Regions that are far from light sources may be computed with insufficient accuracy.

Examples:
q

photon mapping some radiosity methods

Gathering methods
Gathering methods and some hybrid methods allow for both viewdependent and view-independent solutions.

GI methods

View-dependent solutions Advantages:


q

Only the relevant parts of the scene are taken into consideration (no time is wasted on regions that are not visible). Can work with any kind of geometry (i.e. no restriction on geometry type). Can produce very high-quality results (keeping all the fine details). In some methods, view-dependent portions of the solution can be cached as well (glossy reflections, refractions etc). Require less memory than a view-independent solution.

Disadvantages:
q

Requires updating for different camera positions; still, in some implementations portions of the solution may be re-used.

Examples:
q

Irradiance caching (in VRay, mental ray, finalRender, Brazil r/s, 3dsmax's light tracer).

View-independent solutions Advantages:


q

Solution needs to be computed only once.

Disadvantages:
q

All of the scene geometry must be considered, even though some of it may never be visible. The type of geometry in the scene is usually restricted to trianglular or quadrangular meshes (no procedural or infinite geometry allowed). Detailed solutions require lots of memory.

GI methods

Only the diffuse portion of the solution can be cached; viewdependent portions (glossy reflections) must still be computed.

Examples:
q

Some radiosity methods.

Hybrid methods
Different combinations of view-dependent and view-independent techniques can be combined. Examples:
q

photon mapping and irradiance caching in VRay. photon mapping and final gathering in mental ray. radiosity and light tracer in 3dsmax.

GI methods supported by VRay


VRay supports a number of different methods for solving the GI equation exact, approximate, shooting and gathering. Some methods are more suitable for some specific types of scenes.

Exact methods
VRay supports two exact methods for calculating the rendering equation: QMC GI and progressive path tracing. The difference between the two is that QMC GI works with traditional image construction algorithms (bucket rendering) and is adaptive, whereas path tracing refines the whole image at once and does not perform any adaptation.

Approximate methods
All other methods used VRay (irradiance map, light cache, photon map) are approximate methods.

Shooting methods
The photon map is the only shooting method in VRay. Caustics can also be computed with photon mapping, in combination with a gathering method.

GI methods

Gathering methods
All other methods in VRay (QMC GI, irradiance map, light cache) are gathering methods.

Hybrid methods
VRay can use different GI engines for primary and secondary bounces, which allows you to combine exact and approximate, shooting and gathering algorithms, depending on what is your goal. Some of the possible combinations are demonstrated on the GI examples page.

Terminology

[Prev][Main][Next] Terminology Analytic sampling This is one of the VRay's techniques for calculating motion blur. Instead of taking a number of time samples, the analytic method blurs the moving triangles perfectly. It will take in consideration all triangles crossing a given ray during a given time interval. Keep in mind that because of its "perfection" this method will be extremely slow on high-poly scenes with fast motion. (See also: Motion blur parameters, Motion blur, Quasi Monte Carlo sampling) Antialiasing (Image sampling) Antialiasing is a special technique for producing smooth images of high-contrast edges and small details in materials and objects. VRay achieves antialiasing by taking additional image samples where necessary. To determine if more samples are needed, VRay compares differences in color (and/or other properties) of neighboring image samples.. This comparison can be performed in several ways. VRay supports fixed, simple 2 level and adaptive antialiasing (See also: Image samplers parameters, G-Buffer, G-Buffer Antialiasing) Area lights Area light is a term describing a non-point light source. These types of light sources produce area shadows. VRay supports rendering of area lights through VRayLight. (See also: VRayLight parameters, Area shadows) Area shadows (Soft shadows) Area shadows are blurred shadows (or shadows with blurred edges) that are caused by non-point light sources (Area lights). VRay is capable of producing the effect of area shadows either through VRayShadow or through area lights. (See also: VRayShadow parameters, Area lights) BRDF (Bi-Directional Reflectance Distribution Function) One of the most general means to characterize the reflection properties of a surface is by use of the bi-directional reflection distribution function (BRDF), a function which defines the spectral and spatial reflection characteristic of a surface. VRay supports the following BRDF types: Phong, Blinn, Ward. (See also: VRayMtl) BSP (BSP Tree, Binary Space Partitioning Tree) BSP is special data structure for organizing scene geometry in order to speed up ray-triangle intersections (intersecting a ray with the triangles in the scene is the task most frequently performed by a raytracer). Currently VRay implements two types of BSP Tree. These are a static BSP Tree for scenes without motion blur and a motion blur BSP Tree. (See also: Motion Blur) Bucket (Region, Rendering region) A bucket is a rectangular part of the current frame that is rendered independently from other buckets. The division of a frame into rendering regions allows for optimal resource utilization (CPUs, PCs, memory). It also allows for distributed rendering. (See also: Distributed rendering) Caustics (Radiosity) This is the effect of light refracted by a non-opaque object hitting a (diffuse) surface. (See also: Caustics parameters)

Terminology

Depth of field (DOF) Depth of field is the effect of having a particular point in the scene to appear focused (sharp) and the rest to out of focus (blurry) depending on camera shutter properties and the distance from the camera. This is similar to how real world cameras work so this effect is especially useful for producing photorealistic images. (See also: DOF parameters, Camera parameters) Distributed rendering (DR) Distributed rendering is a technique for utilization of all available computational resources (all CPUs in a machine, all machines in a LAN, etc.). DR divides the currently processed frame into rendering regions and keeps all CPUs in LANconnected machines busy computing the rendering result. Overall DR assures that VRay makes the most out of your equipment when rendering a single frame. For animation sequences however, you should use MAX's standard network rendering as it may be more efficient. (See also: Bucket, Distributed rendering) Early termination Early termination is a technique for reducing the samples taken for evaluating a blurry value. This basically works by looking at the samples as they are computed one by one and deciding, after each new sample, if more samples are required. Early termination is used throughout VRay for all blurry values. See also importance sampling. G-Buffer This term describes the collection of various data generated during image rendering. These could be Z-values, material IDs, object IDs, non-clamped colors etc. This has proven to be very useful for performing post-rendering image processing. (See also: G-Buffer parameters, Antialiasing, Image samplers parameters) G-Buffer Antialiasing VRay is capable of antialiasing the rendered image based on the differences in one or several G-Buffer channels. (See also: Antialiasing, Image sampler parameters, G-Buffer) HDRI (High Dynamic Range Image) A High Dynamic Range Image is an image containing high-dynamic range colors (with components exceeding the range 0.0-1.0, or 0-255). This type of images is often used as an environment map to light the scene with natural light. Importance samping Importance sampling is a technique for basing the number of samples required for evaluating a blurry value, on the effect that value has on the final result. For example, dark materials require fewer samples for evaluating GI than bright materials; dim area lights can do with less samples than bright lights etc. Importance sampling is used throughout VRay for all blurry values. See also early termination. Index of Refraction (IOR) The index of refraction is defined as the speed of light in vacuum divided by the speed of light in a given medium. IOR = C/V, where V is the light speed specific

Terminology

for the different mediums. To achieve a material with a specific IOR you have to set the Index of refraction field value in MAX's standard materials in the section Extended parameters. Material Vacuum Air at STP Ice Water at 20 C Acetone Ethyl alcohol Sugar solution(30%) Fluorite Fused quartz Glycerin Sugar solution (80%) Typical crown glass Crown glasses Spectacle crown, C-1 Sodium chloride Polystyrene Carbon disulfide Flint glasses Heavy flint glass Extra dense flint, EDF-3 Methylene iodide Sapphire Heaviest flint glass Diamond Index 1.00000 1.00029 1.31 1.33 1.36 1.36 1.38 1.433 1.46 1.473 1.49 1.52 1.521.62 1.523 1.54 1.551.59 1.63 1.571.75 1.65 1.7200 1.74 1.77 1.89 2.417

Indirect Illumination (Global lighting, Global Illumination)

Terminology

In real world when a particle ray of light hits an object it produces multiple reflected rays with different intensity in all directions. These rays on their turn may hit some other objects and produce even more rays and so on. This process, multiply repeated, generates the so called Global Illumination. (See also: Indirect Illumination parameters, Irradiance map) Irradiance map Indirect Illumination in VRay is generally achieved by calculating GI samples. The irradiance map is a special cache where VRay keeps precalculated GI samples. During the rendering process when VRay needs a particular GI sample it computes it by interpolating the nearest precalculated GI samples stored in the irradiance map. Once computed, the Irradiance map can be saved in a file and reused in subsequent renderings. This can be especially useful for camera fly-through animations. Samples for VRayLight can also be stored in the irradiance map. (See also: Indirect Illumination parameters, Indirect Illumination, Area lights, Area shadows) Low accuracy computations In certain cases VRay will not need to compute absolutely precisely a ray contribution to the final image. VRay will then use faster but less precise methods for computation and will take fewer samples. This produces slightly noisier results, but decreases rendering times. Users can control the degree of optimization by changing when VRay switches to Low accuracy computations by changing Degrade depth values. (See also: Degrade depth, Low subdivs) (Quasi) Monte Carlo sampling Monte Carlo sampling is a method for numerical computation of integrals of functions by evaluating these functions at a number of random points. Quasi Monte Carlo sampling is a modification of this method, which instead of randomly generated points uses points forming a low-discrepancy sequence, which are more evenly distributed than purely random ones. This is the method used by VRay to evaluate complex things like global illumination, blurry reflections, depth of field, motion blur and image antialiasing. Motion Blur This effect is observed when looking at some fast-moving object. The motion is so fast that one can not focus the object and the object's image appears blurred to the viewer. (See also: Motion Blur parameters, Analytic sampling, Monte Carlo sampling) Photon, Photon map This is a simulation of a real world photons (a photon is a light particle). In order to produce caustics effects VRay traces certain amount of photons that come out of the light sources. Then the results are stored in a photon map and used during the rendering process so that highly realistic caustic effects are produced. Reflections As an advanced raytracer VRay supports accurate reflections. Glossy reflections are as well supported (See also: VRayMap parameters, VRayMtl parameters, Glossiness, Reflections, VRayMtl) Refractions

Terminology

Refraction is the bending of a wave when it enters a medium where it's speed is different. The refraction of light when it passes from a fast medium to a slow medium bends the light ray toward the normal to the boundary between the two media. As an advanced raytracer VRay supports true accurate refractions. VRay also handles glossy refractions (See also: VRayMap parameters, VRayMtl parameters, IOR, Translucency, Glossiness, Reflections, VRayMtl) Russian roulette This is a technique for..? Subdivs In VRay subdivs is a measure for the maximum amount of samples (rays) that VRay will use to compute a certain value. The maximum number of samples is proportional to the square of the subdivs value. For example, if the subdivs value of a glossy reflection is 5, VRay will never make more than 5 x 5 = 25 samples to evaluate the reflection. Translucency Translucency is a term describing the interaction of light with a non-opaque medium (wax, marble, skin etc.). VRay supports a simple translucency model that can nevertheless produce quite natural results. (See also: VRayMap parameters, VRayMtl parameters, Refractions)

Frequently Asked Questions

Frequently Asked Questions


Question: I have a dual CPU system, but the rendering seems not to be multithreaded. What is wrong? Answer: Check Multithreading option in MAX's preferences - Customize > Preferences > Rendering > Multi-threading. Make sure this is On. Question: When I render a particular object with the VRay renderer Dark rectangles appear at odd places on the object. When I render the same object with the Max default scanline renderer, the dark rectangles disappear. Answer: This could happen if your object is a thin box with overlapping faces. Increase the Height or remove the overlapping faces and the squares should go away. Question: How can I render wireframe with VRay? Answer: You can use the VRayEdges texture to get a similar (although not exactly the same) result. Question: Why the rendering of one and the same scene using different size region divisions results in significantly different rendertimes? However there is no difference in the quality. Answer: There should be no difference in the final image, no matter what is the size of your render regions. However, every region requires some setup time. Also, when you use antialiasing filters, there is a border around each region that needs to be additionally rendered so that the edges of regions blend smoothly. As the region size increases, this additional work takes less time compared to the total render. Smaller regions allow for faster screen update - you can see your image in progress; regions save memory; regions allow easy multithreading and (more important) easy distributed rendering. The choice of slowdown/update rate is best left to the user. Values of 16-64 are recommended. Question: Why the HDRI map has no effect on the specular level of the rendered objects? Answer: With the standard MAX materials, the specular level is just a way to simulate shiny look for objects. For a real world object to be shiny it has to be reflective. The same applies for objects rendered in VRay. To achieve shiny look with VRay lights, glowing objects and environment maps you will need to make the objects reflective. Question: Why do I get very weak shadows produced by the HDRI map? Answer: For sharper shadows, get a HDRI map with a high enough dynamic range.

Frequently Asked Questions

Question: Why do I get loss of detail when I render an object with lot of detail using VRay GI? Answer: Increase the max rate - for example set to 0. You may also try to reduce the color and normal thresholds. Additionally to make the GI more detailed you can (a) reduce the interpolation samples or (b) use another interpolation method - Delone triangulation will not blur the GI, it will just interpolate it; however the min/max rate still must be enough to capture all the detail. Question: Will the distributed engine upload the complete scene to every machine including textures etc. or will each machine just receive what is needed to render its bucket? Answer: It will ship the full scene without the textures. Which means the textures must be visible from all the local machines. You need not share the scene itself. Question: Can you change easily the task priority for all machines that participate in distributed rendering? Answer: Yes, this is configurable. You can control the process priority remotely for each rendering server. For more information refer to the Dsitributed rendering section. Question: Is the "machine list" in the distributed rendering based on machine names or IPs? Answer: It is based on machine IPs. You can give names to each machine as you wish and they don't have to be the same as your network names. The important part is a valid IP. There is an autosearch mechanism which looks for all the available servers in the local network and includes them in the list. You can configure a box manually though. Question: How do I use HDRI map with VRay to illuminate the scene? Answer: Either load it in your environment map if you want to show it in your background or in the render panel you can load it in the section for overriding the max environment for skylight. Question: How can I set the IOR when I use a standard material with VRayMap for the refractions? Answer: Change the IOR of the material (in the Extended parameter roll-up of the Standard material). Question: Does the antialiasing filter affect the irradiance map? Can I calculate an irradiance map with one filter and then use it with another? Answer: No, the irradiance map is not affected by the antialiasing filter. In fact if you only need to compute an irradiance map, you can render without antialiasing and without a filter. You can add these later on for your final rendering.

Frequently Asked Questions

Question: Can I render the irradiance map at 400x400 and then use it to render a 800x800 image? What will be the effect? Answer: Yes, you can do that. The final effect will be as though you have computed the irradiance map at a lower sampling rate. Question: Why does my fog light the scene when I use VRay with GI? Answer: This is so because of the way the MAX standard fog written - it is self-illuminated (unless you use volume light, but standard fog and volume fog are selfillumed), and since VRay takes volumetrics into account when calculating light hitting surfaces for GI, you can see illumination coming from those volumetrics.

Potrebbero piacerti anche