View Single Post
Old 14th October 2012, 00:35   #1  |  Link
wonkey_monkey
Formerly davidh*****
 
wonkey_monkey's Avatar
 
Join Date: Jan 2004
Posts: 2,496
xyremap - reverse Polish pixel remapper (experimental)

Download beta: xyremap0.5beta.zip v0.5 (beta)
version 0.5: some new RPN functions, a bug fix, and (approximately) gamma-aware interpolation (see http://forum.doom9.org/showthread.ph...01#post1736501)
version 0.4: new x86 RPN compiler; new functionality (see http://forum.doom9.org/showthread.ph...05#post1735605)

Download: xyremap0.3.zip v0.3
version 0.3: new parameter "static" to speed up non-animating remaps
version 0.2: bug fixes to pixel interpolator, min/max functions, added new RPN parameters

See included xyremap.txt for parameters, etc.
See here and here for explanations of Reverse Polish Notation

Please note that the RPN parser is not very intelligent when it comes to malformed notation, and may simply return an unexpected result without erroring.

Examples

To make some animated waves:

Code:
xyremap(version.converttorgb32,y="y x 0.1 * n 5 / + sin 8 * +")


To take a trip into the time vortex:

Code:
stackhorizontal(version,version)
stackvertical(last,last)
converttorgb32
xyremap(\
"y h 0.5 * - x w 0.5 * - atan2 n 250 / + TAU + u 1.5 * TAU / * u 0.5 * % u 0.25 * +",\
"1 y h 0.5 * - 2 ^ x w 0.5 * - 2 ^ + sqrt / w 100 * * n + v 0.5 * % v 0.25 * +",\
"y h 0.5 * - 2 ^ x w 0.5 * - 2 ^ + sqrt w 0.5 * /",\
w=640,\
h=360,\
draft=false)
(four "versions" are stacked so the remapper can avoid the image edges, which would otherwise result in some visible edges on the output)


Last edited by wonkey_monkey; 30th August 2015 at 18:59.
wonkey_monkey is offline   Reply With Quote