POV-Ray : Newsgroups : povray.general : Need help generating a cylindrical solid : Re: Need help generating a cylindrical solid Server Time
29 Jul 2024 12:29:13 EDT (-0400)
  Re: Need help generating a cylindrical solid  
From: Chaanakya
Date: 5 Sep 2012 16:35:01
Message: <web.5047b74c51bfcea0b62e53d00@news.povray.org>
Christian Froeschlin <chr### [at] chrfrde> wrote:
> Chaanakya wrote:
>
> > No, it's when I use almost the exact same code you gave me.  All I did was
> > declare a new variable N (number of shells) and set it equal to 50.  If I set it
> > to 10, it's perfectly fine.
>
> I tried with 3.6 and 3.7 using I < 50 (and D = 0.02*I) but did not see
> any problem. Please post the exact scene and render settings used.

I think the problem is there only if I do not use antialiasing.  Anyway, here's
the code:

#version 3.6;
#include "colors.inc"

global_settings {
   assumed_gamma 1.0
   ambient_light White
   max_trace_level 256
}

camera {
   location <0,0,4>
   look_at <0,0,0>
}

light_source {
   <100,100,0>
   color White
}

plane {
  y, -10
  pigment { hexagon Green, White, Blue }
}

// box {
//   -0.5, 0.5
//   pigment { checker Red, Blue }
// }

#declare base = difference
{
   cylinder { <-1,0,0>,<1,0,0>,1.00003 }
   cylinder { <-1.00003,0,0>,<1.00003,0,0>,1 }
   // center desired target part on origin
   translate -1.25*z
}

#declare curved = union
{
  #declare I = 1;
  #declare N = 10;
  #declare my_ior = -2.3;
  #declare my_ior_increment = (-1 - -2.3)/(N);
  #while (I < N)
    #declare D = (1/N)*I;
    intersection
    {
      object {base}
      difference
      {
 box {<-D,-D,-0.5>, <D,D,0.5>}
 box {<-D+0.0999,-D+0.0999,-0.6>, <D-0.0999,D-0.0999,0.6>}
      }
      pigment { color <2*D,0,0> }
      // pigment { transmit 1 }
      // finish {
      //  ambient 0
      //  diffuse 0
      //  reflection {
      //    1
      //    fresnel on
      //  }
      //  specular 0
      //  roughness 0.001
      // }
      // interior {
      //  ior my_ior
      // }
      rotate <0,0,90>
      translate <0,0,2>
    }
    #declare I = I + 1;
    #declare my_ior = my_ior + my_ior_increment;
  #end
}

object {curved}

Without antialiasing, this produces random little 'holes'.  However, I think
that with antialiasing, it should be fine.

Thanks again for all your help!

- Chaanakya


Post a reply to this message

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