POV-Ray : Newsgroups : povray.binaries.images : Outline is missed in blob object : Re: Outline is missed in blob object Server Time
15 Nov 2024 16:14:00 EST (-0500)
  Re: Outline is missed in blob object  
From: Nikumaru
Date: 14 Jun 2003 13:33:48
Message: <3eeb5c7c@news.povray.org>
Hi,

 I tried to avoid the phenomenon by multiplying some coefficient ("F" in
the source code). And I changed S_Body which is the strength of one
sphere in the blob object in order to make joint lines as expected.
 Then the phenomenon happend in spite of the sphere's radius was enough
large. And I found the radius of blob object's outline was not as
expected.
 So I did a simple experiment as follows.

 I added yellow circles with the radii of expected outlines and red
circles with the radii of spheres in the blob objects. And I changed
camera to orthographic camera. (The abstract of the code is attached on
this bottom.)
 And I varied the coefficient "F" and the strength "S_Body", and
rendered them as listed below.

  F  S_Body Radius Filename
 0.1  1.0    33.625...  F01B1.jpg
 1.0  1.0   336.249...  F1B1.jpg
10.0  1.0  3362.493...  F10B1.jpg
 0.1  2.0    30.233...  F01B2.jpg
 1.0  2.0   302.332...  F1B2.jpg
10.0  2.0  3023.321...  F10B2.jpg
 0.1  5.0    27.951...  F01B5.jpg
 1.0  5.0   279.508...  F1B5.jpg
10.0  5.0  2795.085... F10B5.jpg

 According to the rendered images, the phenomenon is also related to
strength?

 I checked if the formula in the macro for calculating sphere's radius
was right by making a graph using the Excel.
 Then the formula seemed correct. (The graph in case of F=1.0 and
S_Body=2.0 is attached.)

 Is this experiment helpful for investigation?

Nikumaru

/***** abstract of the source code *****/

#local F = 0.1; // 1.0; // 10.0;

#macro CalcRadius( Radius, Strength, BlendVal )
    Radius/sqrt(1.0-sqrt(BlendVal/Strength))
#end

#local R_Body = 250*F;
#local R_Leg = 50*F;
#local Ratio_LegDist = 1.1;
#local A_Leg = 30; // degrees
#local LatitudeLeg = -90; //-70; // degrees

#local S_Body = 1.0; // 2.0; //5.0;
#local S_Leg  = 1.0;
#local Blend  = 0.2;
#local R_BodyBaseSphere = CalcRadius(R_Body, S_Body, Blend);
#local R_LegBaseSphere = CalcRadius(R_Leg, S_Leg, Blend);
#debug concat("Body Radius = ", str(R_BodyBaseSphere, 0, 3), "\n")
#debug concat("Leg Radius = ", str(R_LegBaseSphere, 0, 3), "\n")
#debug concat("Factor = ", str(F, 0, 5), "\n")

#local T_TestYellow = texture{ pigment{ color rgb < 1.0, 1.0, 0.0 > }
finish{ ambient 1.0 } }
#local T_TestRed    = texture{ pigment{ color rgb < 1.0, 0.0, 0.0 > }
finish{ ambient 1.0 } }

#local O_TestBodyRadius = torus{ R_Body, 2*F texture{ T_TestYellow } }
#local O_TestLegRadius  = torus{ R_Leg,  2*F texture{ T_TestYellow } }
#local O_TestBodySphereRadius = torus{ R_BodyBaseSphere, 2*F texture{
T_TestRed } }
#local O_TestLegSphereRadius  = torus{ R_LegBaseSphere,  2*F texture{
T_TestRed } }

#local S_Body =
union{
    union{
        object{ O_TestBodyRadius }
        object{ O_TestBodySphereRadius }
        rotate -90*x
    }
    union{
        object{ O_TestLegRadius }
        object{ O_TestLegSphereRadius }
        translate -Ratio_LegDist*R_Body*z rotate  A_Leg*y rotate
LatitudeLeg*x
    }
    union{
        object{ O_TestLegRadius }
        object{ O_TestLegSphereRadius }
        translate -Ratio_LegDist*R_Body*z rotate -A_Leg*y rotate
LatitudeLeg*x
    }
    blob{
        sphere{ 0, R_BodyBaseSphere, 1.0 } // body
        sphere{ -Ratio_LegDist*R_Body*z, R_LegBaseSphere, 1.0 rotate
A_Leg*y rotate LatitudeLeg*x }
        sphere{ -Ratio_LegDist*R_Body*z, R_LegBaseSphere, 1.0
rotate -A_Leg*y rotate LatitudeLeg*x }
        threshold Blend
        sturm on
    }
}
#include "Metals.inc"
#local T_Body =
    texture{
        pigment{ color rgb 0.6 }
        #if( on=Radiosity )
            finish{ ambient 0.0 }
        #end
    }
#local O_Body = object{ S_Body texture{ T_Body } }

/***** end of abstract of the code *****/


Post a reply to this message


Attachments:
Download 'f1b5.jpg' (24 KB) Download 'f01b2.jpg' (24 KB) Download 'f01b5.jpg' (24 KB) Download 'f10b1.jpg' (22 KB) Download 'f10b2.jpg' (24 KB) Download 'f10b5.jpg' (24 KB) Download 'f1b1.jpg' (25 KB) Download 'f1b2.jpg' (24 KB) Download 'f01b1.jpg' (23 KB) Download 'densitygraph.jpg' (46 KB)

Preview of image 'f1b5.jpg'
f1b5.jpg

Preview of image 'f01b2.jpg'
f01b2.jpg

Preview of image 'f01b5.jpg'
f01b5.jpg

Preview of image 'f10b1.jpg'
f10b1.jpg

Preview of image 'f10b2.jpg'
f10b2.jpg

Preview of image 'f10b5.jpg'
f10b5.jpg

Preview of image 'f1b1.jpg'
f1b1.jpg

Preview of image 'f1b2.jpg'
f1b2.jpg

Preview of image 'f01b1.jpg'
f01b1.jpg

Preview of image 'densitygraph.jpg'
densitygraph.jpg


 

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