Page MenuHome

Hair Clumps Stretch Out After Render
Closed, ArchivedPublic

Description

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

Blender Version
Broken: 2.73 765b842

Short description of error
Following a render and a return to 3D view, I am finding that one hair system of mine is spazzing out. Before a render, it looks fine, but afterwards, all clumps in the hair suddenly point towards the center of the scene, stretched out by a percentage equal to the hair clumping value (75%, in this case, it would stretch all the way with 100% clump).

Problem goes away if I set the Virtual Parents property under children to zero... but Virtual Parents is required in order to prevent Child Simplification from being too destructive.

Exact steps for others to reproduce the error
Based on a (as simple as possible) attached .blend file with minimum amount of steps

Event Timeline

My apologies, I hit submit by accident.

And further note, the issue only occurs in the viewport. If you hit render again while it is spazzed out, it seems to render properly.

Repro steps are as follows:

  1. Open the following .blend file:
  2. Render
  3. Once render is finished, hit Escape to return to 3D View.

Another note, this issue may be related to T43694, which has the same problem with hair clumps stretching towards the scene center, by whatever percentage the clumpiness is set to. Both may be symptoms of a common underlying bug.

This issue is coming from the different settings for viewport and render, after which particle system is not capable of repairing it's cache..

@Lukas Tönne (lukastoenne), few notes:

  • We can in theory just tag all particle systems to recalc after render is finished
  • If you switch to BI in that file and press F12 you'll see some assert failing, happening in tessface data getter invoked from get_particle_uvco_mcol(). This i'll need your assistance on investigation.
Sergey Sharybin (sergey) lowered the priority of this task from 90 to Normal.Feb 24 2015, 9:00 AM

@Sergey Sharybin (sergey): Well, that's the thing. As far as I know, all of the settings between the two are the same. The only one that is different is the child hair counts (Display vs Render), but those are almost always different and usually work fine.

@Sergey Sharybin (sergey): Fixed the assert fail, that was again the broken dmcache system. The same error then happens with BI.

Adding explicit particle updates in render_endjob would be possible, but i really don't like this. Then we just pretend everything is fine with particles (spoiler alert: it's not) and it adds even more special hacks for particles in places where it doesn't belong.

Note that with locked interface the bug does not happen, since a DAG_on_visible_update happens in that case after rendering.

Lukas Tönne (lukastoenne) changed the task status from Unknown Status to Unknown Status.Jun 22 2015, 11:33 AM

Particles are broken, needs rewrite.