Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DisplayObject filter tracking issue #15

Open
7 of 10 tasks
Herschel opened this issue Aug 13, 2019 · 12 comments
Open
7 of 10 tasks

DisplayObject filter tracking issue #15

Herschel opened this issue Aug 13, 2019 · 12 comments
Labels
A-rendering Area: Rendering & Graphics

Comments

@Herschel
Copy link
Member

Herschel commented Aug 13, 2019

  • Drop shadow
  • Blur
  • Glow
  • Gradient glow
  • Bevel
  • Gradient bevel
  • Convolution
  • Color matrix
  • Shader
  • Displacement Map
@Herschel Herschel added the A-rendering Area: Rendering & Graphics label Aug 13, 2019
@ivanpopelyshev
Copy link

ivanpopelyshev commented Aug 15, 2019

I have all flash blur-based filters implementation in PixiJS WebGL if you need it ;)

Drop shadow / Blur / Glow / Bevel

I have two versions: "looks like" and "pixel-perfect".

That's pixel-perfect flash blur: https://www.pixiplayground.com/#/edit/4rskiJ8lb8k6437WmSwKy

Not related to filters:

I know that AwayJS have complete avm1 support.

My own port is based on Mozilla Shumway and I'm gonna publish it this autumn. I can explain all the filter mechanics , and how they relate to ColorTransform, I have many tests for it.

@Herschel
Copy link
Member Author

Herschel commented Aug 15, 2019

Thank you, the shaders will definitely come in handy as I add filters to the GL backend! I am interested in both pixel-perfect and approximations and allowing the user to choose (for example, in the canvas2d backend, I'd be happy with using standard SVG filter effects).

@ivanpopelyshev
Copy link

ivanpopelyshev commented Aug 15, 2019

I dont know parameters for svg blur :( Shumway renderer has it, but its not that close as my webgl approximation.

I know which kernel and strength to use for different values of quality for approximation.

Pixel-perfect version is actually Fenwick tree :)

In Flash, blur filter is just "average premultiplied ARGB in a rectangle" , quality shows number of times applied.

@theblooopz
Copy link

Updates?

@Herschel
Copy link
Member Author

No updates yet. Blend modes will probably be implented first as they all rely on "cache as bitmap" behavior.

@SelixGithub
Copy link

Is there a timeline for implementation? Are you planning to wait until everything else in AVM1 is complete?

@n0samu
Copy link
Member

n0samu commented May 20, 2023

Similarly to #5538, Pursuit of Hat needs ColorMatrixFilter - the cannons are always shown as red because their colors are supposed to be set via ColorMatrixFilter. This is particularly annoying on levels 15 and 17 because it's impossible to know in advance which button will fire which cannon.
image

(Just adding another example, for whatever it's worth)

@Aaron1011
Copy link
Member

Aaron1011 commented Jun 17, 2023

@ivanpopelyshev Ruffle is at the point where were implementing more filters. Could you share the source for the pixel-perfect flash filter implementations you mentioned? Thanks!

@n0samu
Copy link
Member

n0samu commented Jun 24, 2023

The problem with Pursuit of Hat is fixed by #11702 (and other DO/AVM2 ColorMatrixFilter issues will also be fixed)

@ivanpopelyshev
Copy link

@Aaron1011 t.meSLASHhackerham , write me in telegram, i'll share details. Cant post the source unfortunately )

@Hexstream
Copy link

Banned from Equestria has some remaining filter issues at night.
(Multiple scenes, but probably one bug.)

@opfx
Copy link

opfx commented Aug 13, 2024

It seems that DisplayObject filters are only implemented for the wgpu renderer. Are there any plans to implement them for the webgl render? Thanks

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-rendering Area: Rendering & Graphics
Projects
None yet
Development

No branches or pull requests

8 participants