resynth/README.md

81 lines
2.6 KiB
Markdown

# resynth
resynthesis is the process of taking a source texture and
creating similar (oft tiling) textures based on it.
resynth is a C rewrite of the original resynthesizer by [Paul Harrison.][pfh]
it does not require GIMP to function; just feed it image paths and it will save copies.
however, this program lacks the patching (masking) and texture transfer abilities of the original plugin.
resynth produces [tiling images like those seen here.][examples]
[pfh]: http://logarithmic.net/pfh/
[examples]: http://logarithmic.net/pfh/resynthesizer/more
## related projects
* [the original resynthesizer GIMP plugin in C++][orig] and [the associated paper][paper]
* [an updated resynthesizer GIMP plugin in C and C++][gimp]
* [syntex: similar algorithms based on resynthesizer in C#][syntex]
[orig]: http://logarithmic.net/pfh/resynthesizer
[paper]: http://www.logarithmic.net/pfh-files/thesis/dissertation.pdf
[gimp]: https://github.com/bootchk/resynthesizer/
[syntex]: https://github.com/mxgmn/SynTex/
## help
```
usage:
-a --autism
sensitivity to outliers
range: [0,256]; default: 32
-N --neighbors
points to use when sampling
range: [0,1024]; default: 29
-r --radius
square neighborhood, always odd
range: [0,32]; default: [n/a]
-R --circle-radius
circle neighborhood radius
range: [1,128]; default: [n/a]
-M --tries
random points added to candidates
range: [0,65536]; default: 192
-p --polish
extra iterations
range: [0,9]; default: 0
-m --magic
magic constant, affects iterations
range: [0,255]; default: 192
-s --scale
output size multiplier; negative values set width and height
range: [-8192,32]; default: 1
-S --seed
initial RNG value
default: 0 [time(0)]
{files...}
image files to open, resynthesize, and save as {filename}.resynth.png
required default: [none]
```
apologies for the `radius`, `circle-radius`, and `polish` parameters.
they should be properly described or removed.
## notes
includes header libraries from [nothings (stb)][stb] and [notwa (kyaa).][kyaa]
[stb]: https://github.com/nothings/stb
[kyaa]: https://gist.github.com/notwa/5d287d807ffe11bbb553462c9940445c#file-kyaa-md
compile like
```
clang -std=gnu11 -lm -Ofast resynth.c -o resynth
```
extra flags that i use are
```
-Wall -Wextra -Werror=implicit-function-declaration -Winline -Wshadow
-Wno-unused -Wno-padded -Wno-missing-field-initializers -Wno-misleading-indentation -Wno-disabled-macro-expansion -Wno-language-extension-token -Wno-unknown-warning-option
```