Page MenuHome

Object Duplication - Original Not Vanishing
Closed, ArchivedPublic

Description

System Information
64bit Manjaro Linux, kernel 3.14.29
CPU: AMD Phenom II 970 Deneb quad-core
GPU: nVidia GTX 650 Ti, driver 343.36

Blender Version
Broken: Buildbot Build 2.73 4cbf2ebd
Worked: Unknown

Short description of error
When using duplifaces, dupliverts, and other forms of duplication, a child object is duplicated on each face, vertex, etc. When this is done, the object being duplicated is hidden during the render.

However, if the object being duplicated has a particle system on it, then it is not hidden. Upon further investigation, it appears that the particle system's "Emitter" option under the Render section is responsible. If Emitter is unchecked, then only the duplicates are rendered (as expected).

So, the Emitter option is overriding whatever checks are used for hiding the duplication object. Obviously, turning it off eliminates the problem, but if you want the emitters to be visible in addition to the particles, then you're stuck.

Exact steps for others to reproduce the error

  1. Open this .blend file:
  2. Render. Note that the center object is visible (incorrect).
  3. Select the center object, go to the Particle Tab, and then turn off Render->Emitter
  4. Render again. Note that the center object no longer renders (correct).
  5. Turn the Render->Emitter option back on. Then go to the Modifiers tab, and Hide the ParticleSystem for both Render and Camera.
  6. Render again. Note that the center object is rendered again, even without the particles (incorrect)
  7. Go back to the Particle Tab, and then remove the particle system entirely.
  8. Render again. The center object no longer renders once again (correct)

Event Timeline

Julian Eisel (Severin) lowered the priority of this task from 90 to 50.Feb 8 2015, 1:58 PM

Can confirm that. @Lukas Tönne (lukastoenne), is it expected to work like that (maybe a known todo)?

This bug was holding up a project of mine, however I have come up with a usable workaround.

Duplifaces allows for multiple parented objects to be duplicated, so I just need to use two copies of the emitter object: one with no hair system, and the other with a hair system with the emitter hidden.

I don't think it belongs to Lukas, more like to me. BI seems to be handling this case correct, so could be just a Cycles-side issue.

Sergey Sharybin (sergey) changed the task status from Unknown Status to Unknown Status.Aug 27 2015, 2:00 AM

Looked into the code in more details. The thing here is that Cycles synchronizes all object in single pass and main goal of this is to eventually support multi-threaded object synchronization. On an opposite side Blender Internal might modify visibility of objects during synchronization, which is exactly how it deals with this case.

I'm really tempting to consider this a TODO and solve as general improvement process. Reasoning behind this are:

  • This is how Cycles always worked, changing such things might ruin someone's day
  • Solving this issue in the same way as Blender Internal does this will backfire when we'll be supporting threaded object synchronization
  • We've got ongoing patch related on threaded synchronization already D618

So thanks for the report, but i'll have a closer look into this issues likely after 2.76 is out (during the workflow 2.8 project).