Page MenuHome

Fix inconsistent/broken Cycles object visibility for instances.
ClosedPublic

Authored by Brecht Van Lommel (brecht) on Dec 19 2018, 6:11 PM.

Details

Summary

Object visibility is now handled by the depsgraph iterator, but this API
was incomplete as it made no distinction for visibility of the object itself,
particles and generated instances.

The depsgraph iterator API now includes information about which part of the
object is visible, and this is used by Cycles to replace the old custom logic.
Cycles and EEVEE visibility should now be consistent, which unfortunately does
means some subtle compatibility breakage for both.

Ref T58956, T58202, T59284.

Diff Detail

Repository
rB Blender

Event Timeline

Some nonimportant nitpicking. Don't have anything to be added comparing to what we've discussed here. Guess is a necessary evil, but it's not so bad actually :)

intern/cycles/blender/blender_mesh.cpp
981–984

Nitpicking: use enum flag instead list of booleans. Makes reading code which calls the function somewhat cleaner.

intern/cycles/blender/blender_object.cpp
551–553

Nitpicking: const

This revision is now accepted and ready to land.Dec 21 2018, 2:39 PM
This revision was automatically updated to reflect the committed changes.