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

New Effects > Distort > Droste effect #364

Merged
merged 6 commits into from
Aug 26, 2021
Merged

New Effects > Distort > Droste effect #364

merged 6 commits into from
Aug 26, 2021

Conversation

tannerhelland
Copy link
Owner

The Droste Effect has its own Wikipedia page:

https://en.wikipedia.org/wiki/Droste_effect

Many people probably associate the effect with the work of M.C. Escher:

https://en.wikipedia.org/wiki/Print_Gallery_(M._C._Escher)

PD's implementation is inspired by a Paint.NET plugin by several authors:

https://forums.getpaint.net/topic/32240-droste-v11-may-8-2019/

Using the clock image from that page, here's what it looks like in PD:

image

...with the final result turning out quite lovely, I think. Notice how high-quality the numbers are as they approach the center - that's PD's supersampling engine at work!

image

Anyway, due to its heavy reliance on complex numbers (literal complex numbers, e.g. numbers with real and imaginary components) this is one of the slower effects in PD, especially if you crank up the quality setting unnecessarily. But the results can be quite stunning, so I think it's worthy of inclusion.

Previously these complex functions were only used by one tool.  Now I need to repurpose them elsewhere, so I'd prefer to keep them in their own place.
I need to profile this on another PC, as I'm worried it won't provide much benefit due to some inherent VB weaknesses (like no fmaf() and needing to drop into APIs like GetMem4)
…ation

Again, I need to profile this on a different PC but I hold more hope this could provide a meaningful perf benefit on all distort and transform filters... fingers crossed
The Droste Effect has its own Wikipedia page:

https://en.wikipedia.org/wiki/Droste_effect

Many people probably associate the effect with the work of M.C. Escher:

https://en.wikipedia.org/wiki/Print_Gallery_(M._C._Escher)

PD's implementation is inspired by a Paint.NET plugin by several authors:

https://forums.getpaint.net/topic/32240-droste-v11-may-8-2019/

Due to its heavy reliance on complex numbers (literal complex numbers, e.g. numbers with real and imaginary components) this will be one of the slower effects in PD, especially if you crank up the quality setting unnecessarily.  But the results can be quite stunning!
Aaaargh I had high hopes for these, but alas, they didn't make a meaningful difference (and they have terrible readability compared to the functions they hoped to replace).

Oh well, worth a try.
With this, I think this tool is ready to merge!
@tannerhelland tannerhelland merged commit 96ee8c5 into master Aug 26, 2021
@tannerhelland tannerhelland deleted the droste-effect branch August 26, 2021 04:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant