GPU vs CPU different brightness in reflections

Started by fonzibear, February 17, 2020, 02:12:51 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

fonzibear

Hi

I have much brighter reflections on the materials every time I render with GPU. It doesn't matter what material, texture or environment I apply, it's everywhere.
The effect is strongest when the light comes from the side.
My graphics card is a Geforce 2080 TI and the driver version is 26.21.14.4166.
My processor is the Treadripper 3970X 32 core.


Does anyone have an idea what it is?

Thanks,
Chris

DMerz III

Unfortunately - I don't have any answers for you, but I would expect to find some differences like this between GPU materials and CPU materials, from my understanding, each shader has to be re-written between the two and while the devs did a great job in a short amount of time trying to find parity, I don't think things will be EXACTLY the same. Perhaps after more and more of these 'discoveries', it will bridge the gap.

Right now - I've been treating the GPU as a 'quick' preview tool - instead of as a final production render. From my understanding, the CPU is going to be more accurate.


DriesV

There can indeed be discrepancies between CPU and GPU rendering. The differences will be more pronounced at grazing angles (the "silhouettes" of objects) for glossy materials with high roughness. This is clearly shown in your example.
While we work hard to eliminate differences in appearance between CPU and GPU, the results won't likely become an exact match, as David points out.

I assume the material in the posted example has a rather high roughness?

Dries

DMerz III

Thanks for the confirmation, Dries!

The way it has been explained to me (and actually made sense) was that the CPU is a small group of PhDs - very smart, very capable - but you only have a handful of them (# of cores).

The GPU is like a thousand or thousands of middle-schoolers. (Way more cores, but less 'smart'/'capable').

If you need to color a picture (rendering of individual pixels) and the shaders are pretty straightforward - the middle schoolers can go to town on the image with a bunch of crayons and get you a result pretty fast. They're more concerned with getting each pixel filled in and moving on to the next one. Sometimes - they don't consider the pixel next to them - they just go for it - fast, fast, fast.

The CPU with their limited #s but smart PhDs - will go about the color of each pixel a little more considered - they take their time to make sure they got it right - and because they're 'smarter' - they can accept infomation which is more complex and get a more 'accurate' result. They will consider the pixel next to the one they're working on and in theory - give you a really good result - but it will take longer to get there because there are just not as many of them.

The instructions you can give the PhDs can be more robust and complex because they have the ability to understand more - but the middle schoolers can figure it out too - but maybe a dumbed-down version of what you told the PhDs.

Hopefully that helps with understanding WHY there's a difference? It helped me at least.

fonzibear

Hi Dries, hi Dmerz III

Thanks a lot for the quick answers!
Yes, the material is rather rough. It only has a roughness of less than 0.10, but to get the real texture of rough plastic, I used a relatively deep depth texture.
And thanks for the striking explanation of the differences between CPU and GPU.  Seems pretty logical that with CPU the results will be better and more accurate.

Chris