Home

Awesome

<p align="center"><img src="images/top.png"></p>

The algorithms are:

  1. Full neighbourhood search algorithm of Scott Draves and Alexei Efros + Thomas Leung and Li-Yi Wei + Marc Levoy is probably the simplest texture synthesis algorithm imaginable.
  2. K-coherent neighbourhood search of Michael Ashikhmin and Xin Tong + Jingdan Zhangz + Ligang Liu + Xi Wangz + Baining Guo + Heung-Yeung Shum takes computational burden from the synthesis to the analysis part and therefore is better suited for synthesizing large textures.
  3. Resynthesis algorithm of P. F. Harrison is scale-invariant, fast, supports constraints and practically never produces completely unsatisfactory results.

Note that my implementations are not completely true to the original papers.

Watch a video demonstration of P. F. Harrison's algorithm on YouTube: https://www.youtube.com/watch?v=8sUMBMpZNzk.

<p align="center"><img src="images/harrison.gif"></p> <p align="center"><img src="images/ultima.png"></p> <p align="center"><img src="images/swords.png"></p>

How to build

This is a console application that depends only on the standard library. Get .NET Core for Windows, Linux or macOS and run

dotnet run --configuration Release TextureSynthesis.csproj