Page MenuHome

translucent objects occlude other members in group instances
Closed, DuplicatePublic

Description

System Information
all operating systems

Blender Version
Broken: 2.77 66552ca

Short description of error
Group instances do not take the "show_transparent" property into account. As a result, opaque members of a group may be occluded by translucent members. It dosn't happen every time as the drawing order depends by the group membership order, yet it may be a significant issue when using linked groups for character with glasses, or car with windows et cetera.

Internally, this is due to the dupli Base objects being temporary and therefore not able to be deferred to the transparency pass. A possible solution would be to draw only non transparent dupli members in the first pass, so that the transparent ones can be drawn afterwards.

A fix patch to help illustrating the issue


Exact steps for others to reproduce the error
A sample .blend file containing some grouped object and their group instance: the circle masks the monkey, but not the cube in the background when in material shading

Details

Type
Bug

Event Timeline

Issues regarding alpha sorting in the view-port currently a known issue. (closing as duplicate).

Thanks for your reply! :)

This isn't however a sorting issue: the problem here is with dupligroup ignoring the transparency flag altogether. Though somehow related, T43093 is about more transparent objects overlapping in the view, an issue yet to be addressed. This is about transparent dupli objects, even one transparent object only, not being added to the alpha pass, the way blender currently handles transparency.

It could be easily overlooked, if it wasn't that dupligroup are the reccomended way to reference characters in external blend file, and rather than a missing feature it's blender not being able to follow its own workflow.

If you want the patch to be considered, I strongly suggest to submit it as a differential instead… But not sure how likely it is to get accepted - and most certainly not for 2.79, this is way too late for that kind of changes imho.

Hello Bastien,

this is another case of a patch that was badly needed in production, so it was perfect to us, but might raise some concerns as a merge proposal, so it has been attached only to start a conversation.

Technically, it shouldn't be much of an overload: transparent objects are skipped when drawing dupligroups so that they can be rendered later. Of course this implies a further pass in which those objects are rendered and it is true that this might result in a (most probably very slight) overhead, but it should be benchmarked.

I can work on it to make it at least a good candidate for review, what has to be defined is if there is any interest in fixing the issue for the releases between 2.79 and 2.80