Jump to content

KrisVDM

Members
  • Posts

    167
  • Joined

  • Last visited

  • Days Won

    7

Posts posted by KrisVDM

  1. I tried to install this and it didn't work and now when I open PDN an error message pops up that says KrisVDM's plugin didn't work...

    Do you think you could put Drop Shadow up so that it'll work, that was the main one that I wanted.

    THANKS! boltbait.big_smile.png

    If the message you get is "Kris Vandermotten's Effects installed incorrectly. The installer can be run now (requires administrative rights). Do you want to run the installer now?", just click yes.

    If the message you get is "Kris Vandermotten's Effects installed incorrectly. Please run the installer (Install.exe) again.", then just run the installer. It's the "Install.exe" file in the zip you downloaded.

  2. Hmm, it seems that if users selects "Keep original image", then you just skip invisible parts of the shadow - this speeds things dramatically. Is that correct?

    Mostly. To be precise, when "keep original image" is on, I do an alpha blend of the original image over the shadow. The optimization is that I don't calculate the shadow if the alpha for the original pixel is 255, and just render the original pixel.

    I spent a lot of time over the years optimizing this. Various techniques are used. I guess the most important one is that I use partial evaluation. Basically, the first step of the process is to calculate the algorithm that will be executed, based on the parameter values. Then I execute that algorithm.

    For example, if the widening parameter is zero, the widening step isn’t in the algorithm being executed. The same is true for the blur step (and others). If widening and blur are both being used, I need what you could think of as an intermediate surface, but I need it only in that case. It simply isn’t there if at least one of those parameters is zero.

    The same is true for the “keep original image” functionality BTW. When that is off, the algorithm lacks the alpha blend step.

    Creating the algorithm on the fly yields a faster algorithm, because I don’t need “if” statements for every individual pixel, as might be the case in a static program.

    As it happens, I’ve done a lot of performance work over the last few months. Expect an even faster version soon.

  3. each time I fire up PDN this pops up, much like PS4 trial screen. Anyway to stop it?

    Current versions of my plugins no longer pop this up at PDN launch, only when one of my effects is actually used.

    Future versions will display "A new version of Kris Vandermotten's Paint.NET Effects is available."

    I hope that is less confusing for users. Any other suggestions?

  4. How to reproduce:

    - Start from a new image

    - Set primary color to red: 153, green: 179, blue: 204

    - Use Paint Bucket to fill entire image with this color

    - Choose Paintbrush tool, set Brush width to 200, Fill to solid color, antialiasing enabled, normal blending

    - Draw a bit

    - Choose Magic Wand, set selection mode to replace, flood mode to contiguous, Tolerance to zero

    - Click anywhere in the image where you did not draw

    Expected outcome: everyting is selected

    Actual outcome: everything is selected, except some pixels left at the edges of the brush circles

    PDN version: 3.5.5 running on Windows 7 64 bit

    I expect there is a rounding error in the normal blending of the atialiased pixels.

    Either the antialiased pixels do not have the same color (they are expected to have a different alpha, but the same RGB), or the alphablend has a rounding problem. Blending a color with itself should yield the same color.

    I often use this technique to remove noise in what should be solid color regions. Looks like that's not a good idea...

  5. ok guys here's my issue, i recently installed the effects pack (w/ like every effect) and i realized today that the Lighten and Darken tool in the Adjustment tab both cause PDN to crash.

    I created "Lighten" and "Darken" adjustments a long time ago. They were pretty useless and are no longer maintained and not included in the latest version of my plugins. If you install the latest version, it should automatically remove them.

    As pyrochild said, the plugin pack is illegal. I never gave permission to redistribute my plugins.

  6. What i'm wondering is what is the best way to blur between to raidus in a circular motion.

    For example first circle uses unblur comparatively to one

    Second circle to 5

    Third circle to 10

    Sounds like a good description of the algorithm to me. Just implement it.

    I think the trick is to realise that you don't need a selection to perform an effect on a subset of the pixels. After all, when OnRender is called, you can copy the original image to the destination and then modify (e.g. blur) part of the destination. After all, you control the rectangle on which you perform an effect.

    Also, you could consider first blurring the biggest circle, and then blurring smaller circles more (or less, whichever you want).

    Hope this helps.

  7. Photoshop uses a fancy dithering algorithm. Paint.NET does a straight, simple gradient.

    My "Gradient" plugin does dithering too now. It's not as versatile as PDN's gadient, and the dithering is not as strong as PhotoShop's, but it works. It should help especially if two interpolated colors are really close to each other.

    If you're interested, download via the link below.

  8. I'm not sure whether this would be a better approach to offering both automatic and manual installation without putting everything in a ZIP file, but if you embed a ZIP file of the plugins in the installer as a resource, some programs such as 7-zip can extract it.
    The plugins are embedded in the installer uncompressed, as the installer itself is compressed in a zip file anyway. Secondly, if I put them in compressed, the installer needs to have decompression logic, which makes it bigger (and slower) again. Finally, even uncompressed, some programs such as .NET Reflector can extract them, if you really want to do that.
  9. I really don't want a plugin folder full of phoning home Dlls.
    I can understand that, but do know I'm not sending any information home. So in a way, it's more like "listening to the radio".
    The idea of auto-update-plugins may be interesting, especially for the developer, but as a user I reject it.
    To developers, it's a nightmare. More work, more testing, difficult testing actually. The reason why anyone, be it a plug-in developer or any other developer or software company, writes updaters, is that it helps users getting better software more quickly.
    Besides the fact that it annoys me, it opens a new realm for bugs, freezes and crashes.
    Other have mentioned the anoyance, and I've made changes to address that. Unfortunately, they will have an effect only after a next update. As for the bugs, one reason to put an update out and getting it into users hands, is to fix bugs. That assumes of course that the update mechanism itself is simple (as it is in my case, in fact it's not updating but merely notifying) and properly tested (as I hope it is...).
  10. If I choose yes I am directed to the install webpage then I close the page. (and go back to PDN)
    The dialog asks "Do you want to download them now?" If you say yes, it opens the page where you can go and download them, so that you can install them later. In other words, if you close the download page, nothing will have happened. Im sorry about the confusion, I hope this clarifies things.
    and if I choose no PDN freezes.
    Can you provide some more information? Feel free to pm me if you prefer that.
  11. You really shouldn't be checking and prompting for updates in your constructor
    I've posted a new update, version 3.5.1, that does the check only when an effect is actually run. Of course, this modification doesn't change the old versions that are already out there.

    I haven't triggered the updater in the old versions, so those that have already installed 3.5.0 will not be notified that 3.5.1 is available.

  12. Whenever I start up PDN now I keep getting a pop up asking me if I want to update to the latest version of your effects . I downloaded the update but the effects were not individual dll files , just an installer. I therefore decided against installing the update. Now though the pop up keeps appearing . Is this going to happen continually until I DO install the new versions? I think this is out of order and you should be just posting the updates in the plug in thread and leaving the choice to install them to the individual concerned.

    How do I stop this pop up from appearing? :evil:

    Yes, with the current code the pop-up will appear until you install the new version (or remove the old one). And indeed, the new version features an installer. Just double-click it. It will ask you which effects you want to install. It then just copies the required dll's into the correct folder. It makes no other modifications to your system and there is no spyware.

    BTW, when I uploaded the file, it was virus free. But as with anything you download from the internet, you should check it before you run it.

    You have a point when you say I should leave people the choice. And in a way I do: you are free to remove my effects if you want to. But I also noticed that I get a lot of questions. Just scan through this thread here. Many questions are about bugs that have long been fixed, or incompatibilities of old versions with more recent versions of Paint.NET. So I thought it would help people if I'd let them know there is a new version. Most people don't check that when they have a problem. Also, the new version is actually better than the previous one (faster, wider range of parameter values, etc.) A lot of other questions are about how to install the dll's. To help those people, I created the installer. In short: I hope and believe this wil benefit a lot of my users. I'm sorry if it offended you.

    One final question, out of curiosity. You don't seem to have a problem with running arbitrary code that you download from the internet in full trust on you machine, since that's what you do when you install third-party effects. Why do you have a problem with running an installer? Was it the "I need administrative rights" dialog that scared you? If you have an operating system that gives you that dialog, you also get that question when you install effects manually... And you get it when you install Paint.NET. So what makes this one different?

  13. Reported several times. It's due to a difference in mouse wheel manufacture. They all send different values to the computer for one "click."
    Not true. The MouseWheel event reports descrete, evenly spaced notches, one event per notch. It is up to the application to decide what to do with each event. For example, MS Word changes the zoom factor by a nominal 10% (e.g. 150% becomes 160%) per event.
  14. if you're really serious about photography then you really should consider that :) Or some Photoshop setup. (I'm not familiar with Digital Photo Pro, but I do have CS4)
    I do have Photoshop, and DPP (the RAW editing software that comes with Canon cameras, you can download it from their site too - it's free). I use them, mostly DPP, for those photo's I shot in RAW, and today that's a minority. I tend to prefer and use Paint.NET for all JPEG work, because it's faster and easier to use. And if needed, I can program my own custom adjustment in minutes, which I cannot with the others. And then there's all the non-photo stuff too.

    I guess what I'm saying is, is that I won't stop using Paint.NET any time soon, whether you work on that saturation thing or not.

  15. :DuplicateLayer: Now, duplicate the text layer.

    :Curves: Go to Adjustments>Curves. Make sure you have selected the bottom duplicate layer. With R,G, and B checked, and in RGB mode, drag the point to the bottom right of the box. Your text should now be black (the text will get black around the edges).

    :GaussianBlur: Now, go to Effects>Blurs>Gaussian Blur and blur by 10px (or whatever you prefer).

    FYI, this step can be simplified significantly with my Drop Shadow effect.
  16. The method that you propose in #2 is dangerous in general, though... it's a classic example of a numerically unstable algorithm, and you can get an arbitrarily bad result when running this on large input sets.
    If you use floating point, indeed. But not if you add bytes together in a long (ints actually, the sum of squared bytes). In fact, in that case there is no loss of precision, and it will be infinitely more numerically stable than what you do now. (In fact, if you were to accumulate a billion floats in a double, it would still be numerically stable.)
    Regarding #3 and #4, I'm not sure whether it will actually improve cache utilization much - the working set can't really be expected to fit in L2 or L3, and the various intermediaries should be detecting this trivial access pattern and prefetching.
    Oh yes it will make a big difference, believe me. First of all, not every image is 50 MB; most I use are a lot smaller. In fact, most images I use are smaller than my L2 cache. Secondly, if you reduce memory usage by a factor x, you reduce the number of cache misses by a factor x too (in this case). I wouldn't count on prefetching too much; since you're actually just scanning linearly through memory, the memory bandwith can become the bottleneck. Have you considered what happens when you start paging? Or if you run into the limits of a 32bit memory space?

    Also, don't forget you're calculating a distance here. Integer addition and multiplication may be faster than floating point on some CPU's.

    Actually I'm currently saving roughly 100-1000 unnecessary conversions and multiplications per pixel by caching the results of that small computation in main memory.
    A 100-1000 what? Seriously, you don't need the color values to be floats, and the scaled coordinates are just two multiplications (one for x and one for y). You're trading two multiplications for a memory problem.

    Oh, and BTW, you're absolutely correct that you need to cluster on six dimensions, not four.

    but I think that I might dramatically speed up the overall clustering by first clustering a small proportion of the pixels (say, the top left corner of every 4-pixel square) and then propagating the labels to nearby ones, a multiscale approach of sorts.
    It will, but I would suggest you get the basic algorithm correct first, before you make it iterative. This is one of those things that I did not consider _low_ hanging fruit. Big fruit, but hanging high.
×
×
  • Create New...