|
|
// 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
|
|