POV-Ray : Newsgroups : povray.binaries.images : Improving etched pyramids : Re: Improving etched pyramids Server Time
2 Aug 2024 20:15:25 EDT (-0400)
  Re: Improving etched pyramids  
From: kmcpeak
Date: 16 Feb 2013 13:40:01
Message: <web.511fd1767ee0027913f4465a0@news.povray.org>
"kmcpeak" <kmc### [at] ethzch> wrote:
> "Kenneth" <kdw### [at] gmailcom> wrote:
> > Sure; glad to help. Here are the lights and the texture. This assumes that your
> > own square SEM model is lying flat horizontally, with the top surface exactly at
> > y=0 (and centered on the origin; but that's not critical.) Your own model might
> > not be the same size as mine (which is 1X1), so adjust the light distances and
> > the gradient y pigment scale if needed. BTW, the overall brightness will depend
> > on what assumed_gamma you use in your scene. (I used 2.2 for this test.)
> >
> > // The lights...
> > light_source {
> >   <0, 0, 0>
> >   color rgb .7
> >   area_light
> >   <12, 0, 0> <0, 0, 12> // lights spread out across this distance (x * z)
> >   4, 4                // total number of lights in grid (4x*4z = 16 lights)
> >   adaptive 0          // 0,1,2,3...
> >   jitter              // adds random softening of light
> >   circular            // make the shape of the light circular
> >   orient              // orient light
> >   translate <-10, 7, 10>
> > }
> >
> > light_source {
> >   <0, 0, 0>
> >   color rgb .9
> >   area_light
> >   <12, 0, 0> <0, 0, 12> // lights spread out across this distance (x * z)
> >   4, 4                // total number of lights in grid (4x*4z = 16 lights)
> >   adaptive 0          // 0,1,2,3...
> >   jitter              // adds random softening of light
> >   circular            // make the shape of the light circular
> >   orient              // orient light
> >   translate <10, 20, 10>
> > }
> >
> > // The texture...
> > texture{
> >    pigment{
> >       gradient y
> >       pigment_map{
> >            [.01 // For the top surface only
> >            average
> >            pigment_map{
> >               [1 rgb .16]
> >               [1.5 bumps scale .003]
> >                       }
> >            ]
> >            [.01 rgb .9] // immediately under the surface
> >            [1 rgb .2]// for the indents
> >                  }
> >            scale .039*<1,-1,1> // Adjust the multiplier so
> > // the bottom of your SEM indents don't start showing the repeating
> > // gradient y pattern. The -1 for y just 'flips' the gradient y, as
> > // I specified the colors going 'up', not down.
> >          }
> >    finish{ambient 0 diffuse 1} // You might want to add a
> > // little bit of ambient.
> >        }
> Kenneth,
>
> Thanks again! I implemented your code with my mesh but I am having trouble
> getting the pigment_map to work. I used a plane y and a difference statement to
> determine that the top surface is at y=-1.3077 and the bottom of the pyramids is
> around y=-2.9 (not all of them are the same depth). But the following
> pigment_map does not look like yours:
>
> #declare Tex_Silicon =
> texture{
>    pigment{
>       gradient y
>       pigment_map{
>            [1.4 // For the top surface only
>            average
>            pigment_map{
>               [1 rgb 0.16]
>               [1.5 bumps scale .003]
>                       }
>            ]
>            [1.4 rgb 0.9] // immediately under the surface
>            [2.9 rgb 0.2]// for the indents
>                  }
>            scale 1*<1,-1,1> // Adjust the multiplier so
> // the bottom of your SEM indents don't start showing the repeating
> // gradient y pattern. The -1 for y just 'flips' the gradient y, as
> // I specified the colors going 'up', not down.
>          }
>    finish{ambient 0 diffuse 1} // You might want to add a little bit of ambient.
>        }
>
> I zipped up my POV file so you (and others if they like) can work with the real
> thing.
>
> Your help (as are all the other posts on this thread) most appreciated!
>
> Regards,
> Kevin McPeak


I used a transform to bring the top of the silicon surface to y = 0. This helped
me figure out the pigment_map. Attached is my latest effort. I think I need to
move the lights a bit but overall this is way way better than where I started.
Thanks so much to all of you for your help!

Latest code:

#declare Tex_Silicon =
texture{
   pigment{
      gradient y
      pigment_map{
           [0.01 // For the top surface only
           average
           pigment_map{
              [1 rgb 0.16]
              [1.5 bumps scale .003]
                      }
           ]
           [0.01 rgb 0.6] // immediately under the surface
           [0.8 rgb 0.2]// for the indents
                 }
           scale 1.65*<1,-1,1> // Adjust the multiplier so
// the bottom of your SEM indents don't start showing the repeating
// gradient y pattern. The -1 for y just 'flips' the gradient y, as
// I specified the colors going 'up', not down.
         }
   finish{ambient 0.2 diffuse 1} // You might want to add a little bit of
ambient.
       }


Post a reply to this message


Attachments:
Download 'fig1_sem-pov_comparison.png' (304 KB)

Preview of image 'fig1_sem-pov_comparison.png'
fig1_sem-pov_comparison.png


 

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