I have made a few more ***** updates to the Complex Functions shader and its associated scene files. These are:-
1) Two new uniform control parameters, PrePower and PostPower
with new scenes using PrePower. PostPower is mainly provided
to maintain symmetry the Pre and Post parameters.
2) Corrections to the E series of scenes.
3) ***** updates to the text files, and a new one outlining the
properties of floating point numbers.
4) Some optimisation/load reduction aimed at NVIDIA GPUs.
5) Reduced the function durations to 15 seconds each so that a
group of 20 functions can execute in 5 minutes.
The new PrePower uniform control parameter is described in the source of the shader. Its main purpose is to enable the generation of rounded rectangles trim regions rather than rectangular or eliptical ones.
There were errors in the series of "E" .scn files. This was due to a bad mass edit and has been corrected in the newly uploaded version.
The modification to the text files are ***** either updating them to agree with the latest sets of scene files or adding a little detail to that already provided. A new text file provides a simple description of floating point arithmetic and how some of its features impact the behaviour of the Complex Functions shader.
Number 6 had previously reported that he had observed some judder when running these scenes using his NVIDIA GPU. I found that when I used my NVIDIA GPU the performance was borderline. At first I thought this a little odd because I have no performance difficulties using when using the much less powerful Intel Integrated Graphics processor in the same laptop. However, at least for this shader, the difference between the
Intel and NVIDIA compilers more than compensates for the weaker Intel hardware.
I have made a few ***** adjustments to the shader to try to improve its performance when run on NVIDIA GPUs. One such change was to change the default for USE_IF_BASED_FUNCTION_SELECTION which had used to avoid some problems I had earlier run into, but which were no longer relevant.
I also made a few ***** tweaks to help performance, mainly to the data panel code including adding a set of #defines that control how much of the data panel is generated. These are
USE_EMU_DATA_PANEL_PART_1
USE_EMU_DATA_PANEL_PART_2
USE_EMU_DATA_PANEL_PART_3
and are described in the shader source. They allow the shader to be configured such as to selectively omit parts of the data panel. As it seems that the performance of the NVIDIA GPU when running the shader is particularly sensitive to the data panel these provide a useful way to improve performance without sacrificing the whole of the data panel functionality.
The function duration specified in every .scn file has been reduced to 15 seconds, this allows a set of 20 functions to execute in 5 minutes. I thought I had already done this but was wrong. I have also added a
explanatory text file regarding the timings of functions and function iterrations.
Because the Complex Functions shader is used in some of my non-experimental tunnels scenes I have replaced it there and also uploaded that set of scenes.
The direct links to the files zip files are
http://www.theemusnest.eu/scenes/Zips/Experiments/Complex%20Functions.zip http://www.theemusnest.eu/scenes/Zips/TheEmusTunnels.zip