M Benesi
|
|
« Reply #75 on: November 18, 2012, 11:19:13 PM » |
|
Thanks Rich, there are a few more over in the movies section HERE. When Fragmentarium is fixed, it'll be much easier to make these. Now it's about 30 seconds a frame using CPU in ChaosPro.
|
|
« Last Edit: November 18, 2012, 11:21:36 PM by M Benesi »
|
Logged
|
|
|
|
Syntopia
|
|
« Reply #76 on: November 18, 2012, 11:26:05 PM » |
|
I've uploaded a new build of Fragmentarium, which should make the brute-raytracer more usable. I have adding a 'padding' option to the high-resolution render dialog: this allows you to set a border around each tile that will be discarded. This makes it possible to avoid the screen-space artifacts. I have also fixed the scale dependency on the lighting (hi-res is no more less contrasty). Notice, that NormalScale, and AOScale must be set to something close to 1.0 now - not a small number. I have also made a quick fix for the animation bar. Now it should be possible to create an animation, where each animation frame will be rendered using the subframes specified in the UI (that is, animation for progressive systems is now posible). You still need to create the animation based on a 'uniform float time' parameter. The (experimental) build is here: http://www.hvidtfeldts.net/Fragmentarium%20-%20Windows%20-%20Build%2018-11-2012.zip
|
|
|
Logged
|
|
|
|
richardrosenman
|
|
« Reply #77 on: November 19, 2012, 02:32:41 AM » |
|
Awesome! Ok, I tried it out and came across a new issue. The first thing I noticed was that of course, the rendered looked completely buggy so I adjusted the NormalScale and AOScale to 1.0 as you suggested. Then I did I tile render. I immediately noticed the tile rendering looked like 2 images overlayed upon one another with a diagonal offset of a few pixels. I cancelled the tile render and zoomed in using the tile zoom option in Fragmentarium but in that case, it looked ok. Not as good as the previous version renders but ok. I then did another bunch of tests to figure out what was wrong. It was only happening during high resolution tile rendering. At one point, I did a high res tile render and during the render, adjusted the NormalScale back down to a low value (say 0.01) and voila! The two overlayed images sharpened out and moved together to form a nicely-rendered one like the previous Fragmentarium did. It's difficult to explain and you should try the above procedure to see what I mean. But basically, a normalScale value of 1.0, as you suggested, results in inferior high-resolution tile renders that look like they've been overlayed upon one another and offset. I have an image that shows this but you will only really see if if you follow my procedure above and adjust the normalScale value while it's rendering to see the real difference. And it IS a big difference. The rendering now looks almost undersampled whereas the previous version looked great. Likewise, if you adjust the normalScale back to a low value you can see it sharpening up and going towards what it should be like. Original Image: http://www.richardrosenman.com/storage/normal_scalebug.jpgPlease let me know if you can see what I mean? -Rich
|
|
|
Logged
|
|
|
|
Syntopia
|
|
« Reply #78 on: November 19, 2012, 09:37:02 PM » |
|
Hi, I've updated the raytracer. I think my results are more reasonable now - the NormalScale should be okay at 1.0, but the AOScale may need to be adjusted from around 0.2 - 10.0 to choose the area you want to sample for ambient occlusion. There is also a new options 'CentralDifferences', which determines whether normals use forward or central differences for derivatives. I've put the 'rotjuliaff.frag' in Kali's folder - try using it when comparing quality. The animation should also work now for progressive rendering. Here is a very simple demo (lousy image quality):
http://www.youtube.com/v/dw7UOjS2dlQ&rel=1&fs=1&hd=1The latest (experimental) release is here: http://www.hvidtfeldts.net/blog/media/Fragmentarium%20-%20Windows%20-%20Build%2019-11-2012.zip
|
|
|
Logged
|
|
|
|
Kali
|
|
« Reply #79 on: November 20, 2012, 01:58:30 AM » |
|
@Christian: We need a smiley for saying "thank you". A big one.
@Syntopia: THANK YOU!
|
|
|
Logged
|
|
|
|
M Benesi
|
|
« Reply #80 on: November 20, 2012, 03:29:08 AM » |
|
Awesome, and thanks!
|
|
« Last Edit: November 20, 2012, 03:32:56 AM by M Benesi »
|
Logged
|
|
|
|
cKleinhuis
|
|
« Reply #81 on: November 20, 2012, 05:55:45 AM » |
|
@Christian: We need a smiley for saying "thank you". A big one.
@Syntopia: THANK YOU!
so, any particular in mind ?! a fractal one ?! will se what i can come up with, please make suggestions of your own as well ... perhaps in the community part of the board, to not hijack this thread... dont talk do .... here we go:
|
|
« Last Edit: November 20, 2012, 06:04:25 AM by cKleinhuis »
|
Logged
|
---
divide and conquer - iterate and rule - chaos is No random!
|
|
|
richardrosenman
|
|
« Reply #82 on: November 20, 2012, 06:46:28 AM » |
|
Very nice, Syntopia! I tried your latest build and the output is just perfect. Thanks! I also did some comparisons to your latest current stable build (the one we were using before all the recent mods with the great output - 0.9.12) and it matches it as well. The only difference was that I had to crank the AOScale to maximum value of 5.0 to match the output of of 0.9.12. Otherwise, the default AOScale seems to be too low. Thank you for doing these improvements. I also did a huge tile render with yesterday's release testing out the padding and it worked beautifully. I'm assuming that the amount of padding is directly related to size of the AOScale, right? Oh, and could you briefly explain (in layman's terms) what the CentralDifferences does? The results are awesome. On another topic altogether, tonight I also tried to add the coloring you described for Benesi to Kali's example. I followed your instructions but for some reason, I don't get any color variations. This is what I've done: // Output generated from file: C:/Fractales/Fragmentarium Windows Binary v0.9.12b/Examples/rotajulia3d.frag // Created: lun 1. oct 01:36:29 2012 #info Mandelbulb without Distance Estimator
#define providesColor #define providesInside #include "Brute-Raytracer.frag"
#include "MathUtils.frag" #include "Complex.frag"
#group Mandelbulb
// Number of fractal iterations. uniform int Iterations; slider[0,9,100]
// Number of color iterations. uniform int ColorIterations; slider[0,3,100] uniform int ColorIterationsMin; slider[0,1,100]
// Mandelbulb exponent (8 is standard) uniform float Power; slider[0,8,16]
// Bailout radius uniform float Bailout; slider[0,5,3000] uniform float Scale; slider[0,1,2]
// Alternate is slightly different, but looks more like a Mandelbrot for Power=2 uniform bool AlternateVersion; checkbox[false]
uniform vec3 RotVector; slider[(0,0,0),(0,1,0),(1,1,1)]
uniform float RotAngle; slider[0.00,0,180] uniform bool Julia; checkbox[false] uniform vec3 JuliaC; slider[(-2,-2,-2),(0,0,0),(2,2,2)]
// Compute the distance from `pos` to the Mandelbox.
mat3 rot;
vec3 cycle(vec3 c, float s) { return vec3(0.5)+0.5*vec3(cos(s*Cycles+c.x),cos(s*Cycles+c.y),cos(s*Cycles+c.z)); }
vec3 color(vec3 p) { orbitTrap = vec4(10000.0); inside(p);
orbitTrap.w = sqrt(orbitTrap.w); vec3 orbitColor; if (CycleColors) { orbitColor = cycle(X.xyz,orbitTrap.x)*X.w*orbitTrap.x + cycle(Y.xyz,orbitTrap.y)*Y.w*orbitTrap.y + cycle(Z.xyz,orbitTrap.z)*Z.w*orbitTrap.z + cycle(R.xyz,orbitTrap.w)*R.w*orbitTrap.w; } else { orbitColor = X.xyz*X.w*orbitTrap.x + Y.xyz*Y.w*orbitTrap.y + Z.xyz*Z.w*orbitTrap.z + R.xyz*R.w*orbitTrap.w; } //vec3 color = mix(BaseColor, 3.0*orbitColor, OrbitStrength); return orbitColor; }
bool inside(vec3 pos) { vec3 f; vec3 z=pos, p,m=vec3(1,1,1); vec2 z1,z2; float r; float dr=1.0; int i=0; r=length(z); //z*=rot; rot=rotationMatrix3(normalize(RotVector),RotAngle); vec3 J=JuliaC; while (i<Iterations) { if (i>ColorIterationsMin && i<ColorIterations) { orbitTrap=min(orbitTrap,vec4(z.x*z.x,z.y*z.y,z.z*z.z,dot(z,z)));
} z=vec3(cMul(z.xy,z.xy),z.z); z*=rot; z*=Scale; z+=J; r=length(z); i++; if ( r>Bailout) { return false; } } return true; }
I have also noticed that when you increase the OrbitStrength even a smidge past 0.0, everything blows out and you need to set the light intensity and specularity to extremely small values such as 0.00010. Is this normal? Thanks, Rich
|
|
« Last Edit: November 20, 2012, 06:51:29 AM by richardrosenman »
|
Logged
|
|
|
|
Kali
|
|
« Reply #83 on: November 20, 2012, 08:29:09 AM » |
|
@Chris: dont talk do ....
but I do fractals, formulas, and scripts Tested the updated toy with latest rotjulia version (this one has folding and sphere inversion): It really seems to work great on large renders The only remaining issue is the fog not working, would be nice to have it for a better depth effect. Attached .frag with this and some more presets.
|
|
|
Logged
|
|
|
|
richardrosenman
|
|
« Reply #84 on: November 20, 2012, 05:29:51 PM » |
|
Wow, Kali! Amazing!
-Rich
|
|
|
Logged
|
|
|
|
M Benesi
|
|
« Reply #85 on: November 20, 2012, 07:48:23 PM » |
|
On another topic altogether, tonight I also tried to add the coloring you described for Benesi to Kali's example. I followed your instructions but for some reason, I don't get any color variations. This is what I've done: ....
I have also noticed that when you increase the OrbitStrength even a smidge past 0.0, everything blows out and you need to set the light intensity and specularity to extremely small values such as 0.00010. Is this normal?
It is (for this fractal type) if: ColorIterationsMin>=ColorIterations-1 If you want, this helps a bit in color adjustment (if the orbits aren't quite strong enough): Declare: uniform float orbitMult; slider[0,1,2] //you can make the range vary more if you like... of course Add (after the orbitTrap.w=... in your color function): orbitTrap*= orbitMult;
|
|
|
Logged
|
|
|
|
Syntopia
|
|
« Reply #86 on: November 20, 2012, 09:13:41 PM » |
|
I'm assuming that the amount of padding is directly related to size of the AOScale, right?
Exactly! Oh, and could you briefly explain (in layman's terms) what the CentralDifferences does?
It is just the way you calculate the gradient: either central differences, or forward differences: http://en.wikipedia.org/wiki/Finite_differenceI have also noticed that when you increase the OrbitStrength even a smidge past 0.0, everything blows out and you need to set the light intensity and specularity to extremely small values such as 0.00010. Is this normal?
Thanks, Rich
I just tried your example, and it works perfectly here? I tried OrbitStrength=1, ColorIterationsMin=0, ColorIterations=5. Are you sure you have ColorIterationsMin<ColorIterations?
|
|
« Last Edit: November 20, 2012, 09:19:27 PM by Syntopia »
|
Logged
|
|
|
|
M Benesi
|
|
« Reply #87 on: November 20, 2012, 10:22:55 PM » |
|
:grin: Maybe 1 less for the Min.
|
|
|
Logged
|
|
|
|
cKleinhuis
|
|
« Reply #88 on: November 20, 2012, 11:52:07 PM » |
|
|
|
« Last Edit: November 20, 2012, 11:59:27 PM by cKleinhuis »
|
Logged
|
---
divide and conquer - iterate and rule - chaos is No random!
|
|
|
richardrosenman
|
|
« Reply #89 on: November 21, 2012, 12:19:05 AM » |
|
Syntopia, Benesi & Kali; The coloring is SUPERB! I am rendering away large versions which I'll eventually post. Again, the quality of Fragmentarium is just incredible. The only thing I can contribute in this post is my wishlist for 16/32bit HDR output and a future alternative to the screen-space AO ( http://www.ozone3d.net/tutorials/ambient_occlusion.php?) so that 20-30% of padding doesn't go to waste. Cheers, -Rich
|
|
« Last Edit: November 21, 2012, 12:40:23 AM by richardrosenman »
|
Logged
|
|
|
|
|