Logo by Pauldelbrot - Contribute your own Logo!

END OF AN ERA, FRACTALFORUMS.COM IS CONTINUED ON FRACTALFORUMS.ORG

it was a great time but no longer maintainable by c.Kleinhuis contact him for any data retrieval,
thanks and see you perhaps in 10 years again

this forum will stay online for reference
News: Check out the originating "3d Mandelbulb" thread here
 
*
Welcome, Guest. Please login or register. November 13, 2018, 08:12:42 PM


Login with username, password and session length


The All New FractalForums is now in Public Beta Testing! Visit FractalForums.org and check it out!


Pages: 1 ... 4 5 [6] 7 8   Go Down
  Print  
Share this topic on DiggShare this topic on FacebookShare this topic on GoogleShare this topic on RedditShare this topic on StumbleUponShare this topic on Twitter
Author Topic: Rendering 3D fractals without distance estimators  (Read 12299 times)
0 Members and 1 Guest are viewing this topic.
M Benesi
Fractal Schemer
****
Posts: 1075



WWW
« 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
Fractal Molossus
**
Posts: 681



syntopiadk
WWW
« 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
Conqueror
*******
Posts: 104



WWW
« 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.jpg

Please let me know if you can see what I mean?

-Rich
Logged

Syntopia
Fractal Molossus
**
Posts: 681



syntopiadk
WWW
« 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):
<a href="http://www.youtube.com/v/dw7UOjS2dlQ&rel=1&fs=1&hd=1" target="_blank">http://www.youtube.com/v/dw7UOjS2dlQ&rel=1&fs=1&hd=1</a>

The latest (experimental) release is here:
http://www.hvidtfeldts.net/blog/media/Fragmentarium%20-%20Windows%20-%20Build%2019-11-2012.zip

Logged
Kali
Fractal Supremo
*****
Posts: 1138


« 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

|</\|_|
░░░░░░░

http://fractkali.deviantart.com/
M Benesi
Fractal Schemer
****
Posts: 1075



WWW
« 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
Administrator
Fractal Senior
*******
Posts: 7044


formerly known as 'Trifox'


WWW
« 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:

 thanks sign thank you post swing A peacock thank you post swing thanks sign
« Last Edit: November 20, 2012, 06:04:25 AM by cKleinhuis » Logged

---

divide and conquer - iterate and rule - chaos is No random!
richardrosenman
Conqueror
*******
Posts: 104



WWW
« 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! wink

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. smiley

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:

Code:
// 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
Fractal Supremo
*****
Posts: 1138


« Reply #83 on: November 20, 2012, 08:29:09 AM »

@Chris: thank you post swing

dont talk do ....

hitting butt hurt  but I do fractals, formulas, and scripts  cheesy

Tested the updated toy with latest rotjulia version (this one has folding and sphere inversion):



It really seems to work great on large renders  A Beer Cup A Beer Cup A Beer Cup
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.


* RotJulia.frag (7.19 KB - downloaded 137 times.)
Logged

|</\|_|
░░░░░░░

http://fractkali.deviantart.com/
richardrosenman
Conqueror
*******
Posts: 104



WWW
« Reply #84 on: November 20, 2012, 05:29:51 PM »

Wow, Kali! Amazing!

-Rich
Logged

M Benesi
Fractal Schemer
****
Posts: 1075



WWW
« 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  smiley

  Add (after the orbitTrap.w=... in your color function):
orbitTrap*= orbitMult;

Logged

Syntopia
Fractal Molossus
**
Posts: 681



syntopiadk
WWW
« 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!

Quote
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_difference

Quote
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

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
Fractal Schemer
****
Posts: 1075



WWW
« Reply #87 on: November 20, 2012, 10:22:55 PM »

:grin:  Maybe 1 less for the Min. 
Logged

cKleinhuis
Administrator
Fractal Senior
*******
Posts: 7044


formerly known as 'Trifox'


WWW
« Reply #88 on: November 20, 2012, 11:52:07 PM »

@Chris: thank you post swing

hitting butt hurt  but I do fractals, formulas, and scripts  cheesy
 


<joke>
hitting butt  hitting butt  hitting butt    evil fiery is not enough, do transparent gif smiles as well !!! afro
</joke>

just joking, stick to the fractals, formulas, and scripts, i wanna see global illuminated movies next years compo!!!!!!!!!!!!!

but i love this smiley, so let me post it another time:
hitting butt

although i hate violence ... but it is just a clap on the arse ... 4 times cheesy
« Last Edit: November 20, 2012, 11:59:27 PM by cKleinhuis » Logged

---

divide and conquer - iterate and rule - chaos is No random!
richardrosenman
Conqueror
*******
Posts: 104



WWW
« 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

Pages: 1 ... 4 5 [6] 7 8   Go Down
  Print  
 
Jump to:  

Related Topics
Subject Started by Replies Views Last post
Distance Estimators Comparison 3D Fractal Generation David Makin 0 1412 Last post October 24, 2009, 10:02:58 PM
by David Makin
Dual numbers for creating distance estimators (new) Theories & Research Syntopia 2 1095 Last post December 14, 2011, 08:19:02 PM
by eiffie
Mandelbrot Set Distance Estimator Rendering Problem UltraFractal aleph0 5 1238 Last post April 30, 2014, 01:08:45 AM
by aleph0
Wooscripter noisy distance estimators 3D Fractal Generation dom767 5 1236 Last post February 14, 2015, 03:47:34 PM
by dom767
Error estimation of distance estimators (Mandelbulb improvement found!) (new) Theories & Research mermelada 6 466 Last post July 28, 2017, 09:52:19 AM
by mclarekin

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2015, Simple Machines

Valid XHTML 1.0! Valid CSS! Dilber MC Theme by HarzeM
Page created in 0.185 seconds with 27 queries. (Pretty URLs adds 0.011s, 2q)