TechnoRobbo Posted November 5, 2013 Share Posted November 5, 2013 (edited) TechnoRobbo's FreeWarp v1.9.2 TR’s FreeWarp (short for TechnoRobbo’s Freestyle Warp) was designed for the artist to intuitively reshape an image by stretching it’s detail. The math employed was a built from the ground up as deliberate departure from Beier-Neely’s Algorithm and the standard mesh warp, Allowing the stretching to be arbitrary. Version 1.92 adds AutoSave and more internal stuff. Version 1.91 adds an Opacity adjustment and some internal stuff Version 1.9 adds a Warp Curvature adjustment and preview Version 1.8 Fixes Undo Version 1.7.1 Cursor Scaling Fix. Version 1.7 warping within selections. Version 1.6 adds functionality and speed Version 1.5 Re-invents the user interface Version 1.2 Puts back missing Label Version 1.1 Fine Location Control Added FreeWarp Tutorial Tutorial Music by TechnoRobbo Menu: Effects->Distort Left-Click Key to Warp - Save to Keep Warp Old Version 1.5 http://youtu.be/8ZiKjh9dRsI Version 1.1 Video How it Works The Algorithm has 2 distinct parts: 1. Distort the Image 2. Localize Warping ..and 3 distinct parameters. 1. The Origin – where the warp begins 2. The Target – where the warp ends 3. The Minimum Warp Size – the size of the warped area (If you continue to stretch the image beyond this size the algorithm adjusts this parameter) Distort the Image Stretching the image is achieved by dividing the image into parts. The Stretched Side and the Compressed Side. The demarcation point is the Target point. Anything on the Origin side of the Target it stretched from the image border – anything on the opposite side is compressed towards the image border. In the Source Code this is labeled “//reverse mapping”. Localizing the Warp Localizing control of the warp is a simple matter of finding the distance of a pixel to the imaginary line segment created by the Origin Point and the Target Point. In the Source Code this is the “distance” function. The distance is normalized by diving it with the Minimum Warp Size. If the distance between Origin and Target (Pythagorean Theorem) exceeds the Minimum Warp Size the distance is used. Normalizing results (d) is a value between 0 and 1 that is used as the control in a linear interpolation between the Source pixel (uu,vv) and the Target Pixel (x,y). uu = d * x + uu - uu * d; vv = d * y + vv - vv * d; I hope I shed some light on the code for the programmers – I’m sorry if I bored the rest. The Source Code The Plugin TRsFreeWarp.zip Edited January 1, 2016 by TechnoRobbo 8 Quote Go out there and be amazing. Have Fun, TRSome Pretty Pictures Some Cool Plugins Link to comment Share on other sites More sharing options...
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.