Page MenuHome

Cycles Bevel Shader works across objects with Embree / CPU
Closed, ResolvedPublicBUG

Description

System Information
Operating system: Linux-5.4.0-42-generic-x86_64-with-debian-bullseye-sid 64 Bits
Graphics card: GeForce GTX 1080 Ti/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 450.51.06

Blender Version
Broken: version: 2.91.0 Alpha, branch: master, commit date: 2020-08-11 20:18, hash: rBec5f39208785
Worked: never (?)

Short description of error
The Bevel shader gives different results with CPU vs. GPU.
I know that Optix doesn't support the Bevel shader at the moment but I'm talking about CUDA so that isn't the reason for it to not work.
The geometry in the repro blend file is split. The front and the rim polygons are in two different objects but they share the same material.

Exact steps for others to reproduce the error

  • Open the attached blend file:

  • Press F12 (= GPU used for rendering, just make sure it's set up correctly depending on your configuration):

  • Switch the rendering device to CPU and press F12 again:

Now there's a bevelled edge that isn't there when using GPU rendering.

Event Timeline

Philipp Oeser (lichtwerk) changed the task status from Needs Triage to Confirmed.Aug 12 2020, 3:09 PM

As you said, it works if the meshes are joined.

In 2.83, this doesnt even work on CPU across object boundaries afaict, something changed for the better already.
(Havent checked the exact commit where this improved)

But can confirm, it is not working on GPU for me either.
For comparison: Ambient Occlusion does work across object boundaries.

Philipp Oeser (lichtwerk) renamed this task from Cycles Bevel Shader Difference CPU vs. GPU (CUDA) to Cycles Bevel Shader doesnt seem to work across object boundaries on CUDA (works on CPU).Aug 12 2020, 3:10 PM

It's not supposed to have an effect across objects. The bug here is in the Embree integration.

@Stefan Werner (swerner), can you have a look?

Brecht Van Lommel (brecht) renamed this task from Cycles Bevel Shader doesnt seem to work across object boundaries on CUDA (works on CPU) to Cycles Bevel Shader works across objects with Embree / CPU.Aug 12 2020, 3:53 PM
Brecht Van Lommel (brecht) changed the subtype of this task from "Report" to "Bug".

Yes, this seems fine to backport to 2.90.