Xhin

Members
  • Content Count

    130
  • Joined

  • Last visited

  • Days Won

    6

Xhin last won the day on September 27 2019

Xhin had the most liked content!

Community Reputation

89

Recent Profile Visitors

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

  1. Polar > Galaxy Transformation This plugin spirals an image inwards in a deep galaxy-like way. It can also be used as a Polar Inversion plugin with more options. This plugin started as an attempt to generalize the fractal-like nature of my Polar Singularity plugin so some of my plugins won't have an annoying vanishing point in the center. I was successful there, but liked the way a basic spiralling effect looked so much that I turned it into a full plugin. Along the way I apparently rediscovered polar inversions, so I've got a second tutorial below for using this plugin as a polar inversion plugin with more options. It's also possible to use this plugin as a full-width Twist or Bulge plugin but I forget what the exact settings are there. First, let's take a look at this plugin's settings: Intensity -- Determines the intensity or "depth" of the effect. Spin -- Allows you to change the intensity of the spiral (or its direction) without affecting the Intensity. Source Pan -- Lets you pick a different part of the image to apply the effect to. Like my other plugins the image gets reflected outwards infinitely so this is seamless. Source Zoom -- Zooms in or out on the infinite-reflecting image. One way of looking at this setting is increasing (>1) or decreasing (<1) the complexity of the effect. Source Rotate -- Rotates the image prior to kaleidoscoping. If your Kaleidoscoping value is set to 1 and mirroring is turned off, this is identical to Dest Rotate. Dest Pan -- moves around the rendered image. Dest Rotate -- rotates the rendered image. Kaleidoscoping -- Works the same as the "pieces" setting in various kaleidoscope plugins with piece wrapping turned on. Unlike those plugins though the twisty nature of the effect is preserved, giving the image a neat sunflower-like effect. Great if you're using this plugin to make mandalas or something similar. Kaleidoscope Mirroring -- Reflects pieces rather than wrapping them so you get more of a "star"-like effect. Quality -- 1-5 are what you'd expect, 6 is equivalent to 10 and 7 is equivalent to 20 -- those two settings are good if you're doing something really really crazy, but they do take a while to render. Through some effort I also optimized my most recent quality slider -- settings 1 and 2 are significantly faster than they are in my other plugins. I'll be propagating this change out into my other plugins soon. Let's take a look at what the plugin does: Here's a source image. I'm using a beach because a lot of the effects you really need to have a full image to see how they work. Your default setting. Note how this effect doesn't resemble other "twist" plugins -- it's a lot "deeper" and reflects inwards infinitely. Here I've altered the Intensity setting to make it "deeper". Like the above, but with the Spin setting increased so it resembles the original settings. In general you're going to be adjusting Intensity and Spin a lot to get the kind of curve you want. Back to default settings, and I pulled the Source Zoom way down. This has had the effect of making the image less "complex" but also probably more aesthetic. Here I've moved the Dest Pan to the top left. Now the spiral's center is in the top left, however because of how my plugins work you're still getting a lot of interesting effects away from the spiral. In this case I've moved the Dest Zoom around. I also made Spin negative and messed around with some other settings. Dest Zoom will allow you to zoom into whatever thing you've constructed, which is quite neat since the scale is infinite. Here's what it looks like when you're using the Kaleidoscoping setting. Note how the twisting nature is preserved among all the pieces, so you get this really cool hurricane-looking effect. Should be quite useful for abstract art. This setting is also where Source Rotate plays a role -- you can use this setting to change what appears in each piece. The same as the above, but with Kaleidoscope Mirroring turned on. Now your kaleidoscope pieces are flowing together seamlessly. Should be enormously useful if you're trying to create actual galaxies. Polar Inversion + Tutorial Next, I'm going to outline how you can use this plugin to create polar inversions with some interesting new options. To start with this, set Spin to 0. Now your Intensity slider is equivalent to the Intensity slider in the base Polar Inversion plugin. You can use the Source Pan setting to change the appearance of everything. This happens in the base plugin too (with the "offset" setting), however that also moves around the image at the same time. Here you can use Source Pan to use a different part of the image and Dest Pan to move around the rendered image. While in this mode, you can still use the Zoom controls to focus in or out on the inversion without altering the intensity settings. This gives you some very fine control over the way it appears in your art. With higher Intensities and some use of Dest Pan and Zooming, you can see what the outer "walls" of the polar inversion look like. Interesting distortion effect in its own right. You can also use the Kaleidoscoping setting to create polar inversion kaleidoscopes natively. Still to do This is probably the final version of my quality slider, unless I find new optimizations. So I'll be migrating this to the rest of my distortion plugins probably this week. The settings can be quite sensitive sometimes, and you can also get crazy things sometimes. I've improved this a lot, but I'll probably work on it some more. You'll sometimes get a seam on the far left. I've eliminated a lot of the bugs around this, but it still seems to happen with the Kaleidoscoping/mirroring settings on and a negative Spin. I'll need to look into it some more probably. Download Link https://github.com/Xhin23/Paint.net-Plugins/blob/master/Galaxy Transformation.dll
  2. We're evidently doing things very differently so I don't know how well this will translate. All of my distortion plugins work like this: Each pixel is converted into polar coordinates (Angle and Distance from the centerpoint) Some set of modifications happens to the Angle and Distance variables. The Angle and Distance are converted back into "source" cartesian coordinates. If the source coordinates aren't in the image, the image gets seamlessly mirrored in every direction infinitely to compensate. The current pixel turns into the source pixel, or gets averaged from whatever subpixel stuff is happening in the quality slider. All of my distortion plugins are almost exactly the same except for step #2. If you mirror the distance, you get a Polar Reflection, if you reflect the angle you get a kaleidoscope, if you add the angle to the distance you get a spiral, etc. There's some more complicated trigonometry stuff that happens with "rectangular intensity" effects, but in the end you're still modifying the distance and angle. So for the skew settings in my Self-spiral plugin, what's happening is you're adding the current X or Y coordinate to the distance. The code looks something like this: D += __x_skew*x; D += __y_skew*y; So the float in your X Skew and Y Skew settings is determining what percentage of the X or Y coordinate get added to the distance. If you skew both the same amount, the effect skews diagonally. If you did another polar-to-cartesian conversion, then instead of having only X and Y skew (or both) you could skew in any direction whatsoever. This will happen in an upcoming version of the plugin.
  3. Polar > Self-Spiral This plugin twists the entire image around itself and reflects it outwards. It's similar to a Droste effect but doesn't have edges, uses the entire image, and also disappears in the center of the image. You can also get some non-spiral geometry due to the way the mirroring algorithm works. I don't know about you, but my Distort menu is crammed full. I'm going to start moving almost all of my past and future distort plugins to the "Polar" menu instead, since they're all variations of the same polar framework. Anyway, let's take a look at this plugin: Clockwise -- By default the spiral happens counterclockwise from the center. This is also the default orientation for paint.net's spiral gradient. By clicking this you can instead get it to flow clockwise from the center. Spiral Size -- Changes the size of the spiral, or rather the distance between each layer of it. Intensity -- Changes how much complexity there is inside of each fold of the spiral. It's a bit like a "Source Zoom" in some of my other plugins, except it works quite a bit differently. Zoom -- Lets you zoom in or out from the rendered spiral. Should be self-explanatory. Source Pan -- Lets you pick a different part of the image to radiate outwards. Rotate -- Lets you rotate the rendered image. This is usually the first thing that gets cut from my plugins to save screen space, but you're dealing with spirals so it makes sense to have the option this time. X Skew / Y Skew -- A bit difficult to explain. This basically stretches the spiral horizontally or vertically though this sometimes has unintended effects. Use X Skew for Both -- If this is checked, the X Skew slider will also be the setting for the Y Skew slider, so you'll get a kind of diagonal stretching. Dest Pan -- Lets you move around the rendered image. Now, let's look at what the plugin actually does: This time I've decided to use the earth as a source image so you get a better sense of what happens to objects. Here's what your default settings look like. Note how the entire earth is spiraling outwards. Note also how you have a reflected version of the earth on either side of the spiral -- this means that the effect is 100% seamless. If you choose the Clockwise setting instead. Basically exactly the same but everything is flipped vertically. Increasing the Spiral Size. If you Zoomed out you could see more of the much larger spiral now, but right now all you get is a little arc up at the top. Back to default size settings and increased the Intensity instead. The spiral is the same size as the original example, but now there's more happening between each fold. I took the last example and Zoomed out. The Zoom effect here is a Destination Zoom, so you're zooming in or out of whatever you're rendering in the plugin as a whole. I have however put it near the top of the settings because you're probably going to be adjusting Size/Intensity/Zoom a lot to get the right effect. Same as last example, but I moved the Source Pan to the left slightly. Now a different part of the earth is being spiralled outwards. Same as that but I've increased the X Skew. This is now distorting things horizontally quite a lot. If you had used Y Skew instead it would be distorting it vertically, and if you had "Use X Skew for Both" checked, it would distort it diagonally. I figure Dest Pan is pretty self-explanatory -- you're just moving around whatever the rendered image is. Still to do Some kind of quality slider would be nice. There's not much of a point until I figure out a good algorithm for upscaling though, so the quality update will be released at the same time as the quality update for my Polar Reflection plugin. I've also noticed that the quality update with my other plugins has made them significantly slower (even on quality = 1), so I'll be working on that as well. Sometimes things mildly break on the far right side. I have no idea what's causing this specifcally yet, so I'll be working on it. I've been trying to get the centerpoint also reflecting rather than clamping so this effect turns into more of a legitimate droste effect, but that's evidently going to take more work to figure out. Oddly my Polar Singularity plugin is doing something like that, so I'll probably start there. Adding a Skew Rotation slider is probably a better option than having separate x/y sliders and that "use both" checkbox. So this will probably happen in a later update. Releasing the source code. Download Link https://github.com/Xhin23/Paint.net-Plugins/blob/master/Self Spiral.dll
  4. 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
  5. It's not the same effect obviously, but it's close enough to demonstrate the difference in quality:
  6. 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.
  7. 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.
  8. 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
  9. 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.
  10. 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.
  11. 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

      Xhin

      I wrote an article that does some of that:

       

      https://gtx0.com/read/polar-coordinates

       

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

    2. Reptillian

      Reptillian

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

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