Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Semi-Procedural Textures Using Point Process Texture Basis Functions


This is the page of our EGSR 2020 CGF track paper:

P. Guehl, R. Allègre, J.-M. Dischler, B. Benes, E. Galin. Semi-Procedural Textures Using Point Process Texture Basis Functions. Computer Graphics Forum (EGSR 2020 special issue), 39(4), 2020.

Table of contents

  1. Paper and citation
  2. Supplemental materials
  3. Code and binaries
  4. Data

Paper and citation

You can grab the paper here (low resolution version available here). The paper appears in the EGSR 2020 special issue of Computer Graphics Forum. Citation is available below in BibTeX format.

@article {10.1111:cgf.14061,
    journal = {Computer Graphics Forum},
    title = {{Semi-Procedural Textures Using Point Process Texture Basis Functions}},
    author = {Guehl, Pascal and Allègre, Remi and Dischler, Jean-Michel and Benes, Bedrich and Galin, Eric},
    year = {2020},
    publisher = {The Eurographics Association and John Wiley & Sons Ltd.},
    ISSN = {1467-8659},
    DOI = {10.1111/cgf.14061}


This work is supported by the HDWorlds project funded by the French National Research Agency (project ID: ANR-16-CE33-0001).

Supplemental materials

  • Supplemental #1: Available here. This supplemental material provides semi-procedural texture synthesis results using our method and comparisons to state-of-the-art texture synthesis methods.
  • Supplemental #2: Available here. This supplemental material provides additional results on: PPTBF parameters estimation, comparisons to noise by example (structure only), material synthesis results, and synthesis results with structure transitions.
  • Supplemental #3: Available here. This supplemental material contains the database of binary structures used for the paper in full quality. Note that for reasons of terms of use, we do not provide all corresponding texture exemplars. The folder Structures contains manually segmented binary structures. The folder Structures_with_PPTBF contains manually segmented binary structures with estimated PPTBF parameters, that can be used for procedural structure synthesis.

  • Supplemental #4: Available here. This supplemental material contains PPTBF implementation details and description of practical choices.

Code and binaries

IMPORTANT: Our submission Semi-Procedural Textures Using Point Process Texture Basis Functions has been awarded the Replicability Stamp, which is visible on the replicability stamp website and on the publisher's website (CGF, Computer Graphics Forum). We have tagged a version Replicability Stamp associated with this stamp.

Target machines

Tested graphics cards:

  • NVIDIA: GeForce GTX 1060, GeForce GTX 1080, RTX 2070 and Quadro P5000.


  • OpenGL (4.6, at least >= 4.5, compute shaders), glad, glfw, glm, ImGui, CMake, C++, [Python to come]

PPTBF: Point Process Texture Basis Functions

The PPTBF_Structures_Src directory contains code required to produce procedural binary structures from files of PPTBF parameters, and a real-time viewer to be able to design and edit PPTBF parameters interactively (works under Windows and Linux).

Target Operating Systems:

  • Windows 10
  • Linux (tested version: Ubuntu 18.04 LTS)

Note: GPU shader code is not optimized, due to back and forth between CPU and GPU versions during development. Cleaning and documentation to come.

Check this file to get a description of the PPTBF file format.


Windows binaries are available here. We provide tools for experimenting with the PPTBF model:

  • A real-time PPTBF viewer/designer [GPU-accelerated]
  • REPLICABILITY : A PPTBF synthesizer from a PPTBF parameter file [GPU-accelerated] (for procedural PPTBF and binary structures synthesis). We provide a script (launch_pptbf_results.bat) that replicates all binary images from supplemental #2 (Supplemental2/Page1.html webpage), from which our figure 11 in our aticle is an extract.
  • A PPTBF database generator [GPU-accelerated] (spanning space of parameters) [soon available...]


For replicability of our results, go to the dedicated directory Replicability to get all information about the process.

Semi-Procedural Texture Synthesis

We provide CPU code (not GPU-accelerated) for our semi-procedural texture synthesis method, available in the Semiproc_synthesis_Src directory. Note that this code is a preliminary version that does not exactly reproduce the results from the paper. Code to reproduce the synthesis results from the paper will be made available later.

Target Operating Systems

  • Windows 10
  • Linux [NOT yet. Work in progress...]

Note that for reasons of intellectual property, GPU implementation cannot be distributed. The GPU implementation of Parallel controllable texture synthesis [Lefebvre and Hoppe 2005], on which we rely, is protected by a patent.

Check this file to get a description of the semi-procedural texture file format.


If you would like to get binaries for our semi-procedural texture synthesis method, please send an email to igg-semiproctex [at] icube [dot] unistra [dot] fr with object "[semiproctex] Binaries".

These binaries include a real-time/interactive semi-procedural texture synthesizer and designer on GPU. Trade-off between real-time/interactive texture synthesis design to longer high-quality results depending on user options (e.g.: "smart" initialization to initialize our optimization-based algorithm to keep the fine grain of input images).

Yes, you can edit structures on-the-fly and navigate (translate, rotate, even zoom in a prototype version), depending on selected options! :)


NOTE: It seems there is a bug after drag'n'dropping parameter files in the synthesizer window: the texture is synthesized but the GUI values are not updated correctly (todo: BUG to fix).


  • The PPTBF parameters estimated from our database of manually segmented structures are available following this link. Note that this is an updated version that improves the parameter values provided with the Supplemental materials.

  • Our database of semi-procedural texture synthesis parameter files used for the supplementals will be available here soon.

Although parameter estimation from structure examples is not a contribution of our paper, we also plan to distribute the datatabase of PPTBF images that we use in the paper for this estimation, or a software to generate this database.