xLightsSequencer / xLights

xLights is a sequencer for Lights. xLights has usb and E1.31 drivers. You can create sequences in this object oriented program. You can create playlists, schedule them, test your hardware, convert between different sequencers.
GNU General Public License v3.0
530 stars 197 forks source link

OFF Effect renders differently in 2024.11 #4623

Open MrPierreB opened 3 weeks ago

MrPierreB commented 3 weeks ago

@dkulp Issue caused by this commit change https://github.com/xLightsSequencer/xLights/commit/94b3e7c8f8a8a587edae529133ead67cda6a01de

Describe the bug THERE ARE 2 BUGS HERE: 1) The Off effect renders differently (incorrectly) on 2024.11 where it was working in prior versions. Before we had the Transparent checkbox, which now changed to a dropdown with a couple of values. So before if transparent is picked, the dropdown will have transparent picked, but the effect doesn't render the same - to get it to render the same, the style has to be changed to Transparent->Black.

2) When opening the attached RepoV10.xsq in 2024.11 and you render and play, you wont see anything (didn't show for me), until you click on the Off effect on the sequencer, it seems to then only realise what the value is and then plays on the Tree - incorrectly.

I have attached a zip file showing the issue. In the attached file there are 2 xsq files. RepoV10.xsq This file was created in 2024.10 - if you open this in v10 and render and save you will see the usual behaviour. RepoV11.xsq This is what it is showing on v11 - the first effect showing what it is doing now , then I fixed it by select Transparent->Black from the Effect settings.

To Reproduce Open in 2024.10 then again in 2024.11

  1. Switch to extracted folder example attached
  2. Open RepoV10.xsq This file was created in 2024.10
  3. Render
  4. Play

the RepoV11 the effect is shown twice, one with Tranparent, second one Transparent->Black.

Expected behavior 2024.11 should render the same as 2024.10.

Versions (please complete the following information):

derwin12 commented 3 weeks ago

Do you think it is just the conversion that messed up? ie. Is one of the new options accomplishing the "old" effect?

dkulp commented 3 weeks ago

The "Off" effect itself is rendering properly and rendering exactly as before. (in this case, it's a straight "return" without adjusting anything. The change that triggers this is the change to the Canvas mode effects as Canvas mode effects will now retain/produce transparent pixels. Previously, all Canvas mode effects would have any transparent (or semi transparent) pixels changed to a solid color (likely solid black) which prevented any possible way for canvas mode effects to then blend onto other layers.

MrPierreB commented 3 weeks ago

@dkulp ok no worries. I checked one of my existing ones where i pause things more and that one is working as I have another off effect on a layer on top which uses canvas mode and that just have the off effect layer below it selected. So this actually might not be an issue. If ok with you, i will close this as a non issue??

I will double check my remaning sequences tonight.

whirlywhopter commented 2 weeks ago

I am also seeing some odd behavior with rendering of canvas effects since this change. An example I just tested with was to create multiple layers on a prop (in this case a megatree), create a pinwheel effect on the bottom layer with 3D shading, create another copy of that pinwheel effect on the layer above it with "Flip Horizontal" transformation selected, this renders as expected. If I then put an off effect a few layers above these, select "Transparent" on the off effect and enable "Canvas" and select only the layers below that have the pinwheel effects, it seems only partially render the effects. It seems like the effect not being completely rendered is the lower of the pinwheel effects.

whirlywhopter commented 2 weeks ago

Here is the difference in the rendering between canvas mode enabled and disabled but no other changes. The appearance without canvas is the expected result.

Behavior with Canvas enabled Rendered with transparent off and canvas

Behavior without Canvas Rendered with transparent Off but without Canvas