POV-Ray : Newsgroups : povray.general : Burn mark on an isosurface : Re: Burn mark on an isosurface Server Time
2 Jun 2024 13:18:40 EDT (-0400)
  Re: Burn mark on an isosurface  
From: Thies Heidecke
Date: 10 Sep 2004 16:12:45
Message: <41420abd$1@news.povray.org>
"=Bob=" <robertUNDERSCOREdobbinsATmailDOTtdsDOTnet> schrieb im Newsbeitrag
news:4141cc92$1@news.povray.org...
> I would like to make it look like there's a slight burn mark
> on an isosurface object. How would you go about making
> it look like that?

Hi,
i made a small scene with a sphere-iso which has a
(very simple) symbol dented into it. Is that what
you had in mind ?
In general i would try to think of a function which
has positive values where i later want my bumps to
appear and everywhere else zero (or close to zero).
Then you have to do a coordinate transformation
so that your dents appear in the right place with
the right orientation and scaling.
In the example i used a kind of 3d-gaussian-bell-
falloff-function and added four differently placed
copies of it to the rest of the isofunction.
If you have a more specific shape in mind, tell me.

> =Bob Clueless=
Thies





global_settings {assumed_gamma 1.0}

camera {
  location  <-1.0, 1.5, -3.0>
  direction 1.5*z
  right     x*image_width/image_height
  look_at   <0.0, 0.0,  0.0>
}

light_source {0 color rgb 1 translate 30*<-1,1,-1>}

#declare tex1 =   texture {
    pigment {
      radial
      frequency 8
      color_map {
        [0.00 color rgb <1.0,0.4,0.2> ]
        [0.33 color rgb <0.2,0.4,1.0> ]
        [0.66 color rgb <0.4,1.0,0.2> ]
        [1.00 color rgb <1.0,0.4,0.2> ]
      }
    }
    finish{
      specular 0.4
    }
  }

#declare fn_mark = function(x,y,z) {
  exp(-(pow(x,2)+pow(y,2)+pow(z,2)))
}
isosurface {
  function {
    x*x+y*y+z*z-1*1 +
    0.2*fn_mark(30*(x+1/4),4*y,30*(z+sqrt(1-1/4*1/4)))+ // Left
    0.2*fn_mark(30*(x-1/4),4*y,30*(z+sqrt(1-1/4*1/4)))+ // Right
    0.2*fn_mark(4*x,30*(y+1/4),30*(z+sqrt(1-1/4*1/4)))+ // Bottom
    0.2*fn_mark(4*x,30*(y-1/4),30*(z+sqrt(1-1/4*1/4)))  // Top
  }

  contained_by { sphere{0,1.05}}
  accuracy 0.01
  max_gradient 7
  //evaluate 2, 1.2, 0.95

  texture { tex1 }
}


Post a reply to this message

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