POV-Ray : Newsgroups : povray.text.scene-files : nice knots Server Time
31 Oct 2024 08:17:38 EDT (-0400)
  nice knots (Message 1 to 4 of 4)  
From: Norbert Kern
Subject: nice knots
Date: 20 Sep 2019 11:50:01
Message: <web.5d84f504a8ed7c63839d843b0@news.povray.org>
// http://knotilus.math.uwo.ca/gallery/

#version 3.7;

#declare RAD = 4;

global_settings {
        #declare a_g = 2.2;
        assumed_gamma a_g
        max_trace_level 5
        noise_generator 2
        #if(RAD > 0)
                radiosity {
                        pretrace_start 0.08
                        pretrace_end 0.04/RAD
                        count 30*RAD
                        nearest_count min (20, RAD)
                        error_bound 2/RAD
                        low_error_factor 0.5
                        recursion_limit 1
                        gray_threshold 0
                        minimum_reuse 0.015
                        brightness 1
                        adc_bailout 0.005
                        normal on
                        media on
                }
        #end
}

#include "stdinc.inc"

#declare fac = 1;

sky_sphere {
        pigment {color rgb <0.5,0.5,0.5>}
        pigment {
                average
                pigment_map {
                        [1      function {max (min (y, 1), 0)}
                                color_map {
                                        [0      rgb fac*2.35]
                                        [0.96   rgb fac*4.5]
                                        [1      rgb fac*13.5]
                                }
                        ]
                        [1      function {max (min (y, 1), 0)}
                                turbulence 0.2
                                color_map {
                                        [0      rgbt 1]
                                        [0.5    rgbt
<fac*0.385,fac*0.77,fac*1.1,1>]
                                }
                                rotate z*-45
                        ]
                }
        }
        rotate <60,0,0>
}

light_source {
        <0, 300, -500>
        color rgb <1,1,1>
        area_light <80, 0, 0>, <0, 80, 0>, 10, 10 adaptive 0 jitter circular
orient
}

camera {
        location <0, 0, -550>
        look_at <-70, 0, 0>
        angle 64*image_width/image_height*0.7
        right x*16/9
}

// knot material
________________________________________________________________________________

// Norbert Kern  varnish test
http://news.povray.org/povray.binaries.images/message/%3C3d9d5b1b%40news.povray.org%3E/#%3C3d9d5b1b%40news.povray.org%3
E

#macro varnish (colv)

#declare iric = 30;         // determines the color variance (0 = full variance;
60 = all colors)
#declare ranc = 0.3;         // determines the decrease in color (1 = no
decrease; 0 = black at slope 0.5)
#declare RGBc = colv;           // main color
#declare HSLc = CRGB2HSL (RGBc);
#declare col1 = RGBc;
#declare col2 = CHSL2RGB (<HSLc.x-iric*0.5,HSLc.y,HSLc.z>);
#declare col3 = CHSL2RGB (<HSLc.x-iric*1,HSLc.y,HSLc.z>);
#declare col4 = CHSL2RGB (<HSLc.x-iric*1.5,HSLc.y,HSLc.z>);
#declare col5 = CHSL2RGB (<HSLc.x-iric*2,HSLc.y,HSLc.z>);
#declare col6 = CHSL2RGB (<HSLc.x-iric*2.5,HSLc.y,HSLc.z>);
#declare col7 = CHSL2RGB (<HSLc.x-iric*3,HSLc.y,HSLc.z>);
#declare col8 = CHSL2RGB (<HSLc.x-iric*3.5,HSLc.y,HSLc.z>);
#declare col9 = CHSL2RGB (<HSLc.x-iric*4,HSLc.y,HSLc.z>);
#declare col10 = CHSL2RGB (<HSLc.x-iric*4.5,HSLc.y,HSLc.z>);
#declare col11 = CHSL2RGB (<HSLc.x-iric*5,HSLc.y,HSLc.z>);

#declare fMetallic = 0.7;
#declare fNoise = 0.5;
#declare fGlitter = 2;

material {
 texture {
  pigment {
   aoi
   color_map {
    [0      rgb col1]
    [0.05   rgb col2*(1-0.1*(1-ranc))]
    [0.1    rgb col3*(1-0.2*(1-ranc))]
    [0.15   rgb col4*(1-0.3*(1-ranc))]
    [0.2    rgb col5*(1-0.4*(1-ranc))]
    [0.25   rgb col6*(1-0.5*(1-ranc))]
    [0.3    rgb col7*(1-0.6*(1-ranc))]
    [0.35   rgb col8*(1-0.7*(1-ranc))]
    [0.4    rgb col9*(1-0.8*(1-ranc))]
    [0.45   rgb col10*(1-0.9*(1-ranc))]
    [0.5    rgb col11*ranc]
    [0.55   rgb col10*(1-0.9*(1-ranc))]
    [0.6    rgb col9*(1-0.8*(1-ranc))]
    [0.65   rgb col8*(1-0.7*(1-ranc))]
    [0.7    rgb col7*(1-0.6*(1-ranc))]
    [0.75   rgb col6*(1-0.5*(1-ranc))]
    [0.8    rgb col5*(1-0.4*(1-ranc))]
    [0.85   rgb col4*(1-0.3*(1-ranc))]
    [0.9    rgb col3*(1-0.2*(1-ranc))]
    [0.95   rgb col2*(1-0.1*(1-ranc))]
    [1      rgb col1]
   }
  }
  finish {
   diffuse (1-fMetallic)*4/3
   specular fMetallic
   roughness 0.1
   metallic 1
  }
  normal {granite fNoise*0.1 scale 0.01}
 }
 texture {
  pigment {color rgbt 1}
  finish {diffuse 0.8 specular fGlitter roughness 0.005}
  normal {granite 1 scale 0.01}
 }
 texture {
  pigment {color rgbt 1}
  finish {
   diffuse 0.8
   reflection {0.08, 1 falloff 5 metallic 0.5}
   conserve_energy
   specular 1
   roughness 0.001
  }
 }
 interior {ior 1.5}
 scale 0.3
}

#end

// knot
________________________________________________________________________________

#include "spline.mcr"

// change this value to increase the z-offset at the crossings
#declare oset = 0.75;

#declare component0 =
create_spline (
        array [25] {
                <77.8557,96.1197, -10 *oset>, <74.1391,112.493, -10 *oset>,
<72.7938,129.558, -3.19175 *oset>,
                <77.528,145.682, 0 *oset>, <83.0397,164.454, 3.71593 *oset>,
<96.2288,180.032, 10 *oset>,
                <113.878,188.47, 10*oset>, <151.96,206.676, 10*oset>,
<196.731,189.867, 3.82119 *oset>,
                <221.758,154.583, 0 *oset>, <247.5,118.291, -3.9304 *oset>,
<247.335,68.7455, -10 *oset>,
                <214.347,41.4865, -10 *oset>, <202.359,31.5802, -10 *oset>,
<187.195,26.6658, -3.76182 *oset>,
                <171.681,25.6033, 0 *oset>, <158.975,24.7331, 3.08099 *oset>,
<146.234,26.431, 10 *oset>,
                <134.132,30.3952, 10*oset>, <119.646,35.1401, 10*oset>,
<106.28,43.0923, 3.38143 *oset>,
                <96.5024,54.792, 0 *oset>, <86.6666,66.5613, -3.40157 *oset>,
<81.2479,81.1754, -10 *oset>,
                <77.8557,96.1197, -10.0001 *oset>
        },
        create_bezier_spline
)

#declare link_object = torus {1, 0.2 scale <3,1,1> varnish (<0.2,0.36,0.85>)}

link_spline (component0, spline_step_size (7) + spline_step_twist (36))

#declare component1 =
create_spline (
        array [49] {
                <77.8557,96.1197, 10*oset>, <87.5618,101.294, 10*oset>,
<98.6654,102.613, 3.18496 *oset>,
                <109.613,103.47, 0 *oset>, <121.876,104.43, -3.56775 *oset>,
<134.347,104.864, -10 *oset>,
                <146.137,101.295, -10 *oset>, <159.492,97.2517, -10 *oset>,
<170.663,88.5039, -3.06995 *oset>,
                <181.108,79.2831, 0 *oset>, <193.76,68.114, 3.71861 *oset>,
<205.722,56.009, 10 *oset>,
                <214.347,41.4865, 10*oset>, <238.035,1.60241, 10*oset>,
<234.113,-48.2384, 3.70213 *oset>,
                <209.153,-87.6545, 0 *oset>, <185.58,-124.878, -3.49624 *oset>,
<145.421,-149.222, -10 *oset>,
                <101.612,-147.258, -10 *oset>, <82.2008,-146.388, -10 *oset>,
<63.6266,-140.09, -3.60792 *oset>,
                <45.0815,-134.379, 0 *oset>, <28.9954,-129.425, 3.12955 *oset>,
<12.5349,-124.761, 10 *oset>,
                <-1.12024,-114.865, 10*oset>, <-11.7523,-107.16, 10*oset>,
<-20.0407,-96.7125, 3.73509 *oset>,
                <-25.6576,-84.8465, 0 *oset>, <-30.2944,-75.0509, -3.08341
*oset>, <-33.0353,-64.4346, -10 *oset>,
                <-33.1842,-53.5955, -10 *oset>, <-33.3522,-41.3692, -10 *oset>,
<-30.2002,-29.2687, -3.52143 *oset>,
                <-23.4307,-19.085, 0 *oset>, <-17.1863,-9.69115, 3.24829 *oset>,
<-8.26351,-2.57213, 10 *oset>,
                <-0.00928933,5.08848, 10*oset>, <7.59886,12.1495, 10*oset>,
<14.6916,19.7368, 3.37262 *oset>,
                <21.6545,27.4336, 0 *oset>, <28.4678,34.965, -3.30016 *oset>,
<35.1728,42.6205, -10 *oset>,
                <40.8841,51.0217, -10 *oset>, <46.4691,59.2372, -10 *oset>,
<51.0539,68.0968, -3.3811 *oset>,
                <56.7782,76.2169, 0 *oset>, <62.4216,84.2223, 3.33329 *oset>,
<69.2054,91.5078, 10 *oset>,
                <77.8557,96.1197, 10.0001 *oset>
        },
        create_bezier_spline
)

#declare link_object = torus {1, 0.2 scale <3,1,1> varnish (<0.2,0.36,0.85>)}

link_spline (component1, spline_step_size (7) + spline_step_twist (40))

#declare component2 =
create_spline (
        array [61] {
                <113.878,188.47, -10 *oset>, <123.807,175.183, -10 *oset>,
<130.504,159.886, -3.55282 *oset>,
                <136.098,144.284, 0 *oset>, <141.089,130.365, 3.16975 *oset>,
<145.251,116.066, 10 *oset>,
                <146.137,101.295, 10*oset>, <146.878,88.9494, 10*oset>,
<145.303,76.6201, 3.43004 *oset>,
                <142.72,64.5309, 0 *oset>, <140.269,53.0542, -3.25623 *oset>,
<136.915,41.7952, -10 *oset>,
                <134.132,30.3952, -10 *oset>, <131.278,18.7043, -10 *oset>,
<128.975,6.7378, -3.4468 *oset>,
                <123.263,-3.87599, 0 *oset>, <117.818,-13.9955, 3.2863 *oset>,
<109.619,-22.2607, 10 *oset>,
                <100.354,-29.0489, 10*oset>, <90.1408,-36.5326, 10*oset>,
<78.7279,-42.1874, 3.45843 *oset>,
                <66.7263,-46.2161, 0 *oset>, <55.4753,-49.9928, -3.24214 *oset>,
<43.8075,-52.3103, -10 *oset>,
                <32.0563,-53.9513, -10 *oset>, <21.2378,-55.4621, -10 *oset>,
<10.3388,-56.4022, -3.33868 *oset>,
                <-0.585665,-56.3405, 0 *oset>, <-11.5049,-56.2788, 3.33705
*oset>, <-22.3871,-55.2168, 10 *oset>,
                <-33.1842,-53.5955, 10*oset>, <-44.9309,-51.8316, 10*oset>,
<-56.5906,-49.4022, 3.24623 *oset>,
                <-67.8059,-45.4799, 0 *oset>, <-79.7419,-41.3056, -3.45484
*oset>, <-91.0541,-35.4782, -10 *oset>,
                <-101.116,-27.816, -10 *oset>, <-110.246,-20.8632, -10 *oset>,
<-118.269,-12.4251, -3.28427 *oset>,
                <-123.382,-2.14349, 0 *oset>, <-128.757,8.6644, 3.45238 *oset>,
<-130.529,20.7531, 10 *oset>,
                <-133.044,32.5378, 10*oset>, <-135.473,43.9159, 10*oset>,
<-138.64,55.1284, 3.25493 *oset>,
                <-140.85,66.5518, 0 *oset>, <-143.179,78.5938, -3.4312 *oset>,
<-144.438,90.858, -10 *oset>,
                <-143.5,103.092, -10 *oset>, <-142.371,117.827, -10 *oset>,
<-138.1,132.067, -3.16766 *oset>,
                <-132.927,145.899, 0 *oset>, <-127.12,161.425, 3.55543 *oset>,
<-120.12,176.586, 10 *oset>,
                <-109.972,189.707, 10*oset>, <-83.5984,223.806, 10*oset>,
<-41.0389,239.9, 3.5218 *oset>,
                <2.22529,239.723, 0 *oset>, <45.5442,239.545, -3.52626 *oset>,
<88.0483,223.035, -10 *oset>,
                <113.878,188.47, -10.0001 *oset>
        },
        create_bezier_spline
)

#declare link_object = torus {1, 0.2 scale <3,1,1> varnish (<0.2,0.36,0.85>)}

link_spline (component2, spline_step_size (7) + spline_step_twist (52))

#declare component3 =
create_spline (
        array [37] {
                <101.612,-147.258, 10*oset>, <109.423,-126.804, 10*oset>,
<110.939,-104.691, 3.68731 *oset>,
                <109.79,-82.8451, 0 *oset>, <108.83,-64.5874, -3.0816 *oset>,
<106.031,-46.4334, -10 *oset>,
                <100.354,-29.0489, -10 *oset>, <94.8526,-12.1985, -10 *oset>,
<86.7181,3.69139, -3.51252 *oset>,
                <75.9835,17.7993, 0 *oset>, <66.1639,30.7046, 3.21313 *oset>,
<54.3096,41.9262, 10 *oset>,
                <40.8841,51.0217, 10*oset>, <28.715,59.2661, 10*oset>,
<15.0796,65.7486, 3.41039 *oset>,
                <0.372704,65.803, 0 *oset>, <-14.3301,65.8575, -3.40945 *oset>,
<-28.0068,59.4791, -10 *oset>,
                <-40.2697,51.3838, -10 *oset>, <-53.8477,42.4203, -10 *oset>,
<-65.9232,31.362, -3.2192 *oset>,
                <-75.9921,18.5817, 0 *oset>, <-86.9542,4.66759, 3.50481 *oset>,
<-95.3659,-11.063, 10 *oset>,
                <-101.116,-27.816, 10*oset>, <-107.038,-45.071, 10*oset>,
<-110.054,-63.147, 3.08659 *oset>,
                <-111.225,-81.3474, 0 *oset>, <-112.62,-103.047, -3.68007
*oset>, <-111.364,-125.037, -10 *oset>,
                <-103.905,-145.481, -10 *oset>, <-88.0939,-188.819, -10 *oset>,
<-47.8599,-218.765, -3.65022 *oset>,
                <-1.87885,-219.232, 0 *oset>, <44.2051,-219.7, 3.65839 *oset>,
<85.1206,-190.445, 10 *oset>,
                <101.612,-147.258, 10.0001 *oset>
        },
        create_bezier_spline
)

#declare link_object = torus {1, 0.2 scale <3,1,1> varnish (<0.2,0.36,0.85>)}

link_spline (component3, spline_step_size (7) + spline_step_twist (44))

#declare component4 =
create_spline (
        array [49] {
                <-1.12024,-114.865, -10 *oset>, <9.66283,-107.308, -10 *oset>,
<18.1424,-96.9663, -3.73474 *oset>,
                <23.9713,-85.1614, 0 *oset>, <28.7834,-75.4156, 3.08329 *oset>,
<31.7111,-64.8173, 10 *oset>,
                <32.0563,-53.9513, 10*oset>, <32.4443,-41.7411, 10*oset>,
<29.5398,-29.5878, 3.52905 *oset>,
                <22.9404,-19.3061, 0 *oset>, <16.877,-9.85952, -3.24243 *oset>,
<8.08978,-2.65665, -10 *oset>,
                <-0.00928933,5.08848, -10 *oset>, <-7.48292,12.2355, -10 *oset>,
<-14.4219,19.9113, -3.3682 *oset>,
                <-21.2794,27.6501, 0 *oset>, <-28.0069,35.2423, 3.3044 *oset>,
<-34.6747,42.9184, 10 *oset>,
                <-40.2697,51.3838, 10*oset>, <-45.699,59.5985, 10*oset>,
<-50.0603,68.4744, 3.38032 *oset>,
                <-55.5535,76.647, 0 *oset>, <-60.9722,84.7087, -3.33446 *oset>,
<-67.5303,92.0918, -10 *oset>,
                <-76.0163,96.8357, -10 *oset>, <-85.5545,102.168, -10 *oset>,
<-96.568,103.648, -3.19502 *oset>,
                <-107.426,104.698, 0 *oset>, <-119.517,105.867, 3.55798 *oset>,
<-131.838,106.561, 10 *oset>,
                <-143.5,103.092, 10*oset>, <-156.508,99.2224, 10*oset>,
<-167.315,90.6167, 3.07085 *oset>,
                <-177.424,81.5946, 0 *oset>, <-189.661,70.6735, -3.71719 *oset>,
<-201.258,58.9055, -10 *oset>,
                <-209.85,44.9193, -10 *oset>, <-233.965,5.65958, -10 *oset>,
<-232.055,-43.7895, -3.70068 *oset>,
                <-208.634,-83.6842, 0 *oset>, <-186.531,-121.335, 3.49251
*oset>, <-147.336,-146.542, 10 *oset>,
                <-103.905,-145.481, 10*oset>, <-84.6316,-145.011, 10*oset>,
<-66.0975,-139.065, 3.5929 *oset>,
                <-47.6141,-133.679, 0 *oset>, <-31.4541,-128.97, -3.14126
*oset>, <-14.9301,-124.544, -10 *oset>,
                <-1.12024,-114.865, -10.0001 *oset>
        },
        create_bezier_spline
)

#declare link_object = torus {1, 0.2 scale <3,1,1> varnish (<0.2,0.36,0.85>)}

link_spline (component4, spline_step_size (7) + spline_step_twist (40))

#declare component5 =
create_spline (
        array [25] {
                <-133.044,32.5378, -10 *oset>, <-118.579,36.8582, -10 *oset>,
<-105.222,44.5443, -3.3711 *oset>,
                <-95.3443,55.9666, 0 *oset>, <-85.3423,67.5333, 3.41371 *oset>,
<-79.6965,82.0083, 10 *oset>,
                <-76.0163,96.8357, 10*oset>, <-71.9702,113.138, 10*oset>,
<-70.2301,130.174, 3.19862 *oset>,
                <-74.6149,146.403, 0 *oset>, <-79.7,165.224, -3.70952 *oset>,
<-92.5119,181.04, -10 *oset>,
                <-109.972,189.707, -10 *oset>, <-147.415,208.292, -10 *oset>,
<-191.983,191.964, -3.82635 *oset>,
                <-216.903,157.06, 0 *oset>, <-242.5,121.209, 3.93028 *oset>,
<-242.384,72.1495, 10 *oset>,
                <-209.85,44.9193, 10*oset>, <-198.416,35.3499, 10*oset>,
<-184.003,30.3445, 3.75867 *oset>,
                <-169.162,28.9381, 0 *oset>, <-157.005,27.7861, -3.07899 *oset>,
<-144.745,29.0433, -10 *oset>,
                <-133.044,32.5378, -10.0001 *oset>
        },
        create_bezier_spline
)

#declare link_object = torus {1, 0.2 scale <3,1,1> varnish (<0.2,0.36,0.85>)}

link_spline (component5, spline_step_size (7) + spline_step_twist (36))

// wall
________________________________________________________________________________

// Jonathan Hunt  pebbles
http://news.povray.org/povray.text.scene-files/message/%3C48d158e3%241%40news.povray.org%3E/#%3C48d158e3%241%40news.pov
ray.org%3E

#macro pebbles (srand)

#declare stogam = 2.2*1.4;
#declare stodiff = 1.1;

#declare stora = seed (srand*4);

#declare PebbleNormalAndFinish =
texture {
 //normal {bumps 0.2 scale 0.005}
 finish {diffuse 0.6 ambient 0 /*specular 0.3 roughness 0.003*/}
}

#declare PebblePatternCount = 6;
#declare PebblePatterns = array [PebblePatternCount]

// A selection of base patterns for the pebbles.

#declare PebblePatterns [0] =
pigment {
 wrinkles
 scale 0.02
 noise_generator 2
}

#declare PebblePatterns [1] =
pigment {
 bozo
 turbulence 2.0
 scale 0.05
 noise_generator 2
}

#declare PebblePatterns [2] =
pigment {
 bozo
 turbulence 4.0
 scale 0.1
 noise_generator 3
}

#declare PebblePatterns [3] =
pigment {
 wrinkles
 turbulence 1.0
 scale 0.05
}

#declare PebblePatterns [4] =
pigment {
 granite
 turbulence 0.2
 scale 0.15
}

#declare PebblePatterns [5] =
pigment {
 granite
 scale 0.6
 turbulence 2
}

#declare PebblecolorCount = 15;
#declare Pebblecolors = array [PebblecolorCount]

// A selection of different color schemes for the pebbles.

#declare Pebblecolors [0] =
color_map {
 [0                              rgb <pow (0.7+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0.7+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0.7+(rand
(stora)-0.5)*0.05,stogam)*stodiff>]
 [0.7+(rand (stora)-0.5)*0.15    rgb <pow (0.8+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0.8+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0.8+(rand
(stora)-0.5)*0.05,stogam)*stodiff>]
 [1                              rgb <1,1,1>]
}
#declare Pebblecolors [1] =
color_map {
 [0                              rgb <pow (0.5+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0.5+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0.5+(rand
(stora)-0.5)*0.05,stogam)*stodiff>]
 [0.3+(rand (stora)-0.5)*0.15    rgb <pow (0.9+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0.9+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0.9+(rand
(stora)-0.5)*0.05,stogam)*stodiff>]
 [0.8+(rand (stora)-0.5)*0.15    rgb <1,1,1>]
 [1                              rgb <1,1,pow (0.5+(rand
(stora)-0.5)*0.05,stogam)*stodiff>]
}
#declare Pebblecolors [2] =
color_map {
 [0                              rgb <pow (0.4+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0.4+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0.6+(rand
(stora)-0.5)*0.05,stogam)*stodiff>]
 [0.2+(rand (stora)-0.5)*0.15    rgb <1,1,1>]
 [0.7+(rand (stora)-0.5)*0.15    rgb <pow (0.9+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0.9+(rand
(stora)-0.5)*0.05,stogam)*stodiff,1>]
 [1                              rgb <pow (0.8+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0.8+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0.4+(rand
(stora)-0.5)*0.05,stogam)*stodiff>]
}
#declare Pebblecolors [3] =
color_map {
 [0                              rgb <pow (0.6+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0.4+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0.4+(rand
(stora)-0.5)*0.05,stogam)*stodiff>]
 [0.4+(rand (stora)-0.5)*0.15    rgb <pow (0.8+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0.7+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0.6+(rand
(stora)-0.5)*0.05,stogam)*stodiff>]
 [0.6+(rand (stora)-0.5)*0.15    rgb <pow (0.8+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0.7+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0.7+(rand
(stora)-0.5)*0.05,stogam)*stodiff>]
 [1                              rgb <1,1,1>]
}
#declare Pebblecolors [4] =
color_map {
 [0                              rgb <pow (0.8+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0.6+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0.4+(rand
(stora)-0.5)*0.05,stogam)*stodiff>]
 [0.3+(rand (stora)-0.5)*0.15    rgb <pow (0.8+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0.7+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0.5+(rand
(stora)-0.5)*0.05,stogam)*stodiff>]
 [0.8+(rand (stora)-0.5)*0.15    rgb <1,pow (0.9+(rand
(stora)-1)*0.10,stogam)*stodiff,pow (0.8+(rand
(stora)-0.5)*0.05,stogam)*stodiff>]
 [1                              rgb <1,1,1>]
}
#declare Pebblecolors [5] =
color_map {
 [0                              rgb <0,0,0>]
 [0.3+(rand (stora)-0.5)*0.15    rgb <pow (0.5+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0.5+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0.6+(rand
(stora)-0.5)*0.05,stogam)*stodiff>]
 [0.7+(rand (stora)-0.5)*0.1     rgb <pow (0.6+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0.6+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0.6+(rand
(stora)-0.5)*0.05,stogam)*stodiff>]
 [0.8+(rand (stora)-0.5)*0.1     rgb <pow (0.9+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0.9+(rand
(stora)-0.5)*0.05,stogam)*stodiff,1>]
 [1                              rgb <1,1,1>]
}
#declare Pebblecolors [6] =
color_map {
 [0                              rgb <pow (0.7+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0.4+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0.4+(rand
(stora)-0.5)*0.05,stogam)*stodiff>]
 [0.3+(rand (stora)-0.5)*0.15    rgb <pow (0.8+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0.8+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0.75+(rand
(stora)-0.5)*0.05,stogam)*stodiff>]
 [0.7+(rand (stora)-0.5)*0.1     rgb <pow (0.9+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0.9+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0.85+(rand
(stora)-0.5)*0.05,stogam)*stodiff>]
 [0.8+(rand (stora)-0.5)*0.1     rgb <pow (0.9+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0.9+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0.9+(rand
(stora)-0.5)*0.05,stogam)*stodiff>]
 [1                              rgb <1,1,1>]
}
#declare Pebblecolors [7] =
color_map {
 [0                              rgb <0,0,0>]
 [0.2+(rand (stora)-0.5)*0.15    rgb <pow (0.7+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0.7+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0.7+(rand
(stora)-0.5)*0.05,stogam)*stodiff>]
 [0.7+(rand (stora)-0.5)*0.1     rgb <pow (0.6+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0.6+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0.6+(rand
(stora)-0.5)*0.05,stogam)*stodiff>]
 [0.8+(rand (stora)-0.5)*0.1     rgb <pow (0.9+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0.9+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0.9+(rand
(stora)-0.5)*0.05,stogam)*stodiff>]
 [1                              rgb <1,1,1>]
}
#declare Pebblecolors [8] =
color_map {
 [0                              rgb <pow (0.5+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0.5+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0.5+(rand
(stora)-0.5)*0.05,stogam)*stodiff>]
 [0.2+(rand (stora)-0.5)*0.1     rgb <pow (0.6+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0.6+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0.6+(rand
(stora)-0.5)*0.05,stogam)*stodiff>]
 [0.4+(rand (stora)-0.5)*0.1     rgb <pow (0.7+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0.7+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0.7+(rand
(stora)-0.5)*0.05,stogam)*stodiff>]
 [0.6+(rand (stora)-0.5)*0.1     rgb <pow (0.8+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0.8+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0.8+(rand
(stora)-0.5)*0.05,stogam)*stodiff>]
 [0.8+(rand (stora)-0.5)*0.1     rgb <pow (0.9+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0.9+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0.9+(rand
(stora)-0.5)*0.05,stogam)*stodiff>]
 [1                              rgb <1,1,1>]
}
#declare Pebblecolors [9] =
color_map {
 [0                              rgb <pow (0.5+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0.5+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0.5+(rand
(stora)-0.5)*0.05,stogam)*stodiff>]
 [0.25+(rand (stora)-0.5)*0.1    rgb <pow (0.7+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0.7+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0.73+(rand
(stora)-0.5)*0.05,stogam)*stodiff>]
 [0.5+(rand (stora)-0.5)*0.1     rgb <pow (0.8+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0.8+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0.8+(rand
(stora)-0.5)*0.05,stogam)*stodiff>]
 [0.75+(rand (stora)-0.5)*0.1    rgb <1,pow (0.97+(rand
(stora)-0.5)*0.06,stogam)*stodiff,pow (0.97+(rand
(stora)-0.5)*0.06,stogam)*stodiff>]
 [1      rgb <1,1,1>]
}
#declare Pebblecolors [10] =
color_map {
 [0                              rgb <pow (0.3+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0.2+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0+(rand (stora))*0.10,stogam)*stodiff>]
 [0.2+(rand (stora)-0.5)*0.15    rgb <pow (0.7+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0.6+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0.5+(rand
(stora)-0.5)*0.05,stogam)*stodiff>]
 [0.7+(rand (stora)-0.5)*0.05    rgb <pow (0.9+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0.8+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0.6+(rand
(stora)-0.5)*0.05,stogam)*stodiff>]
 [0.8+(rand (stora)-0.5)*0.05    rgb <pow (0.9+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0.9+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0.9+(rand
(stora)-0.5)*0.05,stogam)*stodiff>]
 [1      rgb <1,1,1>]
}
#declare Pebblecolors [11] =
color_map {
 [0                              rgb <pow (0.1+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0.1+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0.1+(rand
(stora)-0.5)*0.05,stogam)*stodiff>]
 [0.3+(rand (stora)-0.5)*0.1     rgb <pow (0.6+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0.6+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0.6+(rand
(stora)-0.5)*0.05,stogam)*stodiff>]
 [0.7+(rand (stora)-0.5)*0.1     rgb <pow (0.8+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0.8+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0.8+(rand
(stora)-0.5)*0.05,stogam)*stodiff>]
 [1                              rgb <pow (0.9+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0.9+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0.9+(rand
(stora)-0.5)*0.05,stogam)*stodiff>]
}
#declare Pebblecolors [12] =
color_map {
 [0                              rgb <pow (0.8+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0.8+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0.8+(rand
(stora)-0.5)*0.05,stogam)*stodiff>]
 [1                              rgb <1,1,1>]
}
#declare Pebblecolors [13] =
color_map {
 [0                              rgb <pow (0.7+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0.7+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0.7+(rand
(stora)-0.5)*0.05,stogam)*stodiff>]
 [1                              rgb <pow (0.9+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0.9+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0.9+(rand
(stora)-0.5)*0.05,stogam)*stodiff>]
}
#declare Pebblecolors [14] =
color_map {
 [0                              rgb <pow (0.6+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0.6+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0.6+(rand
(stora)-0.5)*0.05,stogam)*stodiff>]
 [1                              rgb <pow (0.8+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0.8+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0.8+(rand
(stora)-0.5)*0.05,stogam)*stodiff>]
}

#declare DecalcolorCount = 5;
#declare Decalcolors = array [DecalcolorCount]

// A selection of different color schemes for the dirt/speckle/line overlays.

#declare Decalcolors [0] =
color_map {
 [0                              rgb <pow (0.8+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0.8+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0.8+(rand
(stora)-0.5)*0.05,stogam)*stodiff>]
 [0.4+(rand (stora)-0.5)*0.1     rgb <pow (0.95+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0.95+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0.95+(rand
(stora)-0.5)*0.05,stogam)*stodiff>]
 [1                              rgb <1,1,1>]
}
#declare Decalcolors [1] =
color_map {
 [0                              rgbt <pow (0.5+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0.5+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0.5+(rand
(stora)-0.5)*0.05,stogam)*stodiff,0>]
 [0.4+(rand (stora)-0.5)*0.1     rgbt <pow (0.2+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0.2+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0.2+(rand
(stora)-0.5)*0.05,stogam)*stodiff,0.6>]
 [1                              rgbt <0,0,0,0.6>]
}
#declare Decalcolors [2] =
color_map {
 [0.5+(rand (stora)-0.5)*0.1     rgbt <0,0,0,1>]
 [1                              rgbt <0,0,0,0.5>]
}
#declare Decalcolors [3] =
color_map {
 [0                              rgbt 1]
 [1                              rgbt <1,1,1,0.5>]
}
#declare Decalcolors [4] =
color_map {
 [0.5                            rgbt <pow (0.2+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0.2+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0.2+(rand
(stora)-0.5)*0.05,stogam)*stodiff,1>]
 [1                              rgbt <pow (0.2+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0.2+(rand
(stora)-0.5)*0.05,stogam)*stodiff,pow (0.2+(rand
(stora)-0.5)*0.05,stogam)*stodiff,0>]
}

#declare DecalPatternCount = 17;
#declare DecalPatterns = array [DecalPatternCount]

// A selection of different dirt/speckle/line textures which will be overlayed
over the base textures to make them more interesting.

#declare DecalPatterns [0] =
pigment {
 wrinkles
 scale 0.1
 noise_generator 2
 pigment_map {
  [0.75   rgbt 1]
  [0.85   PebblePatterns [0] color_map {Decalcolors [0]}]
 }
}

#declare DecalPatterns [1] =
pigment {
 wrinkles
 scale 0.1
 noise_generator 2
 pigment_map {
  [0.75   rgbt 1]
  [0.85   PebblePatterns [0] color_map {Decalcolors [1]}]
 }
}

#declare DecalPatterns [2] =
pigment {
 marble
 scale 2
 turbulence 0.5
 pigment_map {
  [0.92   rgbt 1]
  [0.96   PebblePatterns [0] color_map {Decalcolors [0]}]
 }
}

#declare DecalPatterns [3] =
pigment {
 marble
 scale 2
 turbulence 4
 pigment_map {
  [0.95   rgbt 1]
  [1      PebblePatterns [0] scale 5 color_map {Decalcolors [2]}]
 }
}

#declare DecalPatterns [4] =
pigment {
 bozo
 scale 0.2
 noise_generator 3
 pigment_map {
  [0.85   rgbt 1]
  [0.9    PebblePatterns [0] color_map {Decalcolors [0]}]
 }
}

#declare DecalPatterns [5] =
pigment {
 bozo
 scale 0.2
 noise_generator 2
 turbulence 1
 pigment_map {
  [0.75   rgbt 1]
  [0.8    PebblePatterns [0] color_map {Decalcolors [1]}]
 }
}

#declare DecalPatterns [6] =
pigment {
 bozo
 scale 0.2
 noise_generator 3
 turbulence 2
 pigment_map {
  [0.85   rgbt 1]
  [0.9    PebblePatterns [0] color_map {Decalcolors [0]}]
 }
}

#declare DecalPatterns [7] =
pigment {
 bozo
 scale 0.2
 noise_generator 2
 turbulence 4
 pigment_map {
  [0.75   rgbt 1]
  [0.8    PebblePatterns [0] color_map {Decalcolors [1]}]
 }
}

#declare DecalPatterns [8] =
pigment {
 marble
 scale 0.1
 turbulence 1
 pigment_map {
  [0.9    rgbt 1]
  [1      PebblePatterns [0] scale 5 color_map {Decalcolors [0]}]
 }
}

#declare DecalPatterns [9] =
pigment {
 marble
 scale 0.1
 turbulence 1
 pigment_map {
  [0.75   rgbt 1]
  [0.8    PebblePatterns [0] scale 5 color_map {Decalcolors [2]}]
 }
}

#declare DecalPatterns [10] =
pigment {
 wrinkles
 scale 0.5
 noise_generator 2
 pigment_map {
  [0.6    rgbt 1]
  [0.7    PebblePatterns [2] color_map {Decalcolors [3]}]
 }
}

#declare DecalPatterns [11] =
pigment {
 wrinkles
 scale 0.5
 noise_generator 2
 pigment_map {
  [0.7    rgbt 1]
  [0.8    PebblePatterns [2] scale 4 color_map {Decalcolors [4]}]
 }
}

#declare DecalPatterns [12] =
pigment {
 crackle
 scale 0.2
 noise_generator 2
 pigment_map {
  [0.5    rgbt 1]
  [0.7    PebblePatterns [2] color_map {Decalcolors [0]}]
 }
}

#declare DecalPatterns [13] =
pigment {
 crackle
 scale 0.1
 noise_generator 2
 pigment_map {
  [0.5    rgbt 1]
  [0.7    PebblePatterns [2] color_map {Decalcolors [1]}]
 }
}

#declare DecalPatterns [14] =
pigment {
 waves
 scale 0.02
 noise_generator 3
 turbulence 2
 pigment_map {
  [0.65   rgbt 1]
  [1      PebblePatterns [2] color_map {Decalcolors [0]}]
 }
}

#declare DecalPatterns [15] =
pigment {
 quilted
 scale 0.5
 noise_generator 3
 turbulence 1
 pigment_map {
  [0.4    rgbt 1]
  [0.6    PebblePatterns [2] color_map {Decalcolors [0]}]
 }
}

#declare DecalPatterns [16] =
pigment {
 quilted
 scale 0.5
 noise_generator 3
 turbulence 1
 pigment_map {
  [0.3    rgbt 1]
  [0.6    PebblePatterns [2] color_map {Decalcolors [1]}]
 }
}

#declare RandPeb = seed (70*srand);             // The seed for the pebble
shapes and placement.
#declare RandPat = seed (83*srand);             // The seed for the pebble
patterns.
#declare RandCol = seed (12*srand);             // The seed for the pebble color
schemes.

material {
 texture {                               // Add the default texture
  PebbleNormalAndFinish
  pigment {                       // Select a random pattern.
   PebblePatterns [rand (RandPat)*PebblePatternCount]
   color_map {             // Choose a random color scheme.
    Pebblecolors [rand (RandCol)*PebblecolorCount]
   }
  }
  normal {
                        pigment_pattern {
           PebblePatterns [rand (RandPat)*PebblePatternCount]
           color_map {     // Choose a random color scheme.
            Pebblecolors [rand (RandCol)*PebblecolorCount]
           }
                        }
                        1
                        accuracy 0.001
  }
                                  // Randomize the pattern's position and
rotation.
  translate <rand (RandPat)*100,rand (RandPat)*100,rand (RandPat)*100>
  rotate <rand (RandPat)*360,rand (RandPat)*360,rand (RandPat)*360>
 }
 #declare DecalLoop = 0;                 // Decide randomly which of the
dirt/speckle/line overlay textures we want to use.
 #while (DecalLoop < DecalPatternCount)
  #if (rand (RandPat) < 0.2)
   texture {
    PebbleNormalAndFinish
    DecalPatterns [DecalLoop]
                  normal {
                                        pigment_pattern {
                           DecalPatterns [DecalLoop]
                                        }
                                        1
                                        accuracy 0.001
                  }
    translate <rand (RandPat)*100,rand (RandPat)*100,rand (RandPat)*100>
    rotate <rand (RandPat)*360,rand (RandPat)*360,rand (RandPat)*360>
   }
  #end
  #declare DecalLoop = DecalLoop+1;
 #end
 scale 80
        rotate z*30
 interior {ior 1.55}
}

#end

plane {<0,0,1>, 30 pebbles (956)}


Post a reply to this message

From: Bald Eagle
Subject: Re: nice knots
Date: 21 Sep 2019 08:50:01
Message: <web.5d861c1737e75a1d4eec112d0@news.povray.org>
Very cool.

Where does one find "spline.mcr" ?


Post a reply to this message

From: dick balaska
Subject: Re: nice knots
Date: 21 Sep 2019 16:48:43
Message: <5d868cab@news.povray.org>
On 9/21/19 8:48 AM, Bald Eagle wrote:
> Very cool.
> 
> Where does one find "spline.mcr" ?
> 

Awesome knots!

Try
http://www.oocities.org/ccolefax/spline/index.html

-- 
dik
Rendered 1024 of 921600 pixels (0%)


Post a reply to this message

From: Bald Eagle
Subject: Re: nice knots
Date: 21 Sep 2019 18:20:00
Message: <web.5d86a1b637e75a1d4eec112d0@news.povray.org>
dick balaska <dic### [at] buckosoftcom> wrote:

> Try
> http://www.oocities.org/ccolefax/spline/index.html

Nope.   Nonexistent file.

Here:
http://knotilus.math.uwo.ca/doc/downloadtypes.html


Post a reply to this message

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