• Content Count

  • Joined

  • Last visited

  • Days Won


Xhin last won the day on September 27

Xhin had the most liked content!

Community Reputation


Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Distort > Spherical Bulge There's really no other way to describe it. This plugin creates a bulge-like effect within a custom circular radius that feels very spherical. Radius -- Increases the size of the circle where the effect will occur. At 1.00, the effect will cover the entire screen, however you can go even higher if you want, which has its own interesting effects. Like the rest of my plugins, this one assumes that you have an infinite canvas of the image seamlessly mirrored onto itself. Intensity -- Increases the strength of the effect. If this number is positive, the effect will go inwards, like some kind of hallway, while if it's negative it'll bulge outwards. Move -- Allows you to move the effect around the canvas. Edge Behavior -- determines what the pixels outside of the effect range do. "Ignore" means nothing happens to them, "Cut" cuts them out of the image, "Clamp" / "Reflect" / "Wrap" match the settings in my Polar Reflection plugin -- the effect circle gets clamped, reflected or wrapped outwards in a circular way. Quality -- Like my updated Rectangular Inversion plugin, this uses a pretty large amount of sampling in higher qualities. Would not recommend going above 4 on large images. Let's take a look at the plugin. Here's a source image. As tradition dictates, I'm using a picture of Obama. Here's your default settings. Note how while there's a bulge-like effect happening within the radius of the circle, there's also some interesting radial reflection going on as well, giving it a very seamless appearance. Here I've increased the radius -- now a larger amount of the picture has had the effect applied to it. Switched back to the default radius and upped the Intensity. There's a lot more going on now and while its still mostly seamless, it's getting harder to see how everything fits together. If the intensity goes negative, you get a very spherical-looking bulge. Unlike the in-built bulge effect, this will work only within the circular radius you've selected, so it's quite useful for that reason alone. You can also Move the effect circle wherever you want. Edge Behavior "Ignore" and "Cut" should be obvious, so I won't cover those. Here's what the "Clamp" setting looks like. Here's a "Reflect". This is basically identical to the way my Polar Reflection plugin does things. Here's a "Wrap". Same deal here. Uses Other than its general distortion effects, this plugin seems to be particularly well-suited to making "hallways" inside 3-D images. Still to do Anything outside the radius shouldn't have the quality settings applied to it on "Ignore" and "Cut" mode. The quality slider doesn't really do anything with things bigger than the source image. I guess that makes sense given how it works. I'll need to rethink my algorithm a bit there. At some point I'm going to reorganize my Quality setting (I guess after the above update, since it affects other plugins), so there will be an update here that has a more standard Quality setting, except with the additions of level 6 and 7, which are equivalent to 10 or 20 respectively. There should be some way of adjusting X and Y intensities individually. Will require more experimentation probably. Or might look totally awful and not be worth it. Having more control over the internal reflection size probably makes sense. Download Link https://github.com/Xhin23/Paint.net-Plugins/blob/master/Spherical_Bulge.dll
  2. I'm doing something pretty similar to that in version 2 (which I released in the post above yours). It took me a while to figure out how exactly. The highest setting gets some really ridiculous quality: Looking over your algorithm did help me figure out how to tweak my own settings though, so thank you for that. My settings are apparently set up like this (my settings on the left, your setting equivalents on the right. 1 -- 1 2 -- 3 3 -- 5 4 -- 10 5 -- 20 I do kind of like having the higher settings (especially when working with really intense effects), so I'll probably keep them as an optional 6 and 7.
  3. Rectangular Inversion Version 2 This is a rather large update that adds some new settings as well as heavily upgrading the Quality slider. The range for the Zoom slider has been changed to be less sensitive, and instead you can now use the Zoom Intensity slider to give you a wider range to zoom in. This allows you to easily adjust the intensity of the effect without headaches, while still allowing a rather large range of intensities if you want them. "Move" has been renamed to Source Pan. It also works a bit differently than it used to. Rectangular Intensity will increase or decrease the "rectangularity" effect, making it more hyperbolic, parabolic or even circular. Complexity is basically just a source kaleidoscope effect -- it'll reflect the image around the circle, creating a more complex effect. Desination Pan -- Since "Source Pan" and the original "Move" setting changed the actual rendering of the image, this setting will instead just let you move around the result. Quality -- this has been upgraded into a proper quality slider. Let's take a look at the changes. Obama is rapidly becoming my default source image. And your default effect. I don't think the default setting changed, but I did shift a lot of stuff around, so it's possible. This is what happens when you change the Source Pan setting -- it does what it did before, except now the image has the same centerpoint. So those nice "hallway"-like effects you got from this plugin before, you can now see them centered and can pan around with the other Pan setting at will. Changing the Zoom will Zoom in or out in a much more gradual way than it used to. However if you adjust the Zoom Intensity and then touch the Zoom slider, you can now get much much stronger effects. Rectangular Intensity Just as a reminder, here's what a default setting of Rectangular Intensity looks like. Increasing it will give it a more "parabolic" effect. Setting it to 0 will make the effect totally circular. With higher Zooms, you can get some nice effects that look quite similar to polar inversions. Setting it below 0 will instead make the diagonals "hyperbolic". Or you could think of it as the box turning inside-out or whatever. These effects are basically a more generalized form of the "Shape" setting in my plugin Cubic Transformation. Getting this effect to generalize into a slider was a pretty big undertaking, but will be enormously useful in my other polar plugins and probably just in general. Increasing the Complexity will make the image tile itself around the circle surrounding the centerpoint. Definitely an interesting effect -- similar to the Pieces setting in my plugin Polar Kaleidoscope or the Complexity setting in my other plugin Polar Singularity. The Destination Pan effect will let you move around the rendered image, since Source Pan (and its earlier version "Move") changed the rendering of the image as well. This definitely opens up new possibilities. I played with some more settings and turned the Quality slider up to 5. The new version is wickedly strong -- would not recommend going above 4 on large images (and even that takes some time to render). I'll probably need to tweak it a bit before I incorporate it into my other plugins, though I'll still keep around a "very very high quality" setting in addition to the standard 5 settings. New Download Link Same as the old download link: https://github.com/Xhin23/Paint.net-Plugins/blob/master/Rectangular_Inversion.dll Still to do Update the documentation up at the top of this page. Zoom is apparently a source zoom -- the plugin probably needs a destination zoom slider as well. I definitely want to migrate the "rectangular intensity" setting to other plugins that use that effect, and the quality slider as well once I tweak its settings a bit.
  4. I have a question for you, do you plan to leave comments for other programmers using other programming language or software to understand how your filter works? As in, leaving note on the source codes you're planning to release? Something like a base documentation and how the underlying math works, so that other programmers can find the most effective route if there's a way to simplify them.

    1. Xhin


      I wrote an article that does some of that:




      I would like to make a longer more fleshed-out article whenever the polar group of plugins is more fleshed-out.

    2. Reptillian


      Okay, thanks. I'll be using that article when I do finish some of the filters I need to fix.

  5. This particular plugin has been in development a long long time, though I didn't write any actual code (or really know what I was doing with it) until yesterday. All of my Distortion plugins use variations of a very similar codebase that I've explored a lot over the last few months. There's still a large amount of untapped potential there and I've gotten way way better at plugin development so this pace will probably continue for a while. @lynxster4: you're not alone, this plugin seems particularly well-suited to transforming animals:
  6. Distort > Polar Singularity This effect mirrors an image in an acorn-like shape towards a vanishing centerpoint. It feels very much like a polar inversion, but looks completely different. The way the development of these are going, it might make sense soon to move this set of plugins out into a "Polar" menu. There's still a lot of untapped potential there. Intensity -- determines the intensity of the effect. Higher settings are a lot more complicated-looking, with singularities that fill the screen and a lot more warping throughout. Complexity -- Adjusts the amount of "sides" to the distortion without altering the complexity of the singularity. Useful for tweaking the look of a distortion. Source Zoom -- Keeps the singularity settings the same but uses more or less of the source image. At lower settings the image will fill each "spoke" (or they might even be partials), at higher settings, the source image will repeat itself many times along the spoke. Source Rotate -- Essentially rotates the orientation of each quadrant. You're reflecting the entire source image at any given time, so this mostly just determines the way the singularity looks internally. Destination Zoom -- Zooms in or out of the rendered image. Destination Pan -- Lets you move around the rendered image. Because of how my plugins work, the image is actually infinitely large so you the effect is quite smooth wherever you are. Quality v0 -- a faked-out quality slider. Will be fixed when I fix it with the rest of my plugins. Development is somewhat slow at the moment, but I'm making progress. Let's take a look at what the plugin does: Here's a source image for comparison. Continuing the tradition of using Obama. Here's what your default settings look like. Overall a pretty interesting effect. Increasing and decreasing the Intensity setting, respectively. With the default settings the same, decreasing the Complexity. This is what it looks like if you lower the Source Zoom -- note how the entire image is being mapped to each spoke now. A bit of Source Rotation and a lot of Destination Zoom gets you a result like this -- when you zoom out a lot, the image gets a lot less complex and the original image shines through more. This is the kind of thing you can get by altering the Destination Pan. Note how there are no wrap lines or anything, the image is what you'd expect it to be. Still to do Releasing the source code, fixing the quality slider and other standard stuff for my plugins. The intensity can apparently go negative with some interesting secondary effects. Because of how different this looked and how poorly it plays with the other sliders, it makes more sense to release those settings as a separate plugin. Similarly, I need to explore in-zooms and out-zooms with much higher magnitudes. There's probably some interesting effects to find there. Download Link https://github.com/Xhin23/Paint.net-Plugins/blob/master/Polar_Singularity.dll
  7. Fixed! It definitely needed to be a fairly complicated picture -- something with too little detail like a banana wouldn't work because you just end up with an abstract yellow/black thing with most settings.
  8. Distort > Lattice Transform This is one of the plugins I've been wanting to do for a long time, but up until recently I didn't really have a good idea how to accomplish it. It's quite a bit more complicated math-wise than my other distortion plugins. This plugin takes a triangular section of an image and then tiles it over the whole thing -- it's like a six-sided kaleidoscope except all you get are hexagons. Me being me, I also added a lot of extra features to it. Radius -- Determines the size of the hexagons that are formed. This can be anything from 1% of the width to the entire width. Source Center / Source Rotate -- these let you pick a different triangle essentially. The "source center" option will pan around and the "source rotate" option will rotate it. Source Zoom -- Keeps the triangle settings the same but zooms out of the source image. This essentially adds more detail to the lattice pattern you've selected. With a high enough level, you can get the entire image in there. Destination Zoom -- Zooms out of the resulting image as a whole. Hexagonal Warping -- A neat little effect that warps the image around the hexagons which are formed. Has kind of a 3-d effect to it. Preview Triangle v0 -- Lets you preview the triangle that's used in the lattice. As a version 0, this isn't perfect, but it works pretty well already. I will fix it when I fix a similar feature in my Advanced Kaleidoscope plugin. Quality v0 -- a faked-out quality slider. I'll fix this when I fix it in all of my plugins. This is at least better than nothing though. Let's take a look at what this plugin actually does: Here's a base image, which I made by adding the word "lattice" to a bunch of words. And recoloring it of course. Here's what your default settings look like. Note how you're tiling the same triangle around the whole image. Making the radius bigger or smaller respectively. With the default settings the same, changing the Source Center and Source Rotate options. Basically this gives you a different triangle to work with. With the default settings, changing the Source Zoom. Note how the overall lattice pattern is the same, but what's inside each triangle is zoomed out. Like the rest of my plugins, the image will mirror itself in all directions so you never get random wrap lines. With the default settings, changing the Destination Zoom, which just zooms out of the image you've created. I have an intuition that you can mimic one of the three (radius, source zoom, destination zoom) with two of the other three, but I'm not sure which one it is. In any case, redundancy isn't a bad thing with a distortion plugin. Here's what a hexagonal warp looks like, with a fairly high setting. These definitely give you some cool effects. Altering the radius and/or source zoom helps these effects shine as well. A hexagonal warp, with a lower-than-normal settings. As expected, the triads that were bigger are now smaller, and vice-versa. Here's a hexagonal warp with a very high radius. Probably the most 3-D version of this effect, and worth sharing. Reminds me a bit of a smoother version of the Pyramid Convex setting of my Cubic Transformation plugin. Here's what Preview Triangle v0 looks like. It isn't perfect, but it's enough to generally give you an idea of what will show up in the image. Here's what that previewed triangle turns into. Still to do Fix the Preview Triangle feature. Will happen around the same time I fix it in my other plugin. Fix the Quality setting. Will happen globally for all of my distortion plugins around the same time. Release the codelab source code. Will happen when I release the source code for all of my plugins, which should be sooner now that I have a better understanding of C#. There's definitely some untapped potential here because I'm using polar coordinates in two different places. Will be worth exploring more when I flesh out my plugin set. Having destination pan and/or destination rotate options would be nice, but they're not really required. Download Link https://github.com/Xhin23/Paint.net-Plugins/blob/master/Lattice_Transform.dll
  9. The problem with having a drop-down list is that would require 87,178,291,200 (14 factorial) options with the current iteration of the plugin because you can mix and match all of these effects.
  10. Adjustments > Invert Anything This plugin allows you to invert a pretty wide variety of things all in one plugin. I'm 99% sure most of this exists elsewhere, but there are a couple things that don't exist yet. Red/Green/Blue -- inverts the red, blue and/or green channels. Will essentially turn yellow into blue, red into cyan, and so on. Hue/Saturation/Value Inverts the hue, saturation or value. Alpha -- Inverts the alpha channel -- transparent pixels will become more opaque, and vice-versa. Fully transparent pixels will apparently turn black. Contrast This feature came from a different plugin I'm working on. Essentially you're inverting things on either side of the median. If you're doing this with red contrast+green contrast+blue contrast on something colorful, for example, you'll get an image that's significantly more gray. Something with more washed-out colors will become more colorful. Essentially you're pulling the colors further away from the median towards the median (making them gray) and vice-versa. Other effects work much the same way, except instead of the median being gray it'll be whatever the median value for that setting is -- hue contrast for example will pull things closer or further away from cyan because that's the median hue. Plugin Examples This plugin offers a large amount of options, so rather than show them all I'll show each individual setting and a few interesting combinations all in one image. First, here's a source image. This cat is pretty useful for testing color/adjustment plugins -- lots of different colors, a good bit of white and black as well. Here are some different settings. The "Everything" means "everything but alpha + alpha contrast". Download Link https://github.com/Xhin23/Paint.net-Plugins/blob/master/Invert_Anything.dll
  11. You think those are bad, check out this album of my art: https://www.facebook.com/pg/artluvultra/photos/?tab=album&album_id=740640276030710 I'm not sure where the black pixels are coming from -- that only seems to happen when I'm working on 600px wide canvases. If I go 800 or higher (I normally work on 3200px canvases), they don't appear.
  12. Adjustments > Remove Black This is a simple little plugin that turns black pixels into transparent pixels, then turns other pixels into alpha versions of themselves depending on their darkness so the effect is smoother. I apologize if this exists elsewhere -- the code is really really simple so I bet someone else has run across it. I doubt they have my threshold slider though. Threshold -- changes the amount of pixels that get alpha adjustments applied to them. Lower settings will have more of the image turning into alpha, higher settings will have smaller amounts. Let's take a look at the plugin: I've chosen this as my base image -- there is color here, but also a lot of darker pixels. On the layer underneath it, I have a circular rainbow texture I made with my Radial Prism plugin. Here's what your default settings look like. This essentially replaces the black pixels with the rainbow pixels in the layer underneath it in a smooth way. This has threshold set to 1 -- this tends to be the most intuitive use of the plugin, but also the least useful in my experience. Here's a higher threshold. Now the rainbow has essentially become an outline. Some tips for use I've been using this plugin for years despite not releasing it until today. Here's a couple things I've noticed: Putting a radial prism on the layer below an image works pretty fantastic across the board -- this forms the basis of my "pure color" technique where the image becomes nothing but color. If you use a Drop shadow when the plugin is set to a low threshold, you get some really good tinting effects. If you use black instead of a color you can smoothly append the underlayer, or if you have the image itself underneath it this is a great way of adding extra shadow without messing up the detail. I have an upcoming recoloring tutorial that uses this technique. Here's are a couple snippets where I've used the plugin to good effect with these techniques: Download Link https://github.com/Xhin23/Paint.net-Plugins/blob/master/Remove_Black.dll
  13. This plugin is now version 1.1. More of a bugfix update than anything else: Plugin is no longer crashing on lasso select. I tested the fix pretty thoroughly. The edges are no longer dark. Related to this, the image itself isn't as dark as it used to be. The performance is better than it was. Still not great on large images, but definitely an improvement. I made some headway on my checklist for this plugin as well, and I have a good idea of the direction I want to take it for a version 2: Add a "Brightness" setting -- this plugin tends to make some images quite dark, so this setting would fix things afterwards, ideally with some kind of auto-contrast so you don't lose detail. Make "Flat Radius" a checkbox and scale it to the "radius" settings instead of having it as a separate slider. Scale the radius/flat radius settings to the image or selection size. The reason performance is such an issue at large sizes is because you're looking at hundreds of surrounding pixels at every pixel, and if your image is larger that's going to be a huge bottleneck. So instead, I'm thinking about having a kind of "quality" or "effect scale" slider -- at high qualities you get the original effect, but at lower qualities the effects scale downwards so you can at least get a good idea of what you're doing at large image sizes. Still want to experiment some more with the source plugin -- there was a lot more potential there. Might just bundle those effects into separate plugins however. Download link for v1.1 (same as the old one) https://github.com/Xhin23/Paint.net-Plugins/blob/master/Glass_Blur.dll
  14. This issue will be fixed today. The auto-bevel issue will probably be fixed today as well, as well as a couple minor things I've been noticing as I use it.
  15. Knowing which menu to look in would be a big help. @Ego Eram Reputo fixed for all the new ones. The older ones need work in a few different directions.