Thanks, Richard.
1 - Is it limited to 8 bits/channel? It supports PNG and those support 16 bits/channel color which is SO useful for color correction and post effects in Photoshop. 32 bits/channe; is even better. If not, perhaps a future feature?
Internally the working buffer resolution can be set using the '#Buffer' command. The default buffers are using 32 bit floats, but you could do 16 bit fixed, by changing the buffer line to '"Buffer RGBA16' (for most raytracers this line is set in '3D.frag').
As of now, it is not possible to save the internal buffers - I don't think the Qt PNG libraries support 16-bit, and besides I need floats for HDR output. I plan to add support for .HDR (RGBE) output in a coming version, though.
2 - Is the progressive renderer only limited to 2000 subframes? Why place this restriction? Even at 2000, at a moderate resolution of 4000x3000 you see noise.
Probably is - but I can increase it for next release - just didn't figure more would be useful.
3 - Perhaps a silly question (and admittedly I am still figuring out this software), is it possible to add more than one light?
No, you will have to change the raytracer code, which should be fairly easy.
4 - When switching to other renderers such as the Soft-Raytracer, I can't use things like the floor.
Yes, that is quite messy. Some raytracers support different things especially wrt shadows, reflection, and floors.
5 - I too, wished for a transparent alpha but read the other post and see this is difficult. It just means you're stuck with the simple Fragmentarium backgrounds or you key it out.
You can code your own background - I can't remember if this was part of the last release, or only in Git, but otherwise you can do like:
#define providesBackground
#include "DE-Raytracer.frag"
vec3 backgroundColor(vec3 dir) {
return dir;
}
float DE(vec3 z) {
float d = (length(z-vec3(1.0,0.0,0.0))-1.0); // A sphere
d = max(d,- (length(z.xy-vec2(1.,0.0))-0.4)); // minus a tube
d = max(d,- (length(z.yz-vec2(0.,0.0))-0.4)); // minus a tube
d = max(d,- (length(z.xz-vec2(1.,0.0))-0.4)); // minus a tube
d = min(d, length(z.yz-vec2(1.,1.0))-0.3); // plus a tube
return d;
}
And add panoramic images, or generate background from code.
6 - Ok, this is just neat - possible OBJ support? Might come in handy to bring in custom GEO for mixing in with fractals.
Sorry, but that would extremely difficult to implement on GPU :-) (The CPU can't call the DE functions - though I have thought of embedding a small C-compiler, and do some preprocessor magic)