POV-Ray : Newsgroups : povray.binaries.images : CSG: difference: artefacts Server Time
7 Nov 2024 11:35:19 EST (-0500)
  CSG: difference: artefacts (Message 1 to 3 of 3)  
From: LanuHum
Subject: CSG: difference: artefacts
Date: 17 Mar 2016 14:35:00
Message: <web.56eaf81c50adcc127a3e03fe0@news.povray.org>
ParticleSystem_Sphere_shape.inc:
//numbers spheres = 1000
#declare data_ParticleSystem_Sphere_shape_ob = union{
object {data_Sphere_shape_001_ob scale 0.1 translate
<1.602048,2.176796,0.704082>}
object {data_Sphere_shape_001_ob scale 0.1 translate
<-2.709654,0.306427,-0.592914>}
.....
.....
.....
object {data_Sphere_shape_001_ob scale 0.1 translate
<-2.061681,1.452029,1.206769>}
object {data_Sphere_shape_001_ob scale 0.1 translate
<1.646683,1.532989,-1.656775>}
texture{Default_texture}
}

Povscene .pov:

#version 3.7;

global_settings {
    assumed_gamma 1.000000
    max_trace_level 20
    charset utf8
}
sky_sphere {
    pigment {rgb<0.050, 0.050, 0.050>}
}

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

#declare data_Sphere_shape_ob = sphere { 0,1
}
#declare data_Sphere_shape_001_ob = sphere { 0,1
}
#include "ParticleSystem_Sphere_shape.inc"
difference{
object {data_Sphere_shape_ob
    texture {Default_texture}
    matrix <2.798619, 0.000000, 0.000000,  0.000000, -0.000000, -2.798619,
0.000000, 2.798619, -0.000000,  0.000000, 0.000000, 0.000000>
}

object {data_ParticleSystem_Sphere_shape_ob texture{Default_texture}
}
}

light_source {
    <5.07,5.58,4.28>
    color rgb<1, 1, 1>
    fade_distance 25.0000000000
    fade_power 1
}
camera {
    perspective
    location  <0,0,0>
    look_at  <0,0,-1>
    right <-1.7777777777777777, 0, 0>
    up <0, 1, 0>
    angle  49.134343
    rotate  <-27.098163, 46.688390, -0.903519>
    translate <7.481132, 5.343666, 6.507640>
}

Render result:


Post a reply to this message


Attachments:
Download 'artefacts.jpg' (61 KB)

Preview of image 'artefacts.jpg'
artefacts.jpg


 

From: Anthony D  Baye
Subject: Re: CSG: difference: artefacts
Date: 17 Mar 2016 16:30:00
Message: <web.56eb1044e45cefaffd6b6fe10@news.povray.org>
"LanuHum" <Lan### [at] yandexru> wrote:
> ParticleSystem_Sphere_shape.inc:
> //numbers spheres = 1000
> #declare data_ParticleSystem_Sphere_shape_ob = union{
> object {data_Sphere_shape_001_ob scale 0.1 translate
> <1.602048,2.176796,0.704082>}
> object {data_Sphere_shape_001_ob scale 0.1 translate
> <-2.709654,0.306427,-0.592914>}
> .....
> .....
> .....
> object {data_Sphere_shape_001_ob scale 0.1 translate
> <-2.061681,1.452029,1.206769>}
> object {data_Sphere_shape_001_ob scale 0.1 translate
> <1.646683,1.532989,-1.656775>}
> texture{Default_texture}
> }
>
> Povscene .pov:
>
> #version 3.7;
>
> global_settings {
>     assumed_gamma 1.000000
>     max_trace_level 20
>     charset utf8
> }
> sky_sphere {
>     pigment {rgb<0.050, 0.050, 0.050>}
> }
>
> #declare Default_texture = texture{pigment {rgb 0.8}}
>
> #declare data_Sphere_shape_ob = sphere { 0,1
> }
> #declare data_Sphere_shape_001_ob = sphere { 0,1
> }
> #include "ParticleSystem_Sphere_shape.inc"
> difference{
> object {data_Sphere_shape_ob
>     texture {Default_texture}
>     matrix <2.798619, 0.000000, 0.000000,  0.000000, -0.000000, -2.798619,
> 0.000000, 2.798619, -0.000000,  0.000000, 0.000000, 0.000000>
> }
>
> object {data_ParticleSystem_Sphere_shape_ob texture{Default_texture}
> }
> }
>
> light_source {
>     <5.07,5.58,4.28>
>     color rgb<1, 1, 1>
>     fade_distance 25.0000000000
>     fade_power 1
> }
> camera {
>     perspective
>     location  <0,0,0>
>     look_at  <0,0,-1>
>     right <-1.7777777777777777, 0, 0>
>     up <0, 1, 0>
>     angle  49.134343
>     rotate  <-27.098163, 46.688390, -0.903519>
>     translate <7.481132, 5.343666, 6.507640>
> }
>
> Render result:

looks like a coincident surface of two small spheres in the same place.

If it were me, I'd add each new sphere to a union and test successive ones
against being inside that union.

e.g.

#declare testObj =
union {
    sphere { 0.0, 1.0 }
    }

difference {
    sphere { 0.0 1.0 }
#declare A = 0;
#declare missCount = 0;
#while(A < 1000)
// generate a new point P...
    #if(!inside(testObj, p))
        #declare testObj =
            union {
                testObj
                sphere { 0.0, 0.1 translate p }
                }
        sphere { 0.0, 0.1 p }
        #declare A = A + 1;
        #declare missCount = 0;
    #else
        #declare missCount = missCount + 1;
    #end

    #if(missCount = 100)
        #break
    #end
#end
    }

Guaranteed to give you 1000 small cutouts.

If you want to limit the amount of overlap, you can increase the size of the
spheres you add to the union.

Regards,
A.D.B.


Post a reply to this message

From: LanuHum
Subject: Re: CSG: difference: artefacts
Date: 18 Mar 2016 10:45:01
Message: <web.56ec1301e45cefaf7a3e03fe0@news.povray.org>
"Anthony D. Baye" <Sha### [at] spamnomorehotmailcom> wrote:

>
> looks like a coincident surface of two small spheres in the same place.
>
>
> Regards,
> A.D.B.

Thank you! :))))))
Yes.
It turned out that some coordinates of particles are identical.
I set check. The repeating objects don't register the exporter now.


Post a reply to this message


Attachments:
Download 'empty.jpg' (70 KB)

Preview of image 'empty.jpg'
empty.jpg


 

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