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