
Although away from POV-Ray for 25 years I was still interested in its rendering capacities - particularly with my current hardware. I started by programming a simple material/sample viewer. The majority the POV file are #declare definitions for various textures, finishes, color ramps, etc. Below is a concatenated version with all the inc. files and macros embedded. If you use the script below in POV, be aware that a few references to external texture maps are used and will need to be redirected to your own textures or remarked out.
#version 3.8;
// --- miller 11.22.2022
// --- material sample preview
// --- define material sets, define object sample, define stage, camera, light
// --- apply material and name per rendering under the 'S E T S A M P L E D A T A'
// --- macros
#macro spawn_sphere(P,R)
sphere { P, R}
#end
#macro spawn_box(AX, AY, AZ, BX, BY, BZ)
box { <AX, AY, AZ>,<BX, BY, BZ> }
#end
#macro spawn_poly(W, D)
polygon {
4,
<0, 0>, <W, 0>, <W, D>, <0, D>
}
#end
// --- macro gizmo simple
#macro spawn_gizmo_simple(P,R)
union{
difference {
sphere { P, R }
plane { <0,0,-1>, 0 translate <0,0,R/2> }
}
difference {
sphere { P, (R*.80)}
plane { <0,1,0>, 0 rotate <0,0,25> translate P }
}
sphere { P, R*.6 }
}
#end
// macro gizmo
#macro spawn_gizmo(P,R)
#declare pos = P;
#declare rad = R;
#declare rad2 = rad*0.80;
#declare rad3 = rad*0.60;
#declare rotZ = 0;
#declare torus_diam = 0.10;
#declare torus_1_A = torus_diam;
#declare torus_1_B = rad-torus_1_A;
#declare torus_2_A = torus_diam * 2;
#declare torus_2_B = rad2-torus_2_A;
union{
difference {
sphere { pos, rad }
plane { <0,0,-1>, 0 translate <0,0,rad/2> }
}
difference {
sphere { pos, rad2}
plane { <0,1,0>, 0 rotate <0,0,rotZ> translate P }
}
sphere { pos, rad3 }
torus { torus_1_B,torus_1_A rotate <90,0,0> translate <0,0,rad/2>}
torus { torus_2_B,torus_2_A rotate <0,0,0> translate <0,0,rad/2>}
cylinder { <0,0,rad/2>,<0,0,(rad/2)+torus_1_A>, rad-torus_diam }
}
#end
// --- C A M E R A
#macro set_camera (n, p, l)
#declare cam_right = <-image_width/image_height,0,0> ;
#switch (n)
#case (1) // --- front
#declare pos = <0, p, l> ;
#declare look = <0,0,l>;
#declare ang = 20;
#break
#case (2) // --- right
#declare pos = <p, 0, l> ;
#declare look = <0,0,l>;
#declare ang = 20;
#break
#case (3) // --- left
#declare pos = <-p, 0, l> ;
#declare look = <0,0,l>;
#declare ang = 20;
#break
#case (4) // --- top
#declare pos = <0, -1, p> ;
#declare look = <0,0,0>;
#declare ang = 20;
#break
#case (5) // --- perspective
#declare pos = <p, p, -p + l> ;
#declare look = <0,0,l>;
#declare ang = 40;
#break
#end
camera {
right cam_right
location pos
look_at look
sky <0,0,1>
angle ang
}
#end
// --- S T A G E
background {color rgb<.8,.8,.8>}
#macro show_floor (n)
plane { z, n material { M_tan_dark_gloss } translate<0,0,0>}
#end
// --- S K Y G R A D I A N T
#macro show_sky ()
#declare rad = 500000;
sphere { <0, 0, 0>, rad
hollow on
material { M_enviroment_sunny scale rad*2 translate <0,0,rad> }
}
#end
// --- S K Y N E U T R A L
#macro show_sky_gray ()
#declare rad = 600000;
sphere { <0, 0, 0>, rad
hollow on
pigment { color rgb<.7,.7,.7> }
finish { ambient 1 diffuse .5}
}
#end
// --- L I G H T S
#macro show_lighting_hard ()
light_source { <8000,-8000, 20000> color rgb <.9,.9,.8> }
light_source { <-8000,-4000,12000> color rgb <.32,.32,.32> }
global_settings {ambient_light <1,1,1> }
#end
#macro show_lighting_soft (n)
//radius: 0.75 degrees
//falloff: 1 degrees
//tightness: 1
#declare r = 20;
#declare f = 30;
#declare t1 = 0 ;
#declare look = <0, 0, 0>;
light_source {
<-6000, -4000, 8000>
color rgb <1,1,1>
spotlight
radius r
falloff f
tightness t1
point_at look
area_light <3500, 0, -3500>, <1000, 0, 1000>, 20, 20
adaptive n
jitter
}
light_source {
<2000, -2000, 5000>
color rgb <.55,.55,.5>
spotlight
radius r
falloff f
tightness t1
point_at look
area_light <3500, 0, -3500>, <1000, 0, 1000>, 20, 20
adaptive n
jitter
}
#end
#macro show_lighting_old (n)
light_source {
<-3000,-4000,6000>
color rgb <1,1,1>
spotlight
point_at <0, 0, 0>
radius 20
falloff 30
// area_light <1, 0, 0>, <0, 0, 1>, 2, 2
//adaptive n
//jitter
}
light_source {
<4000,-8000,12000>
color rgb <.62,.6,.6>
spotlight
point_at <0, 0, 0>
radius 20
falloff 30
area_light <6000, 0, 6000>, <0, 0, 0>, 90, 90
adaptive n
jitter
}
#end
/*
charset : ascii
adc_bailout : 1/255
ambient_light : <1,1,1>
assumed_gamma : 1.0 (undefined for legacy scenes)
hf_gray_16 : deprecated
irid_wavelength : <0.25,0.18,0.14>
max_trace_level : 5
max_intersections : 64
mm_per_unit : 10
number_of_waves : 10
noise_generator : 2
Radiosity:
adc_bailout : 0.01
always_sample : off
brightness : 1.0
count : 35 (supports adaptive mode)
error_bound : 1.8
gray_threshold : 0.0
low_error_factor : 0.5
max_sample : non-positive value
maximum_reuse : 0.2
minimum_reuse : 0.015
nearest_count : 5 (max = 20; supports adaptive mode)
normal : off
pretrace_start : 0.08
pretrace_end : 0.04
recursion_limit : 2
subsurface : off
Subsurface:
radiosity : off
samples : 50,50
*/
// --- G L O B A L T R A C E S E T T I N G S
global_settings {
max_trace_level 16
max_intersections 64
assumed_gamma 2.8
//ambient_light <1,1,1>
radiosity {
brightness .75
pretrace_start 0.1
pretrace_end 0.001
count 150
maximum_reuse 0.2
minimum_reuse 0.015
subsurface off
recursion_limit 2
}
subsurface {
radiosity on
samples 50,50
}
}
// --- M A T E R I A L D E C L A R E S
/*
FINISH:
finish { [FINISH_IDENTIFIER] [FINISH_ITEMS...] }
FINISH_ITEMS:
fresnel FLOAT
ambient COLOR | diffuse [albedo] Amount [, Amount] |
emission COLOR | brilliance Amount | phong [albedo] Amount | phong_size Amount |
specular [albedo] Amount | roughness Amount |
metallic [Amount] | reflection COLOR |
crand Amount | conserve_energy BOOL |
reflection { Color_Reflecting_Min [REFLECTION_ITEMS...] } |
subsurface { translucency COLOR } |
irid { Irid_Amount [IRID_ITEMS...] |
use_alpha BOOL
}
REFLECTION_ITEMS:
COLOR_REFLECTION_MAX | fresnel BOOL |
falloff FLOAT_FALLOFF | exponent FLOAT_EXPONENT |
metallic FLOAT_METALLIC
IRID_ITEMS:
thickness Amount | turbulence Amount
*/
//--- C O L O R S
#ifndef (Transparent) #declare Transparent = rgbt 1 ;#end
#declare C_white = color rgb<1,1,1> ;
#declare C_black = color rgb<0,0,0> ;
#declare C_red = color rgb<1,0,0> ;
#declare C_green = color rgb<0,1,0> ;
#declare C_blue = color rgb<0,.5,.9> ;
#declare C_orange = color rgb<1,1,0> ;
#declare C_copper = color rgb <0.40, 0.20, 0.15>;
#declare C_silver = color rgb <0.85, 0.85, 0.8>;
#declare C_gold = color red 0.82 green 0.6 blue 0.196078;
#declare C_gold_bright= color <0.90, 0.65, 0.15>;
#declare C_light_blue = color red 0.6 green 0.8 blue 1;
#declare C_horizon_blue = color red .82 green 1 blue .98;
#declare C_light_green = color rgb<.75,1,.9> ;
#declare C_gray10 = color red 0.1 green 0.1 blue 0.1;
#declare C_gray20 = color red 0.2 green 0.2 blue 0.2;
#declare C_gray30 = color red 0.3 green 0.3 blue 0.3;
#declare C_gray40 = color red 0.4 green 0.4 blue 0.4;
#declare C_gray50 = color red 0.5 green 0.5 blue 0.5;
#declare C_gray60 = color red 0.6 green 0.6 blue 0.6;
#declare C_gray70 = color red 0.7 green 0.7 blue 0.7;
#declare C_gray80 = color red 0.8 green 0.8 blue 0.8;
#declare C_gray90 = color red 0.9 green 0.9 blue 0.9;
#declare C_tan = color red 0.85 green 0.66 blue 0.5;
#declare C_tan_dark = color red 0.66 green 0.5 blue 0.4;
#declare rgb_green_olive = rgb <0.4, 0.6, 0.2> ;
#declare rgb_green_gray = rgb <0.5, 0.6, 0.4> ;
#declare rgb_yellow_gray = rgb <0.7, 0.8, 0.4> ;
#declare rgb_brown_gray = rgb <0.879, 0.55, 0.32> ;
#declare f = .0039 ;
#declare tR = 107*f ;
#declare tG = 176*f ;
#declare tB = 189*f ;
#declare C_teal = color rgb<tR,tG,tB> ;
// --- C O L O R M A P S
#declare C_map_enviroment_sunny =
color_map {
[ 0.0 C_gray60 ]
[ 0.40 C_white ]
[ 0.50 C_horizon_blue ]
[ 0.53 C_light_blue ]
[ 1.0 C_blue ]
}
#declare C_map_teal =
color_map {
[0.000 rgb C_teal]
[0.2 rgbt <tR, tG, tB, 1>]
[0.7 rgbt <tR, tG, tB, 1>]
[0.85 rgb C_teal]
[1.000 rgb C_teal]
}
#declare C_map_agate_A =
color_map {
[ 0.0 rgb_green_olive ]
[ 0.3 rgb_green_gray ]
[ 0.5 rgb_yellow_gray ]
[ 0.7 rgb_brown_gray ]
[ 1.0 rgb_green_olive ]
}
#declare C_map_mud_A =
color_map {
[0.000 rgb <0.625, 0.659, 0.455>]
[0.171 rgb <0.582, 0.449, 0.320>]
[0.274 rgb <0.157, 0.151, 0.122>]
[0.393 rgb <0.625, 0.619, 0.455>]
[0.564 rgb <0.582, 0.519, 0.420>]
[0.701 rgb <0.482, 0.392, 0.278>]
[1.000 rgb <0.625, 0.659, 0.455>]
}
#declare C_map_steel =
color_map {
[0.000 rgb <0.535, 0.525, 0.535>]
[0.171 rgb <0.549, 0.549, 0.520>]
[0.274 rgb <0.457, 0.451, 0.462>]
[0.393 rgb <0.625, 0.625, 0.625>]
[0.564 rgb <0.582, 0.540, 0.520>]
[0.701 rgb <0.552, 0.532, 0.578>]
[1.000 rgb <0.535, 0.525, 0.535>]
}
#declare C_map_steel =
color_map {
[0.000 rgb <0.535, 0.525, 0.535>]
[0.171 rgb <0.549, 0.549, 0.520>]
[0.274 rgb <0.557, 0.551, 0.562>]
[0.393 rgb <0.625, 0.625, 0.625>]
[0.564 rgb <0.582, 0.540, 0.520>]
[0.701 rgb <0.552, 0.532, 0.578>]
[1.000 rgb <0.535, 0.525, 0.535>]
}
#declare C_map_gold =
color_map {
[0.000 rgb <0.70, 0.60, 0.45>]
[0.171 rgb <0.65, 0.55, 0.35>]
[0.274 rgb <0.58, 0.35, 0.25>]
[0.393 rgb <0.65, 0.65, 0.35>]
[0.564 rgb <0.55, 0.45, 0.25>]
[0.701 rgb <0.65, 0.55, 0.35>]
[1.000 rgb <0.70, 0.60, 0.45>]
}
#declare shroom_grad_A =
color_map {
[0.0 color C_gold]
[0.5 color C_gold]
[.7 color C_white]
[.9 color C_tan_dark]
[1.0 color C_tan_dark]
}
#declare shroom_grad_B =
color_map {
[0.0 color C_horizon_blue]
[0.2 color C_gold]
[.7 color C_gold]
[.9 color C_horizon_blue]
[1.0 color C_horizon_blue]
}
//--- F I N I S H E S P L A S T I C
#declare F_plastiC_gloss =
finish {
reflection {.5, .7 fresnel on }
conserve_energy
brilliance 4
ambient .7
diffuse 1
phong 1
phong_size 5
specular .2
roughness .5
reflection .1
}
#declare F_plastic_satin =
finish {
reflection {.5, 1 fresnel on }
conserve_energy
brilliance 5
ambient 0
brilliance 2
diffuse .5
phong .2
phong_size 100
metallic
specular .2
roughness .9
reflection .5
}
#declare F_soft =
finish {
reflection {.4,.6 fresnel on }
conserve_energy
brilliance 5
ambient 1
brilliance 2
diffuse .7
phong 1
phong_size 20
//metallic
specular .1
roughness .8
reflection .1
}
#declare F_silk =
finish {
reflection {.5, 1 fresnel on }
conserve_energy
brilliance 5
ambient 1
brilliance 2
diffuse 1
phong .2
phong_size 20
//metallic
specular .01
roughness .75
reflection .2
}
#declare F_flat =
finish {
ambient 0.0
diffuse 1
phong 0
phong_size 0
specular 0
metallic 0
}
#declare F_bright =
finish {
ambient 1
diffuse .75
phong 0
phong_size 0
specular 0
metallic 0
emission rgb .1
}
//--- F I N I S H E S M E T A L
#declare F_dull_glow =
finish {
ambient 0
//emission .1
fresnel 1
phong 0
diffuse albedo 1
specular albedo 1
roughness 0.01
reflection .5
}
#declare F_glow =
finish {
ambient 0
emission 1
fresnel 1
phong 0
diffuse albedo .5
specular albedo 1
roughness 0.001
reflection 1
}
#declare F_metal_dull =
finish {
reflection {.3, 1 fresnel on }
conserve_energy
brilliance 5
ambient 1
diffuse 1
phong .1
phong_size 200
metallic 1
specular .8
roughness .1
reflection .15
}
#declare F_metal_hard =
finish {
reflection {.01, 1 fresnel on }
conserve_energy
brilliance 5
ambient 0
brilliance 5
diffuse 1
phong 2
phong_size 100
metallic
specular 1
roughness 1/100
reflection .2
}
#declare F_metal_polished =
finish {
reflection {0, 1 fresnel on }
conserve_energy
brilliance 5
ambient 0
diffuse 1
phong 5
phong_size 40
metallic
specular .4
roughness 1/20
reflection .5
}
#declare F_metal_smooth =
finish {
reflection {.3, .6 fresnel on }
conserve_energy
brilliance 5
ambient 0
brilliance 2
diffuse 1
phong .5
phong_size 50
metallic
specular .3
roughness .5
}
#declare F_metal_flat =
finish {
reflection {0, 1 fresnel on falloff 1.0 exponent 1.0 metallic 0 }
conserve_energy
phong .5
phong_size 10
diffuse .5
metallic 1
specular .7
roughness .2
}
#declare F_stone_smooth =
finish {
reflection {.1, .3
fresnel on
falloff 1
exponent 1.0
metallic 0
}
conserve_energy
phong .3
phong_size 30
diffuse .75
specular .2
roughness .8
}
//--- F I N I S H E S G L A S S
#declare F_glass =
finish {
specular 0.7
roughness 0.001
ambient .5
diffuse .5
reflection { .2, 1.0 fresnel on }
conserve_energy
}
#declare F_glass_dark =
finish {
specular .02
roughness 0.01
phong 1
phong_size 100
ambient .5
diffuse 0
reflection { .2, 1.0 fresnel on }
conserve_energy
}
#declare F_hazy_glass =
finish {
reflection {0, .85 fresnel on }
conserve_energy
phong 10
phong_size 60
metallic 1
specular 30
roughness 1/10
}
#declare F_hard_glass =
finish {
reflection {.2, 1 fresnel on }
conserve_energy
phong 5
phong_size 100
metallic 0
specular .25
roughness 1/10
diffuse 1
}
#declare F_milky =
finish {
reflection {.4, .6 fresnel on }
conserve_energy
phong 1
phong_size 60
metallic 0
specular .2
roughness 1/10
}
//--- I N T E R I O R S
#declare I_white=
interior {
ior 1.5
fade_colour <1,1,1>
fade_distance 1.0
fade_power .2
}
#declare I_clear=
interior {
ior 1.5
fade_colour <1,1,1>
fade_distance 1.0
fade_power .2
}
#declare I_dark=
interior {
ior 1.5
fade_colour <.5,.5,.5>
fade_distance 1.0
fade_power .2
}
#declare I_green =
interior {
ior 1.6
fade_colour <0,.7,.2>
fade_distance .5
fade_power 2
}
#declare I_green_light =
interior {
ior 1.6
fade_colour <.75,1,.9>
fade_distance .5
fade_power 2
}
#declare I_blue =
interior {
ior 1.6
fade_colour <0,.8,1>
fade_distance .5
fade_power 2
}
#declare I_red =
interior {
ior 1.6
fade_colour <1,0,0>
fade_distance .5
fade_power 2
}
#declare I_gold =
interior {
ior 1.6
fade_colour <0.90, 0.65, 0.15>
fade_distance .5
fade_power 2
}
#declare I_solid =
interior {
ior 1
fade_colour <0,0,0>
fade_distance 0
fade_power 0
}
// TEXTURES GLASS
#declare T_glass_clear =
texture {
pigment { color C_black transmit 1 }
}
#declare T_glass_milk =
texture {
pigment { color C_white transmit 1 }
}
#declare T_glass_frosted =
texture {
pigment { color C_white transmit 1 }
}
// T E X T U R E S E N V I R O M E N T
#declare T_enviroment_sunny =
texture {
pigment {
gradient z
color_map {
C_map_enviroment_sunny
}
}
}
// pattern for use in texture/pigment/normal/density
//gradient y // specify gradient direction vector
//gradient y, 0.5 // for use with normal{} (0...1 or more)
// T E X T U R E S L A Y E R E D
#declare T_agate_gold_vien =
texture {
bozo
texture_map {
[0.30 pigment {
color rgb <.3,.5,.5>
transmit 1
}
]
[0.5 pigment {
granite
color_map { C_map_agate_A }
scale 3
warp {
turbulence 0.5
}
}
finish{F_metal_hard}
normal {
granite .6
scale 20
bump_size 1
}
]
}
warp {
turbulence <2.0, 3.0, 2.0>
}
}
#declare T_map_steel =
texture {
granite
texture_map {
[.2 pigment {
color rgb <.77,.77,.75>
transmit 0
}
finish{F_metal_flat}
]
[.28 pigment {
spotted
color_map { C_map_steel }
scale 1
warp {
turbulence 0
}
}
finish{F_metal_hard}
]
[.30 pigment {
color rgb <.8,.8,.8>
transmit 0
}
finish{F_metal_flat}
]
}
warp {
turbulence <1.0, 10.0, 20.0>
}
}
#declare shroom_texture_A =
texture {
pigment {
gradient y
color_map {shroom_grad_A}
}
finish {
specular 1
diffuse 1
roughness 0.0001
phong 0.1
phong_size 45
brilliance 3
reflection {0.03, .3 fresnel on}
conserve_energy
}
normal { crackle 5 scale .1 turbulence 0.25 bump_size .5}
}
#declare shroom_texture_B =
texture {
pigment {
gradient y
color_map {shroom_grad_B}
}
finish {
specular 1
diffuse 1
roughness 0.0001
phong 0.1
phong_size 45
brilliance 3
reflection {0.03, .3 fresnel on}
conserve_energy
}
normal { crackle 5 scale .1 turbulence 0.25 bump_size .5}
}
#declare T_shroom_A =
texture {
shroom_texture_A
scale .5
translate <0,0,0>
}
texture{
pigment{ crackle
scale .1 turbulence 0.25
color_map{
[0.0 color C_black transmit 0.39]
[0.05 color Transparent]
[0.9 color C_red]
[.95 color Transparent]
[1.0 color C_black transmit 0.39]
} // end of color_map
} // end of pigment
normal { crackle 5 scale .1 turbulence 0.25 }
}
#declare T_shroom_B =
texture {
shroom_texture_B
scale .5
translate <0,0,0>
}
texture{
pigment{ crackle
scale .1 turbulence 0.25
color_map{
[0.0 color C_black transmit 0.39]
[0.05 color Transparent]
[0.9 color C_red]
[.95 color Transparent]
[1.0 color C_black transmit 0.39]
} // end of color_map
} // end of pigment
normal { crackle 5 scale .1 turbulence 0.25 }
}
#declare M_shroom = material { texture { T_shroom_A scale 11 rotate x*90 finish{F_metal_polished}} }
#declare M_shroom_B = material { texture { T_shroom_B scale 25 rotate x*90 finish{F_metal_polished}} }
//--- T E X T U R E S G R A Y
#declare T_black = texture{ pigment{ rgb C_black transmit 0 }}
#declare T_gray10 = texture{ pigment{ rgb C_gray50 transmit 0 }}
#declare T_gray20 = texture{ pigment{ rgb C_gray50 transmit 0 }}
#declare T_gray30 = texture{ pigment{ rgb C_gray50 transmit 0 }}
#declare T_gray40 = texture{ pigment{ rgb C_gray50 transmit 0 }}
#declare T_gray50 = texture{ pigment{ rgb C_gray50 transmit 0 }}
#declare T_gray60 = texture{ pigment{ rgb C_gray60 transmit 0 }}
#declare T_gray70 = texture{ pigment{ rgb C_gray70 transmit 0 }}
#declare T_gray80 = texture{ pigment{ rgb C_gray80 transmit 0 }}
#declare T_white = texture{ pigment{ rgb C_white transmit 0 }}
#declare T_tan = texture{ pigment{ rgb C_tan transmit 0 }}
#declare T_tan_dark = texture{ pigment{ rgb C_tan_dark transmit 0 }}
#declare T_red = texture{ pigment{ rgb C_red transmit 0 }}
//--- textures color transmit
#declare T_red_transmit = texture{ pigment{ rgb C_red transmit 1 }}
//--- T E X T U R E S C O L O R S
#declare T_gold = texture{ pigment{ rgb C_gold transmit 0 }}
#declare T_gold_bright = texture{ pigment{ rgb C_gold_bright transmit 0 }}
//--- N O R M A L M A P S
#declare N_caos_A =
normal {
gradient x //this is the PATTERN_TYPE
normal_map {
[0.3 bumps scale 2]
[0.3 dents]
[0.6 dents]
[0.9 marble turbulence 1]
}
}
#declare N_ripple_A =
normal {
gradient x // this is the PATTERN_TYPE
slope_map {
[0 <0.5, 1>] // start in middle and slope up
[0.25 <1.0, 0>] // flat slope at top of wave
[0.5 <0.5,-1>] // slope down at mid point
[0.75 <0.0, 0>] // flat slope at bottom
[1 <0.5, 1>] // finish in middle and slope up
}
scale .2
}
// -- N O R M A L S
#declare N_frost = normal {bumps 0.3 scale .001}
//#declare Map_normal_flat = concat ("maps/normals/" "normal_flat.png")
//#declare N_flat = normal{ bump_map{ Map_normal_flat gamma 2.8 premultiplied true }}
//#declare Map_bump_dots_A = concat ("maps/normals/" "bump_dots_A.png")
//#declare N_bump_dots_A = normal{ bump_map{ Map_bump_dots_A gamma 2.8 premultiplied true map_type 0} bump_size 5}
//#declare Map_stone_wall_D_n = concat ("maps/stones/" "stonewall-normal.png")
//#declare N_stone_wall_D_n = normal{ bump_map{ Map_stone_wall_D_n gamma 2.8 premultiplied true map_type 1} bump_size 5}
#declare N_ripple_A = normal { bumps 0.2 scale 0.2 }
#declare N_ripple_large = normal{N_ripple_A scale 10 bump_size 5}
// granite
// waves
// wrinkles
// bozo
// leopard
// crackle
// agate
// agate_turb 0.3
// -- P I G M E N T S W I T H M A T C H I N G N O R M A L S
#declare P_mud_granite = pigment { granite color_map { C_map_mud_A } scale 1 warp { turbulence .5 }}
#declare N_granite = normal { granite 1 bump_size 1 scale 1 warp { turbulence .5 }}
// ---------------------------------------
#declare P_mud_leopard = pigment { leopard color_map { C_map_mud_A } scale 1 warp { turbulence 3 }}
#declare N_leopard = normal { leopard bump_size 1 scale 1 warp { turbulence 3 }}
// ---------------------------------------
#declare P_mud_bozo = pigment { bozo color_map { C_map_mud_A } scale 1 warp { turbulence 3 }}
#declare N_mud_bozo = normal { bozo bump_size 5 scale 1 warp { turbulence 3 }}
// ---------------------------------------
#declare P_mud_wrinkles = pigment { wrinkles color_map { C_map_mud_A } scale 1 warp { turbulence 3 }}
#declare N_mud_wrinkles = normal { wrinkles bump_size 2 scale 1 warp { turbulence 3 }}
// ---------------------------------------
#declare P_mud_crackle = pigment { crackle color_map { C_map_mud_A } scale 1 warp { turbulence 3 }}
#declare N_mud_crackle = normal { crackle bump_size 2 scale 1 warp { turbulence 3 }}
// ---------------------------------------
#declare P_mud_agate = pigment { agate color_map { C_map_mud_A } scale 1 warp { turbulence 1 }}
#declare N_mud_agate = normal { agate bump_size 2 scale 1 warp { turbulence 1 }}
// ---------------------------------------
#declare P_steel_leopard = pigment { leopard color_map { C_map_steel } scale 1 warp { turbulence 2 }}
#declare N_steel = normal { leopard bump_size 3 scale 1 warp { turbulence 2 }}
// ---------------------------------------
#declare P_steel_bozo = pigment { bozo color_map { C_map_steel } scale 1 warp { turbulence 4 }}
#declare N_steel_bozo = normal { bozo bump_size 1 scale 1 warp { turbulence 4 }}
// ---------------------------------------
#declare P_steel_wrinkles = pigment { wrinkles color_map { C_map_steel } scale 1 warp { turbulence 6 }}
#declare N_steel_wrinkles = normal { wrinkles bump_size .2 scale 1 warp { turbulence 6 }} // ---------------------------------------
#declare P_steel_agate = pigment { agate color_map { C_map_steel } scale 1 warp { turbulence 5 }}
#declare N_steel_agate = normal { agate bump_size .05 scale 1 warp { turbulence 5 }}
// ---------------------------------------
#declare P_gold_agate = pigment { agate color_map { C_map_gold } scale 1 warp { turbulence 5 }}
#declare N_gold_agate = normal { agate bump_size .2 scale 1 warp { turbulence 5 }}
// --- M A T E R I A L L I B R A R Y
/*
miller_materials.inc
0 planar mapping
1 spherical mapping
2 cylindrical mapping
5 torusmapping
3 and 4 under development
--- T R A N S M I T
T_red_transmit
--- P L A S T I C
F_plastiC_gloss =
F_plastiC_satin =
F_soft =
F_silk =
--- M E T A L
F_dull_glow
F_glow
F_metal_dull
F_metal_hard
F_metal_polished
--- G L A S S
F_glass
F_glass_dark
F_hazy_glass
F_hard_glass
F_milky
--- I N T E R I O R S
I_white
I_red
I_blue
I_green
I_light_green
I_clear
I_solid
--- N O R M A L S
N_rust_A
N_ripple_A
N_flat
N_ripple_A
N_stone_wall_D
--- T E X T U R E S S T O N E S
T_stone_wall_D
--- T E X T U R E S G L A S S
T_glass_clear
T_glass_hard_clear
T_glass_frosted
--- T E X T U R E S O P A Q U E
T_black
T_gray10
T_gray20
T_gray30
T_gray40
T_gray50
T_gray60
T_gray80
T_white
T_dark_tan
T_gold
T_gold_bright
*/
// ---M A T E R I A L S
// neutrals
#declare M_neutral_floor = material{ texture{ T_gray40 finish{F_metal_hard}} interior{I_solid} }
#declare M_tan_gloss = material{ texture{ T_tan finish{F_plastiC_gloss}} interior{I_solid} }
#declare M_tan_dark_gloss = material{ texture{ T_tan_dark finish{F_metal_hard}} interior{I_solid} }
#declare M_red_gloss = material{ texture{ T_red finish{F_metal_hard}} interior{I_solid} }
#declare M_black_gloss = material{ texture{ T_black finish{F_plastiC_gloss}} interior{I_solid} }
#declare M_gray20_gloss = material{ texture{ T_gray20 finish{F_metal_hard}} interior{I_solid} }
#declare M_gray30_gloss = material{ texture{ T_gray30 finish{F_metal_hard}} interior{I_solid} }
#declare M_gray50_gloss = material{ texture{ T_gray50 finish{F_plastiC_gloss}} interior{I_solid} }
#declare M_gray50_mat = material{ texture{ T_gray50 finish{F_flat}} interior{I_solid} }
#declare M_gray50_satin = material{ texture{ T_gray50 finish{F_plastic_satin}} interior{I_solid} }
#declare M_white_gloss = material{ texture{ T_white finish{F_metal_hard}} interior{I_solid} }
// metals
#declare M_metal_alum = material{ texture{ T_gray80 finish{F_metal_dull}} interior{I_solid} }
#declare M_metal_steel = material{ texture{ T_gray70 finish{F_metal_hard}} interior{I_solid} }
#declare M_metal_steel2 = material{ texture{ T_map_steel } scale 15}
#declare M_metal_chrome = material{ texture{ T_gray80 finish{F_metal_polished}} interior{I_solid} }
#declare M_metal_gold = material{ texture{ T_gold finish{F_metal_polished}} interior{I_solid} }
#declare M_metal_gold_bright = material{ texture{ T_gold_bright finish{F_metal_polished}} interior{I_solid} }
// glass
#declare M_glass = material{ texture{ T_glass_clear finish{F_hard_glass}} interior{I_clear} }
#declare M_glass_dark = material{ texture{ T_glass_clear finish{F_hard_glass}} interior{I_dark} }
#declare M_glass_red = material{ texture{ T_glass_clear finish{F_hard_glass}} interior{I_red} }
#declare M_glass_gold = material{ texture{ T_glass_clear finish{F_hard_glass}} interior{I_gold} }
#declare M_glass_green = material{ texture{ T_glass_clear finish{F_hard_glass}} interior{I_green} }
#declare M_glass_green_light = material{ texture{ T_glass_clear finish{F_hard_glass}} interior{I_green_light} }
#declare M_glass_blue = material{ texture{ T_glass_clear finish{F_hard_glass}} interior{I_blue} }
#declare M_glass_milk = material{ texture{ T_glass_milk finish{F_milky}} interior{I_white} }
#declare M_glass_frosted = material{ texture{ T_glass_clear normal{N_ripple_A scale .05} finish{F_milky}} interior{I_white} }
#declare M_glass_wripple = material{ texture{ T_glass_clear normal{N_ripple_A scale 2} finish{F_milky}} interior{I_white} }
#declare M_glass_gold_frost = material{ texture{ T_glass_clear normal{N_ripple_A scale .1} finish{F_hard_glass}} interior{I_gold} }
#declare M_glass_gold_wripple = material{ texture{ T_glass_clear normal{N_ripple_A} finish{F_hard_glass}} interior{I_gold} }
#declare M_glass_gold_pillow = material{ texture{ T_glass_clear normal{N_ripple_A scale 9} finish{F_hard_glass}} interior{I_gold} }
#declare M_gray50_gloss_ripple = material{ texture{ T_gray50 normal{N_ripple_A scale 9} finish{F_metal_hard}} interior{I_solid} }
#declare M_metal_chrome_ripple = material{ texture{ T_gray80 normal{N_ripple_A } finish{F_metal_polished}} interior{I_solid} rotate x*90}
#declare M_glass_green_light_ripple = material{ texture{ T_glass_clear normal{N_ripple_large} finish{F_hard_glass}} interior{I_green_light} }
#declare M_metal_gold_ripple = material{ texture{ T_gold_bright normal{N_ripple_A scale .6} finish{F_metal_polished}} interior{I_solid} }
#declare M_normal_study = material{ texture{ T_tan finish{F_metal_hard}} interior{I_solid} }
//-- maps/stones
//#declare Map_stone_wall_D = concat ("maps/stones/" "stone_wall_D.png")
//#declare T_stone_wall_D = texture{ pigment{ image_map{ png Map_stone_wall_D map_type 0 }}}
//#declare M_stone_wall_D = material{ texture{ T_stone_wall_D normal{N_stone_wall_D_n} finish{F_soft}} interior{I_solid}scale 10}
//-- maps/ground
//#declare Map_gravel_A = concat ("maps/ground/" "gravel_A.png")
//#declare T_gravel_A = texture{pigment{ image_map{ png Map_gravel_A map_type 1 }}}
//#declare M_gravel_A = material{ texture{ T_gravel_A finish{F_flat}} interior{I_solid}scale 20}
// --- wornpainted_A
#declare mapsize = 5;
#declare bumpsize = 1;
#declare m_gamma = 2.8;
#declare m_type = 0;
#declare Map_wornpainted_A = concat ("maps/metal/" "wornpainted_A.png")
#declare NMap_wornpainted_A_normal = concat ("maps/metal/" "wornpainted_A_normal.png")
#declare N_wornpainted_A_normal = normal{ bump_map{ NMap_wornpainted_A_normal gamma m_gamma premultiplied true map_type m_type}}
//#declare T_wornpainted_A = texture{pigment{ image_map{ png Map_wornpainted_A gamma m_gamma premultiplied true map_type m_type } }normal {N_wornpainted_A_normal scale mapsize bump_size bumpsize}}
//#declare M_wornpainted_A = material{ texture{ T_wornpainted_A finish{F_metal_flat}} interior{I_solid} scale mapsize}
#declare M_agate_gold_vien = material{ texture{ T_agate_gold_vien }}
// --- mud
#declare M_mud_granite = material{ texture{ P_mud_granite scale 4 normal{N_granite scale 4} finish{F_stone_smooth}} interior{I_solid} }
#declare M_mud_leopard = material{ texture{ P_mud_leopard scale .3 normal{N_leopard scale .3} finish{F_stone_smooth}} interior{I_solid} }
#declare M_mud_bozo = material{ texture{ P_mud_bozo scale 1 normal{N_mud_bozo scale 1} finish{F_stone_smooth}} interior{I_solid} }
#declare M_mud_wrinkles = material{ texture{ P_mud_wrinkles scale 2 normal{N_mud_wrinkles scale 2} finish{F_metal_smooth}} interior{I_solid} }
#declare M_mud_crackle = material{ texture{ P_mud_crackle scale 2 normal{N_mud_crackle scale 2} finish{F_stone_smooth}} interior{I_solid} }
#declare M_mud_agate = material{ texture{ P_mud_agate scale 2 normal{N_mud_agate scale 2} finish{F_stone_smooth}} interior{I_solid} }
//--- aged metals ?
//#declare M_steel_leopard = material{ texture{ P_steel_leopard scale .3 normal{N_steel scale .3} finish{F_metal_smooth}} interior{I_solid} }
#declare M_steel_bozo = material{ texture{ P_steel_bozo scale .6 normal{N_steel_bozo scale .6} finish{F_metal_smooth}} interior{I_solid} }
#declare M_steel_wrinkles = material{ texture{ P_steel_wrinkles scale 3 normal{N_steel_wrinkles scale 3} finish{F_metal_smooth}} interior{I_solid} }
#declare M_steel_agate = material{ texture{ P_steel_agate scale 3 normal{N_steel_agate scale 3} finish{F_metal_smooth}} interior{I_solid} }
#declare M_gold_agate = material{ texture{ P_gold_agate scale 5 normal{N_gold_agate scale 5} finish{F_metal_smooth}} interior{I_solid} }
#declare M_test = material{ texture{ P_mud_leopard scale .3 normal{N_leopard scale .3} finish{F_stone_smooth}} interior{I_solid} }
#declare M_steel_leopard = material{ texture{ P_steel_leopard scale .3 normal{N_steel scale .3} finish{F_metal_smooth}} interior{I_solid} }
#declare M_metal_dirty_chrome = material{ texture{ P_steel_bozo scale 100 normal{N_steel_wrinkles} finish{F_metal_polished}} interior{I_solid} }
#declare M_enviroment_sunny = material{ texture{ T_enviroment_sunny finish{F_bright}} interior{I_solid} }
// -- B U I L D A R E A
//--- painted metal Blue with metallic gold marbling
#declare N_map_teal = normal { leopard bump_size 10 scale 1 warp { turbulence 1 }}
#declare P_teal_overcoat = texture { pigment { leopard color_map { C_map_teal } scale 1 warp { turbulence 1 }}}
#declare T_gold_undercoat = texture{ T_gold_bright }
#declare T_teal_gold_swirl =
texture {
bozo
texture_map {
[.1 T_gold_undercoat normal {N_map_teal} finish{ F_metal_polished } ]
[.5 P_teal_overcoat normal {N_ripple_A scale .6} finish{ F_stone_smooth } ]
}
warp {
turbulence <3.0, 2.0, 1.0>
}
}
#declare T_glass_teal_gold_swirl =
texture {
bozo
texture_map {
[.3 T_gold_undercoat normal {N_map_teal} finish{ F_metal_polished } ]
[.8 P_teal_overcoat normal {N_ripple_A scale 2 bump_size .1} finish{ F_metal_polished } ]
}
warp {
turbulence <3.0, 2.0, 1.0>
}
}
//---NOTE: sloooow
#declare M_teal_gold_swirl = material{ texture { T_teal_gold_swirl } scale .5};
#declare M_glass_teal_gold_swirl = material{ texture { T_glass_teal_gold_swirl } scale .5};
// --- S E T S A M P L E D A T A
#declare Txt_label = "M_metal_gold"
#declare sample_material = M_metal_gold ;
#declare compare_material = M_metal_gold ;
// --- S C R E E N A N N O
text { ttf "arial.ttf", Txt_label, .01 , 0
texture{ pigment{ color rgb<1,1,1> } finish {F_dull_glow} }
scale<.5,.5,.5>
translate<-2.5,-5.55,0>
}
// --- M A K E G I Z M O S
#declare rad = 3;
#declare posY = 1.5;
#declare g = object{ spawn_gizmo(<0, 0, posY>, rad) } ;
#declare b = object{ spawn_box(0,0,0,10,10,.001 ) } ;
#declare gs = object{ spawn_sphere(<0,0,0>,rad/2) } ;
#declare show_zero_marker = 0 ;
// --- P L A C E G I Z M O S
object{ g translate <0,0,rad/2> material{ sample_material }}
object{ b translate <-5,-5,.05> material{ sample_material }}
object{ gs translate <-4,-4,rad/2> material{ compare_material }}
// --- C A M E R A S E T U P
#declare F = 1 ;
#declare R = 2 ;
#declare L = 3 ;
#declare T = 4 ;
#declare P = 5 ;
// --- S H O W C A M E R A
// set_camera ( cam_ID, offset_position, offset_look)
// set_camera ( T, 100, 0 )
// set_camera ( F, -1200, 200 )
// set_camera ( R, 80, 3 )
// set_camera ( L, 80, 5 )
set_camera ( P, -15, 0 )
// --- S H O W S T A G E
show_floor (-.01)
show_sky ()
show_sky_gray ()
//show_lighting_hard()
show_lighting_soft(1) //(n) = adaptive (1,2,or 3)
#if (show_zero_marker = 1) sphere { <0,0,0> .1} #end