prman-pixar / RenderManForBlender

RenderMan for Blender render addon
MIT License
808 stars 133 forks source link

Different handling of world background color between CPU and GPU #678

Closed hareurs closed 1 year ago

hareurs commented 1 year ago

The rendering results between CPU and GPU are significantly different in terms of the world background color. The GPU would completely ignore the background color and set the pixel values to (0, 0, 0, 0), while in CPU mode the RGB values are set to the defined background color with alpha channel being zero. Also, in the rendered image from the CPU, there is a strange boundary between the object and the background.

System Information:

How to Reproduce:

  1. Open scene.blend file.
  2. Go to the panel scene, set the Renderer to be RIS, i.e., CPU mode. Click Render. You would see that the background is red. Save the rendered image.
  3. Set the Renderer to be XPU, i.e., GPU mode. Render and observe the completely black background. Save the image.
  4. Open the saved images with Microsoft Photos. You would see that the image from CPU has a clear red boundary around the cube, while there is no such boundary in the image from GPU.

Supplementary Files:

A zip file can downloaded at https://www.dropbox.com/s/rbriocjmqqggja7/rman_gpu_back.zip?dl=0. It contains the following files:

prman-pixar commented 1 year ago

This is a known issue. The world background color currently does not work with XPU, as it requires the use of a display filter. If you need to add a background color afterwards, and you are rendering with XPU, you'll have to add it in post.

hareurs commented 1 year ago

Thanks for your prompt reply. Closing this issue now.