Rendering files contain all parameters necessary to render a fractal file.
Remark: The end of a rendering file is merely the body of a gradient file.

Rendering file syntax:

RENDERING_FILE_FORMAT
BYTES_PER_COMPONENT
SPACE_COLOR
COLOR_SCALING COLOR_OFFSET NB_TRANSITIONS
COLORING_METHOD
[ITERATION_COUNT | [ADDEND_FUNCTION [STRIPE_DENSITY] INTERPOLATION_METHOD]]
Pos1 Color1 ... PosN ColorN

Text characters can be upper-case or lower-case.
Arguments separators can be tabs, blank spaces, carriage return.

RENDERING_FILE_FORMAT should be R073, which is the format described in this document.
Other format values (of older versions) may still be supported though.

BYTES_PER_COMPONENT specifies the number of bytes per component used for colors. It can be :
 - 1 for RGB8 (8 bits per component)
 - 2 for RGB16 (16 bits per component)

SPACE_COLOR specifies the color of points inside fractal.

COLORING_METHOD can be :
 - ITERATIONCOUNT : the value returned by the iteration count is directly used
 - AVERAGECOLORING : average sum(s) is/are computed using the specified addend function

ITERATION_COUNT is only needed for ITERATIONCOUNT coloring method, and should *not* be specified for AVERAGECOLORING coloring method.
Symmetrically, ADDEND_FUNCTION and INTERPOLATION_METHOD are only needed for AVERAGECOLORING coloring method, and should *not* be specified for ITERATIONCOUNT coloring method.

ITERATION_COUNT can be :
 - DISCRETE for discrete iteration count (simply the number of iterations).
 - CONTINUOUS for continuous iteration count
 - SMOOTH for smooth iteration count

ADDEND_FUNCION can be :
 - TRIANGLEINEQUALITY
 - CURVATURE
 - STRIPE

STRIPE_DENSITY is a positive integer used only for STRIPE addend function. It should not be specified for other addend functions.

INTERPOLATION_METHOD can be :
 - NONE : only 1 average sum is computed and is directly used
 - LINEAR : 2 average sums are computed and interpolated linearly using smooth iteration count to produce one value
 - SPLINE : 4 average sums are computed and interpolated with polynomials using smooth iteration count to produce one value

TRANSFER_FUNCTION specifies the transfer function to apply to the (nearly) final value, in order to map it better to the gradient. It can be :
 - LOG for logarithm (base e)
 - SQUAREROOT for square root
 - CUBEROOT for cube root
 - IDENTITY for identity function (value unchanged)
 - SQUARE for square
 - CUBE for cube
 - EXP for exponential

COLOR_SCALING specifies a (floating point) multiplicand to be applied after transfer function, again to fit better to the gradient.

COLOR_OFFSET specifies a (floating point) addend to be applied after multiplicand, again, to fit better to the gradient. It must be between 0 and 1.

POSi : position of COLORi in gradient (between 0 and 1). First position must be 0, and last position must be 1. Positions must be strictly increasing.
COLORi : colors composing gradient.
Gradient must be made of at least 2 colors.

Colors must be specified as hexadecimal numbers. Red, green, and blue are respectively the 1st, 2nd and 3rd component.
Some RGB8 color examples :
- 0x0 for black
- 0xFF for blue
- 0xFF00 for green
- 0xFF0000 for red
- 0xFFFFFF for white
Some RGB16 color examples :
- 0x0 for black
- 0xFFFF for blue
- 0xFFFF0000 for green
- 0xFFFF00000000 for red
- 0xFFFFFFFFFFFF for white

In order for the gradient not to be discontinuous, the first and last color should be the same, for example 0x0 0xFFFFFF 0x0 for a black and white continuous gradient.

Acceptable floating numbers are for example :
2.567
4.146E-5
8.26e2

