POV-Ray : Newsgroups : povray.binaries.images : Liquid Oils : Re: Liquid Oils Server Time
7 Nov 2024 11:31:40 EST (-0500)
  Re: Liquid Oils  
From: Nekar Xenos
Date: 30 Dec 2015 14:25:03
Message: <web.56842f5fe6d2dc962dc16e600@news.povray.org>
Sven Littkowski <jam### [at] yahoocom> wrote:
> Hi,
>
> first of all, the attached image was NOT created with POV-Ray.
>
> But I am posting here to find out, if you all think, POV-Ray could
> create such images that look like various colorful oils (some even with
> "things" in them) as seen in this image. I like that image quite a lot,
> and wonder if POV-Ray could create such art. Maybe even random-generated.

I don't have a lot of time available on my pc. You can try playing around with
this:

// Begin Code
//
// PoVRay 3.7 Scene File " ... .pov"
// author:  ...
// date:    ...
//--------------------------------------------------------------------------
#version 3.7;
global_settings{ assumed_gamma 1.0 }
#default{ finish{ ambient 0.1 diffuse 0.9 }}
//--------------------------------------------------------------------------

//--------------------------------------------------------------------------
// camera ------------------------------------------------------------------
camera {perspective angle 75               // front view
                            location  <0.0 , 1.0 ,-3.0>
                            right     x*image_width/image_height
                            look_at   <0.0 , 1.0 , 0.0>}

// sun ----------------------------------------------------------------------
light_source{< 3000,3000,-3000> color rgb 1}
// sky ----------------------------------------------------------------------
sky_sphere { pigment { gradient <0,1,0>
                       color_map { [0.00 rgb <0.6,0.7,1.0>]
                                   [0.35 rgb <0.1,0.0,0.8>]
                                   [0.65 rgb <0.1,0.0,0.8>]
                                   [1.00 rgb <0.6,0.7,1.0>]
                                 }
                       scale 2
                     } // end of pigment
           } //end of skysphere
// ground -------------------------------------------------------------------
plane{ <0,1,0>, 0
       texture{ pigment{ checker color rgb<1,1,1>*1.2 color
rgb<0.25,0.15,0.1>*0}
              //normal { bumps 0.75 scale 0.025}
                finish { phong 0.1}
              } // end of texture
     } // end of plane
//---------------------------------------------------------------------------
//---------------------------- objects in scene ----------------------------
//---------------------------------------------------------------------------

#declare Shape= // ==>> Insert your shape here ==>>
sphere{0,1 translate y}


#declare Pig=<0,1,1>;
#declare Pig1=<1,0,1>;
#declare Pig2=<1,1,0>;


#macro Pigm(Col1, Col2, Col3)  // ==>> Insert your main pigment here ==>>
    bozo  // pattern modifier
  // (---turbulence warp---)
  // turbulates similar to 'turbulence'
  scale .3
  warp {
    turbulence 1     // amount of turbulence
    //octaves 2          // optional turbulence modifiers

  }

      color_map {
                [0 color rgb Col1]
                [0.3 color rgb Col2]
                [0.5 color rgb Col1]
                [.7 color rgb Col3]
                [1 color rgb Col1]
              }
#end



#declare Pigmt=pigment {
      Pigm(Pig1,Pig,Pig2)
    }


#declare OuterMat= // ==>> Insert your Outer Material here (at least one
material should have transparency) ==>>
material{texture{pigment{rgbt 1}//Pigmt transmit 1}
                 finish{}//specular .1 reflection{0,.1 metallic}}
                 }
       /* interior{ior 1.3
                media {
                      // (---general values---)

                      scattering {1, rgb 1 }
                      //emission .5
                      method 3               // adaptive sampling
                      density { Pigm(Pig*Pig1,Pig,Pig*Pig2) }
                      }
                }  */
        }

#declare Pigmt1=pigment {
      Pigm(Pig1,Pig1*Pig2,Pig1*Pig)
    }

#declare InnerMat1=  // ==>> Insert your Inner Material here (at least one
material should have transparency) ==>>
material{texture{pigment{Pigmt1 filter .5 transmit .5}
                 finish{specular .1 metallic reflection{0,1 metallic}}
                 }
        interior{ior 1.5
                media {
                      // (---general values---)
                      /*intervals 10           // number of intervals used for
sampling [10]
                      samples 1,1            // minimum and maximum number of
samples taken per interval [1,1]
                      confidence 0.9         // statistic parameter
higher->better quality [0.9]
                      variance 1.0/128       // statistic parameter
lower->better quality [1.0/128]
                      ratio 0.9              // distribution between lit and
unlit areas [0.9]
                      */
                      scattering {1, rgb 2 }

                      method 3               // adaptive sampling
                      density { Pigm(Pig1,Pig1*Pig2,Pig1*Pig) }
                      }
                }
        }

#declare Pigmt2=pigment {
      Pigm(Pig2*Pig,Pig2*Pig1,Pig2)
    }


#declare InnerMat2=  // ==>> Insert your Inner Material here (at least one
material should have transparency) ==>>
material{texture{pigment{Pigmt2 filter .5 transmit .5}
                 finish{specular .1 phong 1 metallic reflection{0,1 metallic}}
                 }
        interior{ior 1.5
                media {
                      // (---general values---)
                      /*intervals 10           // number of intervals used for
sampling [10]
                      samples 1,1            // minimum and maximum number of
samples taken per interval [1,1]
                      confidence 0.9         // statistic parameter
higher->better quality [0.9]
                      variance 1.0/128       // statistic parameter
lower->better quality [1.0/128]
                      ratio 0.9              // distribution between lit and
unlit areas [0.9]
                      */
                      scattering {1, rgb 2 }

                      method 3               // adaptive sampling
                      density { Pigm(Pig2*Pig,Pig2*Pig1,Pig2) }
                      }
                }
        }


// end of custom declares

/////////////////////////////////////////////////////////////////



#declare fn_Pigm=function {pigment{Pigm(<1,1,1>,<.5,.5,.5>,<0,0,0>)}}

#declare Threshold1=0.4; // changes the area in the texture where the inner
material starts in the main pigment
#declare Threshold2=0.6; // changes the area in the texture where the inner
material starts in the main pigment

#declare Threshold1a=0.1; // changes the area in the texture where the inner
material starts in the main pigment
#declare Threshold2b=0.9; // changes the area in the texture where the inner
material starts in the main pigment


#declare IsoShape1=
isosurface {
  function{fn_Pigm(x/2, y/2, z/2).gray}

  threshold Threshold1
  contained_by { box {min_extent(Shape),max_extent(Shape) } }
  accuracy 0.003
  max_gradient 5 // <<== Check max Gradient in messages after a test render <<==
***

} // end of isosurface ------------------------------

#declare IsoShape1a=
isosurface {
  function{fn_Pigm(x/2, y/2, z/2).gray}

  threshold Threshold1a
  contained_by { box {min_extent(Shape),max_extent(Shape) } }
  accuracy 0.003
  max_gradient 5 // <<== Check max Gradient in messages after a test render <<==
***

} // end of isosurface ------------------------------


#declare IsoShape2=
isosurface {
  function{fn_Pigm(x/2, y/2, z/2).gray}

  threshold Threshold2
  contained_by { box {min_extent(Shape),max_extent(Shape) } }
  accuracy 0.003
  max_gradient 5 // <<== Check max Gradient in messages after a test render <<==
***

} // end of isosurface ------------------------------


#declare IsoShape2b=
isosurface {
  function{fn_Pigm(x/2, y/2, z/2).gray}

  threshold Threshold2
  contained_by { box {min_extent(Shape),max_extent(Shape) } }
  accuracy 0.003
  max_gradient 5 // <<== Check max Gradient in messages after a test render <<==
***

} // end of isosurface ------------------------------


#declare Shape1= intersection{
                object{Shape}
                difference{
                            object{IsoShape1}
                            object{IsoShape1a}
                            }
                            }


#declare Shape2=intersection{
                object{Shape}
                difference{
                            object{IsoShape2b}
                            object{IsoShape2}
                            }
                            }

union{

    object{Shape1
                material{InnerMat1}
                hollow
                }



    object{Shape2
                material{InnerMat2}
                hollow
                }
   /*
    difference{object{Shape}

                object{Shape1}
                object{Shape2}


                material{OuterMat}
                hollow
                }
             */
    }
/////////////////////////////////////////////////////////////
// End Code


Post a reply to this message

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