Switching between CPU and GPU changes so many things in the beauty shot that you can not do this. Is this just the way VRay works or will it ever reach a point where both engines have matching output?

If switching between the CPU and GPU, things change so much that you can not do this to get the performance benefits from GPU rendering as things you don’t expect to change, do change.

VRayDisplacment displaces geometry differently on the GPU so you have to redo the displace material.
Blurry reflections look great on the CPU, worse on the GPU
lighting is brighter on the GPU
texture maps lose fine details
procedural texture maps (noises etc) texture completely differently.

I guess there are different algorithms for shading but I still hope that I can render animation on either CPU slaves or GPU slaves with the quality of CPU rendering across all frames.

You have two engines V-Ray and V-Ray GPU.
V-Ray runs on CPUs.
V-Ray GPU can run on CPUs and GPU.
They are different engines not meant to give 1:1 the same result, however there is a way to use CPUs+GPUs with consistent results.

Stick to V-Ray GPU, go in the V-Ray GPU device settings and make sure that the C++/CPU device is checked. Enabling this will make your CPU device effectively being able to run the CUDA code and your CPU will pretend to be a CUDA device during the rendering. This CPU+GPU thing that V-Ray GPU can do is called Hybrid Rendering (check more about it here Understanding V-Ray Hybrid rendering)

Best,
​​​​​​​Blago.

Hi Blago, Thanks. Yeah, I know about Hybrid rendering. Another reason apart from the ones already mentioned is because some clients send me work for VRay CPU and my setup is mostly GPU geared. I have to switch to CPU so that renders match with older work and I wish I could just use whatever engine my system is geared for and the results would match. You answered anyway saying they are not meant to match 1:1 so that’s that.

Thanks

That’s the most honest answer Chaos could give you.
To this day, i have not seen anyone claiming the contrary to actually have achieved parity, and not through nitpicking either: the differences are glaring, whichever the engine.
Some choose to come clean with it, others think they can achieve it, or so i like to assume, and so decide to call it done and announce it as a feature.
But in my experience, no commercially available engine resisted any semi-serious testing about feature parity.
I stand to be corrected, of course.

I would still be interested in seeing examples of what you are describing. For example what does it mean that blurry reflections look worse? Or that textures lose detail? The lighting ideally should match or should be very close. If you have example scenes to send to vlado@chaosgroup.com, it will be helpul to check if some of these can be resolved.

Best regards,
Vlado

If there is a chance you can improve GPU to match CPU closer than I will set some time aside asap to send you examples of issues in my previous project. Thanks Vlado.

Not that I use it but Arnold GPU is supposed to match 1:1 with CPU. They made that claim some point during a beta announcement in the past but can’t find it now. Blender Cycles is another that does it that I have used. I could not spot a difference myself when switching engines other than speed.
As you say, the differences in VRay are glaring. When I get some time will send in a scene but not for a few weeks.

Cheers

With V-Ray GPU - you can run V-Ray GPU on GPUs and CPUs, and the result is 1:1.
Atm, Arnold GPU does not support many of the features Arnold does.

Best,
Blago.

Eh?? With Hybrid rendering that 1:1 equates to GPU:Emulated GPU and not GPU:CPU doesn’t it?

Not sure what “emulated GPU” is. V-Ray GPU has the Hybrid mode that allows it to run on CPUs, just like V-Ray. This way with V-Ray GPU you can use all your CPUs and GPUs at the same time with consistent results.

Best,
Blago.

Does it emulate CUDA on the CPU?

Using Arnold GPU myself I can tell you that many things don’t match between CPU and GPU, it is still missing many features and has critical issues
It is far from being production ready

It is not like Cycles was a CPU engine and they ported it to GPU
While it can run on CPU, Cycles is very very slow compared to the CPU version of V-ray and extremely limited using Cycles 4D myself.. You are basically comparing a Porsche 911 GT3 to a Fiat Punto

As far as I understand, CPU code cannot magically work on GPU hardware.. GPU hardware has specific limitations, devs will need to write a new code and optimize it to specifically run(fast) on GPUs, and to avoid/go around the limitations of GPU hardware
That being said, the GPU version of V-ray is very good and has all features you would need in production, I have been using it for 2 years so far. You will need to adapt to the GPU workflow in V-ray and most importantly start your projects using the GPU engine, you cannot just switch between CPU and GPU engines mid project.

er , why would you have a GPU geared machine then?
Maybe look into Chaos Cloud?

You are doing something wrong most likely.. I haven’t run into these issues on GPU, you need to share your test renders.

I was going off this post: https://greyscalegorilla.com/2019/03…-gpu-renderer/ which has a section on 1:1 rendering no matter if you use cpu or gpu on the same project. I know it has missing features. So does VRay GPU compared to Vray CPU.
EDIT: Also this video (Fast Forward to 4:40) NVIDIA On-Demand where they talk about the same thing being able to send the same project to either a GPU farm or CPU farm and the results will be 1:1. Not sure it is possible if VRay haven’t managed to do that by now though.

So you think cycles emulates GPU on the CPU too which is how they manage it with one engine but either gpu or cpu? :slight_smile:
Fiat Punto? lol. Big steering wheels. Anyway, I have a different experience to that. I honestly think Cycles in Blender is very good and have been using both Max/Vray and Blender/Cycles for years. I just completed an 8000 frame animation in Max+Vray GPU and ran into all sorts of quirks and a bug that put the handbrake on so it’s not all turbo this side either. Although the support here is very active which is good.

When we can just render with whatever our hardware is geared for and not worry about different qualities in frame output then we all benefit. Maybe VRay will drop the CPU engine and just have one single Hybrid engine at some point.

Because I do animations on GPU’s but some clients refuse to switch to GPU due to the quality difference that I have been talking about. This is not just me who experiences this. I am now forced to work in VRay CPU so the client renders all match with their existing work It is so slow when I am used to GPU. I would love to be able to work in VRay GPU on their files and just switch it back to CPU when done and return their Max files but you can not do this with VRAY.

[/QUOTE]
I definitely need to send a file to demonstrate all this. I will see if I can create one this bank holiday unless the mrs drags me out of the den :slight_smile: The project I am on now barfed when I tried to switch to GPU. The VRay log filled up with about 30 unsupported bump map warnings and a few other unsupported materials so it was a non starter.

As I said, if you start with V-Ray GPU and don’t switch back and forth the V-Ray, you will have render (V-Ray GPU) that support 100% the same features between CPU and GPU and gives 1:1 the same result. It does not the same feature as V-Ray, Arnold, Cycles, but it has all the things you need to get the job done (if not, this should be fixed).

Best,
Blago.