Log In
New Account
Home My Page Projects Blender 2.x BF release
Summary Activity Tracker SCM Files

Blender 2.6 Bug Tracker: Browse

[#25011] Opacity IPO not refreshing with still images

Date:
2010-12-02 06:35
Priority:
3
State:
Closed
Submitted by:
Juan Pablo Bouza (jpbouza)
Assigned to:
Peter Schlaile (schlaile)
Category:
Sequencer
Status:
Fixed / Closed
Relates to:
Duplicates:
Patches:
 
Summary:
Opacity IPO not refreshing with still images
Detailed description
Just add a still image, set it to replace mode and animate the opacity. You'll notice that the opacity slider is animated but the effect is not refreshed correctly on the display.

I can confirm that this only happens with still images (single frame). Videos and still images sequences work just fine.

I can also confirm that this was working in rev 33151. It stopped working around rev 33268.

Followup

Message
  • Date: 2010-12-02 06:37
  • Sender: Juan Pablo Bouza
  • I forgot to mention that this is a playback issue, the render turns out just fine.
  • Date: 2010-12-02 12:55
  • Sender: Ton Roosendaal
  • OK; so this is sequencer!
    Confirmed issue, in 2.55 release it works, now it doesn't anymore. Will ask campbell if he recalls why.
  • Date: 2010-12-03 01:40
  • Sender: Juan Pablo Bouza
  • I just made a test render and the problem seems to affect the render too.
  • Date: 2010-12-06 06:57
  • Sender: Campbell Barton
  • This works for me r33498, both when scaling the image and rendered 1:1
  • Date: 2010-12-06 14:00
  • Sender: Juan Pablo Bouza
  • Yes, it seems to be fixed in 33505 here too.
  • Date: 2010-12-07 17:19
  • Sender: Ton Roosendaal
  • Still doesn't work for me. I'm not sure even what "replace" is meant to do, the other options are all about mixing... in the sequencer code there are also strange exceptions for case SEQ_BLEND_REPLACE

  • Date: 2010-12-08 07:20
  • Sender: Campbell Barton
  • Ok, now I get this too.

    This would work if the animation system called the update function of the property. This is an animation system issue.

    Aligorith, could we have the animation system call property update functions now?.
  • Date: 2010-12-16 16:23
  • Sender: Ton Roosendaal
  • No it's not that simple... here's what I found out sofar:

    - SEQ_BLEND_REPLACE type is specially handled, and breaks from loops before blending can happen.
    - its opacity is only applied once, and can't be animated yet
    - Other sequence blend modes work, but that's more by accident: if you change "opacity" the RNA calls rna_Sequence_update() which totally frees buffers in a strip. On frame changes the animation system does set correct opacity values, and because sequencer code treats it as effect-strip it recreates all buffers.
    - If you animate other values on image strips (like mult or saturation) nothing happens during animation.

    My main conclusion is that sequencer isn't ready for animated properties yet. The code with all cacheing is too fuzzy for me to get this simply coded.
  • Date: 2010-12-17 09:15
  • Sender: Peter Schlaile
  • OK, found it.

    The problem goes like this: when using SEQ_STRIPELEM_IBUF, we cache preprocessed (including mul, opacity on replace, color corrected etc.) images.
    Therefore, if we have a cached version, we don't want to apply the preprocessing twice on.

    So now there is the additional problem of extruded still images. They are cached seperately (it is very common, to extrude them on several frames and animate only prefilter parameters). Here, we cache the *unprocessed* image seperately using SEQ_STRIPELEM_IBUF_ENDSTILL and _STARTSTILL. That's fine and dandy, only the code, switched off prefiltering for cached ENDSTILL/STARTSTILL images, too, which is wrong, since they are cached before prefiltering is done.

    Ton, regarding your questions:
    * SEQ_BLEND_REPLACE is indeed handled specially (no surprise, the stack shouldn't work it's way beyond REPLACE images), it is handled specially in two places,
    * so: animating opacity actually *does* work (not only applied once, you misread the code a bit, take a look at input_preprocess() and input_have_to_preprocess() )

    The only problem was, what I described above: I made a mistake using the cache system.

    Sorry, for the late response.

    Cheers,
    Peter
 

Attached Files:

No Files Currently Attached

Changes:

Field Old Value Date By
status_idOpen2010-12-17 09:15schlaile
close_dateNone2010-12-17 09:15schlaile
StatusReady2010-12-17 09:15schlaile
assigned_toaligorith2010-12-16 16:23ton
ResolutionInvestigate2010-12-08 07:20campbellbarton
assigned_tocampbellbarton2010-12-08 07:20campbellbarton
ResolutionNone2010-12-02 12:55ton
assigned_tonone2010-12-02 12:55ton