ryanr23

Shadow Effect Plugin - Updated for 4.0+ on 2015-03-23

76 posts in this topic

This plugin creates a shadow as if from a direct light source in front of the object in question.  As with the other shadow plugins, you need to be working on a layer with transparencies. The shadow is applied to all opaque pixels on the layer. Also, the bottom of the image is assumed to be the "ground" and the shadow is relative to that point.

 

View project on GitHub

 

Requirements
Paint.NET v4.0+

 

Installation

As usual, copy the dll to the Effects folder and restart Paint.NET.

 

Download

 

Plugin example

See GitHub page for latest example.

v4_0_with_shadow.png

post-45788-0-68679600-1427154404_thumb.p

 

Previous Versions
index.php?app=core&module=attach&section

If you can't see the screenshot above, click for full size:
post-44727-0-11134900-1335809184_thumb.p

Download:

 

Incompatible with paint.net 4.x (works with 3.5.11): ShadowEffect.zip

 

Midora recompiled the effect for paint.net 4.x (see http://forums.getpaint.net/index.php?/topic/1900-shadow-effect-plugin-like-google-maps/?p=419633): ShadowEffectUpdated.zip 

 

As usual, just dump the binary dll in the "Effects" folder.


Change Log:
 

v1.2; 3/21/2015 (8+ years later!)

  • Updated to build against VS2012 Express, use GaussianBlurEffect, and implement PropertyBasedEffect so it's compatible with newer versions
  • GitHub link to source code: https://github.com/ryanr23/PDN-Shadow-Effect-Plugin
  • Thanks to toe_head2001 for his contribution!

v1.1; 10/11/2006

  • Removed references to "Google"
  • Improved rendering time
  • Smoother graduated shadow blurring

v1.0; 09/30/2006

  • Initial release

-- Ryan 

Edited by ryanr23
Since the author is long gone, I added a new screenshot and the DLL to this post.
0

Share this post


Link to post
Share on other sites
The shadow is applied to all opaque pixels on the layer

Are you just checking for pixels with an alpha value of 255? I would suggest, instead, rendering the drop shadow for all pixels and then blending that based on the source texel's alpha value. You can use UserPixelOps.Normal.ApplyStatic() to do this on a per-pixel basis.

Paint.NET 3.0 will have some blending utility functions that make this sort of stuff (taking the alpha channel in to account) easier.

0

Share this post


Link to post
Share on other sites

Thanks for the feedback!

No, the operation isn't simply looking for alpha values of 255, but it isn't much more complex than that. Sorry for the simplistic explanation.

It takes the source pixel, converts to black and scales the alpha based on the configured shadow alpha. So if your configured alpha is 115, a pixel with alpha of 255 will get scaled to 115, a pixel with an alpha of 128 will get scaled to 58. Obviously 0 goes to 0.

I assume that you are implying that multiple src pixels get mapped to one destination pixel in the shadow in which case you would want to blend the source pixels to calculate the destination pixels value. In which case, I agree... I haven't gotten there yet. ;) However, I might be able to accomplish the same thing by blurring the image before calculating the shadow, rather than blurring the shadow after the fact. I'm not sure...

Also, if it wasn't apparent from the original post, the current plugin translates the source layer into a shadow layer. The source layer is not preserved. The result of the operation is a mostly transparent layer that can be overlayed on other images to appear to give it depth. This is how the google maps API works.

BTW, I'm not super familiar with the entire Paint.NET API at this point, but by "UserPixelOps.Normal.ApplyStatic()" did you mean "UserBlendOps.NormalBlendOp.ApplyStatic()"?

0

Share this post


Link to post
Share on other sites

Wow! Nice job.

However, I think you should avoid using the word "Google" in the project. Potential copyright issues.

0

Share this post


Link to post
Share on other sites
BTW, I'm not super familiar with the entire Paint.NET API at this point, but by "UserPixelOps.Normal.ApplyStatic()" did you mean "UserBlendOps.NormalBlendOp.ApplyStatic()"?

Yes

0

Share this post


Link to post
Share on other sites

YEs, i love that pluginn, now as soon as i get out of school, i will have to download it...

0

Share this post


Link to post
Share on other sites

HEY! The download links are DEAD. :cry:

I really want this Plug-in. Can somebody email it to me??

Pretty please with sugar on it.... :D

TIA!

Dave

0

Share this post


Link to post
Share on other sites

The link to the .Dll is broken.

"PAGE UNAVAILABLE

This URL you typed is unavailable at this time. "

0

Share this post


Link to post
Share on other sites

I cannot get source ("PAGE UNAVAILABLE

This URL you typed is unavailable at this time"). Give, please, the new reference.

0

Share this post


Link to post
Share on other sites
I cannot get source ("PAGE UNAVAILABLE

This URL you typed is unavailable at this time"). Give, please, the new reference.

you can download the binary from his temporary link and decompile it with the Salamander .NET Decompiler

0

Share this post


Link to post
Share on other sites

Could you please fix the link? That really mislead me.

Thank you for the temporary link El Sid.

0

Share this post


Link to post
Share on other sites

can someone help me.. how do i use this plug in.. can anyone teach me how?

0

Share this post


Link to post
Share on other sites

:wink: Hello Harvey ! I'm going to try to do that ... i'm French so....

You must to duplicate the pic you have and "put" the effect in the duplicated pic ( i want to say the pic down ...) Hope you'll understand me :wink:

0

Share this post


Link to post
Share on other sites
:wink: Hello Harvey ! I'm going to try to do that ... i'm French so....

You must to duplicate the pic you have and "put" the effect in the duplicated pic ( i want to say the pic down ...) Hope you'll understand me :wink:

thanks man.. appreciate your help :D

0

Share this post


Link to post
Share on other sites

BROKEN LINK BROKEN LINK BROKEN LINK TO BINARY DLL :cry::cry::cry::cry::cry: :evil: :evil: :evil: :evil: :evil:

0

Share this post


Link to post
Share on other sites

im pretty sure this doesn't count as necroposting but your links are dead now and i would like that plugin

0

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now