Without doubt, depending on the scene setup, V-Ray GPU might reach high VRAM consumption due to scene complexity, which might end up with an Out-Of-Memory error. And adding a GPU device with more VRAM to the machine is always the best option to resolve the issue. But if that is not an acceptable option you may use the following techniques for Vray Memory Optimizations to reduce the amount of VRAM used and eventually render the scene without Out-Of-Memory error.
Firstly, for the best Vray Memory Optimizations, you will need how to monitor the GPU memory usage and utilization. There are several ways to do it:
- V-Ray GPU reports how much memory is used for Textures/Geometry/Light Cache/etc in the V-Ray log
- 3rd party utilities like MSI Afterburner and EVGA Precision provides detailed information about GPU Memory Usage and Utilization
- Nvidia-SMI command line utility comes with Nvidia drivers installation
iRender Cloud Rendering is a brilliant option to render projects which can’t fit into a local machines’ memory without a doubt. It’s a great solution that will help you render the scene without investing in additional hardware or losing time to optimize the scene to use less memory.
In particular iRender provides service in the form of IaaS with cutting-edge technology (thousands of RTX 3090, powerful Intel Xeon W-2245 @ 3.90GHz/AMD Ryzen Threadripper Pro 3955WX CPU, Nvlink technique, API integrated, etc) on the market. Here users will remotely connect to those powerful servers, install Cinema 4D and Octane, or any other software on the server, and easily start the work same as using your local computers.
3D artists can speed up your render speed at any time and at anywhere with this automated system. You can register an account first to have a test on their service to estimate the total time and cost for your render easily.
The latest Nvidia technologies allow stacking Memory Amounts from multiple GPU devices together. NVlink technology enables V-Ray to use GPU Memory from all NV-linked GPU devices as a single unit which makes it possible to render much more complex projects without hitting the Out-Of-Memoru error. More information about NVLink performance could be found here. You could definitely research and integrate Nvlink to your local computer or, more conveniently, use iRender Cloud Rendering servers, which are fully equipped with Nvlink to test and work with your complex scene whenever you want.
Another Vray Memory Optimizations is on-the-fly optimization. V-Ray GPU allows you to apply on-the-fly optimization to the project textures. There are three different texture modes.
- Full-Size Textures. This mode will not apply any optimizations to the textures and it is recommended only if projects fit in the available GPU Memory
- Resize All Textures. This mode allows you to resize textures to smaller resolution and bit-depth which will help reduce Memory Usage
- On-Demand Mip-Mapping. This mode will force V-Ray to load textures in a very intelligent way, in the appropriate resolution and only if it is needed. The main benefits are significantly less Memory Usage and faster loading times.
Although V-Ray GPU is compatible with different GPU models and brands there are certain limitations in terms of Memory usage. If multiple GPU Devices are available, V-Ray GPU is limited by the GPU with the lowest amount of VRAM.
If Out-Of-Mem error occurs and your hardware setup consists of GPU devices with different Memory Amount, you may try excluding the GPU devices with less Memory and render the project without them. This way V-Ray will be able to fully utilize their Memory. However, in case you have tried that but still do not have enough Vram, you can consider renting the server of iRender Cloud Rendering. All of our servers have 1/2/4/6//8 GeForce RTX 3090 24GB – which is highly recommended for most GPU rendering customers, the RTX 3090 provides the best performance in Vray while also having a tremendous 24GB of memory
This technique is very useful for extremely complex projects where all other Memory Optimization techniques fail to help. Overall, rendering in passes means splitting the scene into separate sub-projects. The most common approach is to render the Foreground and Background separately and then merge both render outputs in a Compositing/Image Editing software.
- Optimize dynamic geometry. Hair/Fur, Displacement and Subdivision objects tend to consume a lot of memory. Displacement and Subdivisions are also dependable on the image resolution, the higher the resolution is the higher the memory consumption will be. Make sure the geometry generated by these features is with reasonable polygon count otherwise it could fairly easily eat the whole memory.
- Remove unnecessary/out-of-camera view objects (If they are not specifically needed). It’s not uncommon to have a project populated with lots of unneeded or not-in-camera view objects. Removing those will certainly help reduce the memory usage
- Optimize regular geometry. Very often objects with unnecessary dense geometry end up in the project, those are usually assets gathered from external libraries. Optimizing those will definitely help reduce memory usage
Host Applications just like V-Ray need some VRAM to keep the scene open and to operate with it. Depending on scene complexity, Host Application may occupy a few gigabytes of VRAM. This could be very valuable for V-Ray in case there isn’t enough Memory for the Rendering. Exporting the scene to a .vrscene file and rendering it with V-Ray Standalone will minimize VRAM consumption by excluding the Host Application. Please note that this approach will reduce VRAM usage from the GPU devices connected to monitors. GPU devices not connected to a monitor won’t benefit from it.
V-Ray Standalone command to launch V-Ray GPU rendering:
vray -sceneFile=“\\path\to\exported\scene.vrscene” -rtEngine=
There are still some Vray Memory Optimizations as following:
- Close other Memory Intensive applications: It’s not unusual to have multiple applications open when working on a project. Although it’s very handy to have all the needed apps up and running, this will also reduce the amount of memory available for the rendering process. As mentioned above, this approach will reduce VRAM usage from the GPU devices connected to monitors.
- Using GPU Hybrid Rendering with CPU enabled only: This is not very effective approach in terms of render times since V-Ray won’t benefit from using GPU devices. However, if the scene is massive and there is no way to fit it into the GPU memory, it is still possible to render it with V-Ray GPU by using Hybrid Rendering with CPU enabled only.
- Using V-Ray Proxies: V-Ray Proxies is a very powerful tool that is especially useful for optimizing scenes with a lot of geometry. They are not that Memory Efficient for the GPU rendering as they are for the CPU, but they allow replacing the original geometry in the scene with a simplified one. This alone may help reduce VRAM usage for the viewports leaving more Memory for V-Ray to work with.
Undoubtedly V-Ray gives you the power to work with lightning-fast interactive and heavyweight production rendering. So do not let the hardware limitation restrict your creativity. Hope that those above Vray Memory Optimizations solutions could help for GPU rendering on V-ray.
And let’s check out some render videos on iRender Cloud Rendering with Vray:
However, if a new hardware is not in your budget right now, join iRender and cut your render times in half with just some minor time investment from 3.8$. Here we do the rendering, the creativity is yours!
iRender – Happy Rendering!