POV-Ray : Newsgroups : povray.newusers : Isosurface and image_map : Re: Isosurface and image_map Server Time
6 May 2024 07:43:43 EDT (-0400)
  Re: Isosurface and image_map  
From: Alain
Date: 28 Sep 2014 15:43:37
Message: <542864e9@news.povray.org>

> I require a planar surface that truly has a rough surface. So my idea is to
> implement an isosurface and use the function f_noise3d() as in the documentation
> here: http://www.povray.org/documentation/view/3.6.1/73/#l27
>
> However, I also need to map the rough plane with an image. Whenever I try to use
> image_map with map_type 0 (plane-map), the object disappears completely but with
> map_type 1 (sphere-map), the plane is mapped with a spherical mapping and I can
> still see the object. But I do not want a sphere mapping. Any thoughts on how to
> achieve a plane mapping onto an isosurface?
>
> I have tried adjusting the accuracy and max_gradient as in the documentation
> here: http://www.povray.org/documentation/view/3.6.1/157/. However, this does
> not help.
>
> #include "colors.inc"
> #include "functions.inc"
>
> #declare filename = concat("myfile.png")
>
> isosurface {
>
>   function { x + f_noise3d(0, y, z) }
>   contained_by { box { <-5,-5,-5>, <5,5,5> } }
>   accuracy 0.1 //adjust?
>   max_gradient 1.1 //adjust?
>   open
>    pigment {
>     image_map {
>      png filename
>      map_type 0 //changing to 1 allows me to see object but with spherical
> mapping
>      interpolate 2
>      once
>     }
>
>    }
>   scale 1
>   rotate<0,90,0>
>   translate<0,0,10>
>
> }
>
> light_source { <0, 0, 0> color White}
>
>
>

Your image only cover a 1 by 1 square, and with once, the rest is 
apparently getting a totaly transparent pigment.

Change your object as follow:
isosurface {

  function { z + f_noise3d(x, y, 0) }
// Surface now in it's desired orientation

// use this if you want smaller bumps
// #declare Bump_Size = 10;
// function{z+ f_noise3d(x*Bump_Size, y*Bump_Size, 0)/Bump_Size) }

  contained_by { box { <-5,-5,-1>, <5,5,0> } }
// Tight container = faster rendering

  accuracy 0.1
  max_gradient 1.1 //adjust if needed but should be OK
  open
   pigment {
    image_map {
     png filename
     map_type 0
     interpolate 2
translate <-0.5, -0.5, 0>// center the image
scale 10 // scale it to fit the isosurface
//    once
// no longer needed as the image now cover the whole isosurface
    }

   }
  scale 1
  //rotate<0,90,0>
// As the isosurface is now created parallel to the
// X-Y plane, you don't need to rotate it.

  translate<0,0,10>

}


Post a reply to this message

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