1. Application Basics
1.1. Menu Bar
1.2. Document Editing
1.3. Build
2. Filters
2.1. Input Filters
2.1.1. Primitive Filter
2.1.2. Turbulence Filter
2.1.3. Multi-fractal Filter
2.1.4. Polynomial Filter
2.1.5. Product Filter
2.2. Output Filters
2.2.1. Output Texture Filter
2.3. Filters
2.3.1. Sin Filter
2.3.2. Normal Map Filter
2.3.3. Color Spline Filter
2.3.4. Range Scale Filter
2.3.5. Clamp Filter
2.3.6. Mod Filter
2.3.7. Decomposition Filter
2.3.8. Composition Filter
2.3.9. Mask Filter
2.3.10. Combination Filter
3. Samples
ProcTexCreator is an application to create procedural textures in a friendly manner. Texture creation works as a multi-block stage where each block contains a pre-built effect that can be combined with other effects. The user interface is composed by:
The main menu allows the user to manage files and build the texture defined in the current file as well as checking this help. This bar is composed by three menus:
The system stores the textures as documents that specify the way they are built. Each procedural texture is created by combining different blocks (filters) that will define the process that builds the texture. Available filters are shown on the left - Fig. 1 (2) -, and they are added and moved using drag-and-drop operations. A block can be removed by selecting and pressing the "Del" key. Filter properties can also be edited upon selection - Fig. 1 (4) -.
These filters can be connected left clicking on an output connector - Fig. 2 (2) - and dragging the connection to an input connector - Fig. 2 (1) - of another filter.
There are three kinds of inputs/outputs:
To create a valid texture, the user needs to define a valid graph that models the creation process of this texture. A valid graph is a graph where there is at least one output filter, and these filters are connected to some input filters - directly or through other intermediate filters -. An output filter is a filter that doesn't have output connectors, and an input filter is a filter that doesn't have input connectors.
Once the graph is finished, the texture can be created pressing the Build button - Fig. 1 (5) -. The way the generation is performed can be configured by the user using the Build Setup button. This button opens the Build Setup dialog - Fig. 3 -.
This dialog allows for the configuration the initial seed and the image dimensions. The initial seed can be chosen as random, and therefore will always be different, or can be a number the user selects - Fig. 3 (1) -.
In this dialog the user can also specify the texture size - Fig. 3 (2) -.
When setup is finished, pressing the Build button will create the resulting texture. A progress bar indicates the status of the texture construction. When this finishes, a dialog shows the results - Fig. 4 -.
The resulting texture can be then saved by pressing the save button - Fig. 4 (1) -. The user can also toggle between the different texture results using the top right combo box - see Fig. 4 (2) -.
Filters are processes that operate over a texture.
There are three kinds of filters:
Inputs filters are filters that don't have input connectors. These filters create textures procedurally, and the result is used as input for other filters.
The primitive filter creates a gray texture (only one value per pixel) evaluating a random function for each pixel:
This filter has several properties that can be changed to obtain different results:
Fig. 6 - Example of a turbulence filter result.
The turbulence filter creates a gray texture -only one value per pixel- evaluating a summation -the same function doubling the frequency and amplitude- for each pixel:
This filter has several properties that can be changed to obtain different results:
Fig. 7 - Example of a multi-fractal filter result.
The multi-fractal filter creates a gray texture -only one value per pixel- evaluating a product -the same function doubling the frequency and amplitude- for each pixel:
This filter has several properties that can be changed to obtain different results:
The polynomial filter creates a gray texture -only one value per pixel- evaluating a summation -of different functions- for each pixel:
The user can add/delete terms to the summation using the Add/Delete buttons. Each term has its own properties:
The product filter creates a gray texture -only one value per pixel- evaluating a product -of different functions- for each pixel:
The user can add/delete terms to the summation using the Add/Delete buttons. Each term has its own properties:
The result can be scaled modifying the scale factor property.
These filters are used to create outputs taht can be viewed in the result dialog, and require input. They do not perform changes on the input texture.
This filter has an input connector -gray or color texture-. The texture connected to this filter will be viewed in the result dialog.
These kinds of filters have both input and output connectors. These filters take one or more textures as input and, using these, generate one or more output textures.
Fig. 8 - Example of a sin filter result with a turbulence filter as input.
This filter operates over a gray texture -one channel- and uses its content to displace a sin function:
It has several properties that can be changed to obtain different results:
Fig. 9 - Normal map creation from a gray texture.
This filter takes as input one gray texture -one channel- and generates its normal map -color texture-.
It has several properties that can be changed to obtain different results:
This filter takes a gray texture as input and generates a color texture as output. This filter uses a color spline that maps grey values to colors. The user may define the mapping through a widget - Fig. 10 -.
The user adds/removes a set of points and assigns them a certain color. By changing the point position and color, different results can be obtained.
This filter takes as input a texture -gray or color- and it scales the range of values to a new one. The user can define the range of values -min and max- of the input image, or can tell to the
filter that it uses the max and min values from the image. The user also can define the range of values of the output image. The value of each pixel is calculated using this function:
This filter clamps the pixel values to a defined range.
If the pixel value is greater than the maximum value of the range, the final pixel value will be the maximum value of the range, and if the pixel value
is less than the minimum value of the range, the pixel value will be the minimum value of the range.
This filter makes a mod operation over the pixel values.
The mod operator gives as a result the modulus. For example, if the pixel has a value of 1.3, executing the mod filter with a value of 0.9, the final pixel value will be 0.4.
Fig 12 - Decomposition filter.
This filter takes as input a color texture - 4 channels - and generates four gray textures as output - Fig 12 (R) Red channel, (G) Green channel, (B) Blue channel, (A) Alpha channel -.
Fig 13 - Composition filter.
This filter takes as input four gray textures - Fig 13 (R) Red channel, (G) Green channel, (B) Blue channel, (A) Alpha channel - and generates one color texture as output.
Fig 14 - Mask filter.
This filter has three inputs: the first is a gray texture that represents a mask - Fig. 14 (1) -. The other inputs are the textures to combine - Fig. 14 (2) (3) -.
The final result is a weighted sum of each component where the weights are used as follows:
Fig 15 - Combination filter.
This filter combines two input textures - Fig. 15 (1) (2) - using a function selected by the user. The final texture - Fig. 15 (3) - is created using this function:
Where op is the operation selected by the user - Sum, Sub, Mult or Div - and scale1 and scale2 are the scale factors applied to the input values.
Sample textures are located in folder $(Instalation_Folder)/Samples/. You can load these textures and modify some filter properties to view different results. We provided the following samples: