• 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. Cubic Transformation Version 2 Through quite a bit of work, I've turned the "Shape Type" and "Curve Type" settings into sliders. They also go quite a bit higher than the old settings worked, allowing you to, for example, turn images hyperbolic. I also added a new setting which lets you move around better, and I updated the quality setting to what'll probably be the final version for my quality sliders. Shape -- The new version of "Shape Type". -1 is equivalent to Tube and +1 to Pyramid in Version 1. Rectangular Intensity -- The new version of "Curve Type". -1 is equivalent to Convex and +1 to Concave in Version 1. Setting it to 0 seems to make the effect elliptical. Source Pan -- This is what the old Rotate/Pan is now called. While it's technically accurate now, it doesn't always work how you'd expect it to, and sometimes feels more like rotation than panning due to 3D effects. Dest Pan -- A new effect that lets you move around the resulting affected image. Quality -- An actual quality slider -- 1-5 work how you'd expect them to. However, I've also included a 6 and 7. These are pretty extreme, equivalent to 10 and 20 respectively. Potentially useful for very very high quality on high-distortion images if you don't mind waiting several minutes. I wouldn't recommend running 7 on large images, but 6 is feasible if your graphics card can handle it. I've also removed the Intensity effect. The natural intensity of the effect is now 3, so you might get slightly different results with default settings. However, there was a lot of overlap between intensity and shape/rectangular intensity, so you can still get whatever you want by adjusting those sliders instead. Let's take a look at the changes. I'm using the same source image so you guys can compare the different versions. With default +1 Rectanguar Intensity, setting Shape above +1. You could call this a Superpyramid Concave. Putting Shape to 0. Putting Shape below -1. A Supertube Concave effect maybe. Keeping Shape at the default +1, putting Rectangular Intensity higher than +1. Pyramid Superconcave. Putting Rectangular Intensity at 0. Whatever effect you're doing is just elliptical and has no relation to the corners at all. Putting Rectangular Intensity below -1. Pyramid Superconvex. Keeping the default settings, but messing around with the Dest Pan effect. This doesn't quite do what you'd expect it to do either, but you can get some pretty neat effects, which is what's important in the end. A note of caution (or I guess lack thereof) If you play around with this effect enough you can go so far that paint.net can't render what you're looking at and instead you'll get solid color regions like this. It's also possible to overflow and get some really weird inverted effects (which might be worth exploring in a different plugin). None of this kind of thing breaks paint.net, but it might look like a bug when it's not. Still to do Look into improving the quality slider for upscaling as well as downscaling. At the moment you can get a lot of very pixellated effects which probably isn't useful. Hopefully using this effect more will let me understand how Source Pan and Dest Pan actually work. At the moment they're both useful but neither does what you'd think it would. Update the docs here. I'll probably do this in bulk with all of my version 2 plugins. Release the source code. Download link (same as the old download link) https://github.com/Xhin23/Paint.net-Plugins/blob/master/Cubic_Transformation.dll
  2. It's not the same effect obviously, but it's close enough to demonstrate the difference in quality:
  3. It's actually set to arbitrary values -- I had no idea how to make a quality slider other than what I could gather from this post and subsequent supersampling research: So I just tied quality values to whatever increments looked the best between -0.5 and 0.5 without realizing that the amount of increments is what the quality number actually means. In any case you do definitely get better results above 5 samples, so a newer version of that slider will have a 6 and 7 which mean 10 and 20 respectively. These are currently what my 4 and 5 are set to.
  4. That's due to the weirdness of the quality slider -- 1 is 1, but 2 is 3, 3 is 5 and it kind of accelerates from there. Should be fixed in a later update.
  5. 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
  6. 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.
  7. 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.
  8. 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.

  9. 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:
  10. 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
  11. 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.
  12. 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
  13. 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.
  14. 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
  15. 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.