A system for editing and generating procedural textures comprising at least one microprocessor, a memory and a list of instructions enabling the modules to execute the operation or operations specifically provided for the module in question, and making it possible to edit textures in procedural format in the form of ordered descriptions of the calculations to be performed and the parameters influencing the process of these calculations to obtain the result image, from graph data of which each node applies one operation on one or several input images to produce one or several output images and, from the edited procedural data, to generate textures in matrix format, wherein said system comprises: - an editing tool adapted to provide a user interface for creating or modifying textures in procedural format and comprising a device for optimising the rendering of the textures to be generated; - a rendering engine adapted to generate matrix textures from the graph data in optimized procedural format coming from an optimisation device, and comprising a module MO for running the list of parameters of the graph to be processed, a module M1 for executing the filters, a module M2 for evaluating the graph parameters and a filter module, including the data to be executed for each of the filters; characterized in that: the rendering optimiser is adapted for generating an edit graph in the form of a list, the running of which is trivial for the rendering engine, wherein this list is ordered so as to minimise the memory consumption during the generation of the result images, wherein the optimiser's memory comprises the following regions: - a region D containing all the graph information after its manipulation by the user; - the nodes and edges of the graph; - the parameters of each node; - the user functions used for calculating the value of certain node parameters from the values of other parameters; - a region S designed to receive the description of the graph transformed into an ordered list of annotated nodes; and in that the optimiser further comprises the following modules: - a graph linearization module; - a module for optimising user functions; - a module for suppressing non-connected or inactive subgraphs; - a module for identifying the sub-regions to be calculated for each node; - a module for monitoring the effects of the graph parameters; - a module for evaluating the precision with which each filter can be calculated; - a module for identifying and reducing filter sequences. - an editing tool adapted to provide a user interface for creating or modifying textures in procedural format and comprising a device for optimising the rendering of the textures to be generated; - a rendering engine adapted to generate matrix textures from the graph data in optimized procedural format coming from an optimisation device, and comprising a module MO for running the list of parameters of the graph to be processed, a module M1 for executing the filters, a module M2 for evaluating the graph parameters and a filter module, including the data to be executed for each of the filters; the rendering optimiser is adapted for generating an edit graph in the form of a list, the running of which is trivial for the rendering engine, wherein this list is ordered so as to minimise the memory consumption during the generation of the result images, wherein the optimiser's memory comprises the following regions: - a region D containing all the graph information after its manipulation by the user; - the nodes and edges of the graph; - the parameters of each node; - the user functions used for calculating the value of certain node parameters from the values of other parameters; - a region S designed to receive the description of the graph transformed into an ordered list of annotated nodes; - a region D containing all the graph information after its manipulation by the user; - the nodes and edges of the graph; - the parameters of each node; - the user functions used for calculating the value of certain node parameters from the values of other parameters; - a region S designed to receive the description of the graph transformed into an ordered list of annotated nodes; - a graph linearization module; - a module for optimising user functions; - a module for suppressing non-connected or inactive subgraphs; - a module for identifying the sub-regions to be calculated for each node; - a module for monitoring the effects of the graph parameters; - a module for evaluating the precision with which each filter can be calculated; - a module for identifying and reducing filter sequences.