POV-Ray : Newsgroups : povray.binaries.images : Blob: problem or no problem? Server Time
7 Nov 2024 15:35:29 EST (-0500)
  Blob: problem or no problem? (Message 1 to 9 of 9)  
From: LanuHum
Subject: Blob: problem or no problem?
Date: 18 Jul 2015 04:35:00
Message: <web.55aa0ebd5791b767a3e03fe0@news.povray.org>
Hi!
Picture shows results of Blender Internal Render and POV-Ray.
I can achieve smoothing as in Internal or not?

#version 3.7;

global_settings {
}
sky_sphere {
    pigment {rgb<0.050, 0.050, 0.050>}
}

#declare Default_texture = texture{pigment {rgb 0.8}}



#declare data_Mball_ob = blob {
    threshold 0.8
    sphere { <0,0,0>, 1.702, 2 texture {Default_texture} scale
<1.775,1.775,1.775> translate <-0.919648, 0.000000, 0.000000>}
    sphere { <0,0,0>, 1.702, 2 texture {Default_texture} scale
<1.775,1.775,1.775> rotate <-2.504e-06,-0,0> translate <-4.598535, 0.000000,
0.000000>}
}

object {data_Mball_ob}

light_source {
    <1,5.58,7.03>
    color rgb<1, 1, 1>
    fade_distance 25.0000000000
    fade_power 1
}
camera {
    perspective
    location  <1.151930, 5.343666, 8.930576>
    look_at  <-2.207098, 0.000000, 0.000000>
    right <-1.7777777777777777, 0, 0>
    up <0, 1, 0>
    angle  49.134343
}


Post a reply to this message


Attachments:
Download 'blob.jpg' (27 KB)

Preview of image 'blob.jpg'
blob.jpg


 

From: Cousin Ricky
Subject: Re: Blob: problem or no problem?
Date: 18 Jul 2015 15:37:40
Message: <55aaab04@news.povray.org>
On 2015-07-18 04:30 AM (-4), LanuHum wrote:
> Picture shows results of Blender Internal Render and POV-Ray.
> I can achieve smoothing as in Internal or not?


Does Blender use a different blob formula?  I wrote my own blob formula, 
to be implemented as an isosurface, which often gives smoother results 
than POV-Ray's native blob, showing that the formula makes a difference.

However, mine still shows a slight discontinuity.  My brain is too fuzzy 
right now to dive into the calculus, but it seems that what POV-Ray's 
formula and mine have in common is that they both have a discontinuity 
(probably at the 2nd derivative level) where the field of one component 
intersects the surface of another.  The massive Photoshop engine in our 
visual cortex is sensitive to this discontinuity, although you cannot 
see it by looking at a silhouette of the object.

Note:  For all three attachments, the object was translated so that it 
would be centered in my prefab render rig.  This translation is not 
shown in the code excerpts below.

----------[BEGIN CODE EXCERPT: lanuhum-blob1.jpg]----------
blob
{ threshold 0.8
   sphere
   { <0,0,0>, 1.702, 2
     scale <1.775,1.775,1.775>
     translate <-0.919648, 0.000000, 0.000000>
   }
   sphere
   { <0,0,0>, 1.702, 2
     scale <1.775,1.775,1.775>
     rotate <-2.504e-06,-0,0>
     translate <-4.598535, 0.000000, 0.000000>
   }
}
-----------[END CODE EXCERPT: lanuhum-blob1.jpg]-----------

----------[BEGIN CODE EXCERPT: lanuhum-blob3.jpg]----------
#include "functions.inc"
#include "roundedge.inc" // available from the Object Collection

// Copied from LanuHum's blob:
#declare Ctr1 = <-0.919648, 0.000000, 0.000000>;
#declare Ctr2 = <-4.598535, 0.000000, 0.000000>;
#declare Rf = 1.702;
#declare Size = 1.775;
#declare Strength = 2;
#declare Threshold = 0.8;

// Derived values:
#declare Rs = RE_fn_Blob_surface_radius (Rf, Strength / Threshold);
#declare X1 = Ctr1.x;
#declare X2 = Ctr2.x;
#declare Blobbiness = (Rf - Rs) * Size;

#declare Container = box
{ -<2, 1, 1>, <2, 1, 1>
   scale Rs * Size
   translate (Ctr1 + Ctr2) / 2
}
isosurface
{ function
   { 1 - sqrt
     ( RE_fn_Blob2 (f_sphere (x - X1, y, z, Rs * Size), Blobbiness)
     + RE_fn_Blob2 (f_sphere (x - X2, y, z, Rs * Size), Blobbiness)
     )
   }
   contained_by { box { min_extent (Container), max_extent (Container) } }
   max_gradient 1 / Blobbiness
   accuracy 0.0001
}
-----------[END CODE EXCERPT: lanuhum-blob3.jpg]-----------

----------[BEGIN CODE EXCERPT: lanuhum-blob4.jpg]----------
#include "functions.inc"
#include "roundedge.inc" // available from the Object Collection

// Copied from LanuHum's blob:
#declare Ctr1 = <-0.919648, 0.000000, 0.000000>;
#declare Ctr2 = <-4.598535, 0.000000, 0.000000>;
#declare Rf = 1.702;
#declare Size = 1.775;
#declare Strength = 2;
#declare Threshold = 0.8;

// Derived values:
#declare Rs = RE_fn_Blob_surface_radius (Rf, Strength / Threshold);
#declare X1 = Ctr1.x;
#declare X2 = Ctr2.x;
#declare Blobbiness = (Rf - Rs) * Size * 1.2; // 1.2 is a fudge.

#declare Container = box
{ -<2, 1, 1>, <2, 1, 1>
   scale Rs * Size
   translate (Ctr1 + Ctr2) / 2
}
isosurface
{ function
   { 1 - sqrt
     ( RE_fn_Blob2 (f_sphere (x - X1, y, z, Rs * Size), Blobbiness)
     + RE_fn_Blob2 (f_sphere (x - X2, y, z, Rs * Size), Blobbiness)
     )
   }
   contained_by { box { min_extent (Container), max_extent (Container) } }
   max_gradient 1 / Blobbiness
   accuracy 0.0001
}
-----------[END CODE EXCERPT: lanuhum-blob4.jpg]-----------


Post a reply to this message


Attachments:
Download 'lanuhum-blob1.jpg' (24 KB) Download 'lanuhum-blob3.jpg' (25 KB) Download 'lanuhum-blob4.jpg' (26 KB)

Preview of image 'lanuhum-blob1.jpg'
lanuhum-blob1.jpg

Preview of image 'lanuhum-blob3.jpg'
lanuhum-blob3.jpg

Preview of image 'lanuhum-blob4.jpg'
lanuhum-blob4.jpg


 

From: LanuHum
Subject: Re: Blob: problem or no problem?
Date: 18 Jul 2015 16:20:01
Message: <web.55aab4dbf6750e007a3e03fe0@news.povray.org>
Cousin Ricky <ric### [at] yahoocom> wrote:
> On 2015-07-18 04:30 AM (-4), LanuHum wrote:
> > Picture shows results of Blender Internal Render and POV-Ray.
> > I can achieve smoothing as in Internal or not?
>
>
> Does Blender use a different blob formula?  I wrote my own blob formula,
> to be implemented as an isosurface, which often gives smoother results
> than POV-Ray's native blob, showing that the formula makes a difference.
>

Thanks!
I will hope that clipka and Le Forgeron will see it.
:)


Post a reply to this message

From: Le Forgeron
Subject: Re: Blob: problem or no problem?
Date: 19 Jul 2015 06:30:46
Message: <55ab7c56@news.povray.org>
Le 18/07/2015 22:19, LanuHum a écrit :
> Cousin Ricky <ric### [at] yahoocom> wrote:
>> On 2015-07-18 04:30 AM (-4), LanuHum wrote:
>>> Picture shows results of Blender Internal Render and POV-Ray.
>>> I can achieve smoothing as in Internal or not?
>>
>>
>> Does Blender use a different blob formula?  I wrote my own blob formul
a,
>> to be implemented as an isosurface, which often gives smoother results

>> than POV-Ray's native blob, showing that the formula makes a differenc
e.
>>
> 
> Thanks!
> I will hope that clipka and Le Forgeron will see it.
> :)

Hi :-)

understanding blob can be complex.

> http://www.shipbrook.net/jeff/raytrace/blobs.html

b1.png is your original povray version

b2.png is the same, with visualisation of the influence of the components
.

Notice how the mark/shadow is at the boundary of the influence. That is
normal, (double that! It's due to the computation of the normal) and if
you want to get ride of it, you need to adjust the components.

The page above gives the formula to know the radius on the picture:

a = sqrt(1-sqrt(0.8/2))*1.702 = 1.0319

The distance between the blob is 3.678887, so the unscaled component, to
not influence each normal, should have a radius of less than 2.0726/2,
that is 1.0363

With a radius of 1.0363 and an apparent radius of 1.0319, the strength
(same page for formula) is going to be

s = 10816.6446 (or even 11141.445983 with more precision)

That's a bit strong to have a smooth transition when connecting the two
spheres with a cylinder. (b3.png and b4.png)

The spheres do not need to not intersect, the intersection must just be
not visible. So we can reduce the strengh with a bigger radius (yet
smaller than the initial radius).

A radius of 1.4 need a more reasonable strength of 3.83512 , yet it's
still too much (b5.png , with a cylinder in b6.png)

A radius of 1.2 has a strength of 11.7850 , some of which can be used in
a cylinder of 1.2 radius connecting the two spheres (b7.png, b8.png and
b805.png)


#declare Ssph = 10.7850 - clock;
#declare Scyl = 1+clock;

#declare data_Mball_ob = blob {
    threshold 0.8
    sphere { <0,0,0>, 1.2, Ssph texture {Default_texture} scale
<1.775,1.775,1.775> translate <-0.919648, 0.000000, 0.000000>}
    sphere { <0,0,0>, 1.2, Ssph texture {Default_texture} scale
<1.775,1.775,1.775> rotate <-2.504e-06,-0,0> translate <-4.598535, 0.0000
00,
0.000000>}
    cylinder { <-0.5181, 0.000000, 0.000000>, <-2.5907,0,0>, 1.2, Scyl
texture {Default_texture} scale <1.775,1.775,1.775> }
}



Playing with a weaker strength is the way to a smaller transition, this
can be done with adjusting the radius (bigger than 1.2) and recomputing
the total strength to share between the spheres and the cylinder.


Post a reply to this message


Attachments:
Download 'b1.png' (65 KB) Download 'b2.png' (165 KB) Download 'b3.png' (67 KB) Download 'b4.png' (71 KB) Download 'b5.png' (68 KB) Download 'b6.png' (64 KB) Download 'b7.png' (123 KB) Download 'b8.png' (68 KB) Download 'b805.png' (64 KB)

Preview of image 'b1.png'
b1.png

Preview of image 'b2.png'
b2.png

Preview of image 'b3.png'
b3.png

Preview of image 'b4.png'
b4.png

Preview of image 'b5.png'
b5.png

Preview of image 'b6.png'
b6.png

Preview of image 'b7.png'
b7.png

Preview of image 'b8.png'
b8.png

Preview of image 'b805.png'
b805.png


 

From: Stephen
Subject: Re: Blob: problem or no problem?
Date: 19 Jul 2015 06:45:51
Message: <55ab7fdf$1@news.povray.org>
On 7/19/2015 11:30 AM, Le_Forgeron wrote:
> understanding blob can be complex.

It is no wonder I have left blobs for later. :)

That was very informative. Thank you.

-- 

Regards
     Stephen


Post a reply to this message

From: LanuHum
Subject: Re: Blob: problem or no problem?
Date: 19 Jul 2015 08:15:01
Message: <web.55ab931bf6750e007a3e03fe0@news.povray.org>
Le_Forgeron <jgr### [at] freefr> wrote:

> Hi :-)

> Playing with a weaker strength is the way to a smaller transition, this
> can be done with adjusting the radius (bigger than 1.2) and recomputing
> the total strength to share between the spheres and the cylinder.

Hi :-)
Very good!
Thank you!


Post a reply to this message

From: scott
Subject: Re: Blob: problem or no problem?
Date: 20 Jul 2015 04:53:39
Message: <55acb713$1@news.povray.org>
> However, mine still shows a slight discontinuity.  My brain is too fuzzy
> right now to dive into the calculus, but it seems that what POV-Ray's
> formula and mine have in common is that they both have a discontinuity
> (probably at the 2nd derivative level) where the field of one component
> intersects the surface of another.  The massive Photoshop engine in our
> visual cortex is sensitive to this discontinuity, although you cannot
> see it by looking at a silhouette of the object.

Yes, if you have a reflective finish at all then it will show up any 
discontinuities at the 2nd derivative level very obviously. For example 
if you make a simple rounded box with cylinders and spheres there is a 
step change in the rate of change of normal direction (2nd derivative of 
position) at the join between the flat faces and the cylinders. It won't 
be so visible with a diffuse finish, but any specular or reflective 
finish will show up a definite "edge" that your eye will easily pick up 
as a "join" or "crease".

I don't remember for sure, but even 3rd level discontinuities might be 
noticeable on reflective surfaces too. You better ask someone who 
designs car body panels :-)


Post a reply to this message

From: Cousin Ricky
Subject: Re: Blob: problem or no problem?
Date: 23 Jul 2015 17:04:43
Message: <55b156eb@news.povray.org>
On 2015-07-18 04:30 AM (-4), LanuHum wrote:
> Picture shows results of Blender Internal Render and POV-Ray.
> I can achieve smoothing as in Internal or not?

For these renders, the brilliance was set to zero.  They verify that the 
light source is at a sufficiently steep angle to illuminate the entire 
blob, and confirm that the dark streak in the previous renders is not a 
shadow, but a simultaneous contrast effect produced by our brains.  (The 
eyedropper tool of an image editing program also confirms this, but is a 
bit clumsier to carry out.)

For the isosurface runs, the accuracy was changed to 0.00001 in order to 
reduce the isosurface artifacts.


Post a reply to this message


Attachments:
Download 'lanuhum-blob-flat1.jpg' (23 KB) Download 'lanuhum-blob-flat3.jpg' (24 KB) Download 'lanuhum-blob-flat4.jpg' (25 KB)

Preview of image 'lanuhum-blob-flat1.jpg'
lanuhum-blob-flat1.jpg

Preview of image 'lanuhum-blob-flat3.jpg'
lanuhum-blob-flat3.jpg

Preview of image 'lanuhum-blob-flat4.jpg'
lanuhum-blob-flat4.jpg


 

From: LanuHum
Subject: Re: Blob: problem or no problem?
Date: 15 Nov 2015 05:20:01
Message: <web.56485c46f6750e007a3e03fe0@news.povray.org>
Prompt somebody how to display blob in the OpenGL window?


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.