I have used the Java-based freeware 3D graphics renderer 'Sunflow' for awhile now, for several of my renderings at this thread:


Political (educational) diagrams, for revolutionaries

http://www.revleft.com/vb/threads/11...evolutionaries


The graphic images themselves are hosted at Postimage:

https://postimage.org/ckaihatsu


Here's an introduction to what the software can do, though it's no longer under development:

http://sunflow.sourceforge.net/index.php?pg=gall

http://sunflow.sourceforge.net/?pg=feat

http://www.polyquark.com/opensource/

https://geneomic.files.wordpress.com/2015/06/sfwiki.pdf


What follows are a number of (Linux) Bash scripts I developed for creating unlimited instances for object instancing, randomizing shaders, randomizing modifiers for shaders, using camera motion blur, using object motion blur, and creating the four points of square or rectangular meshlights, respectively.

What follows the scripts is a file I call '160103_Sunflow_materials_from_Bluerender__scene.s c' that contains all of the defined source 'materials' that are referenced by the 'MATNUMS' line in any given Bash script, for randomly applying the supplied materials onto any instances of objects. This materials file is from 'Bluerender' (which uses Sunflow), at:

http://www.eurobricks.com/forum/inde...ngine-for-ldd/


I hope this is useful to many people who do 3D or who may want to see about doing it -- the best advice is to look through the 'examples' folder of scripts in Sunflow to pick apart and understand how Sunflow scripts work. Modifying these supplied Bash scripts of mine in any text editor will allow one to customize their utility for any given purpose.

Happy rendering!


Chris


---


MATNUMS="`echo {1..29} {36..45} {47..50} 268 269 {283..285} 294 296 297 308 311 312 315 316 {321..326} 330 {100..129} 131 {133..141} 143 {145..151} 153 154 157 158 168 176 178 180 {182..200} {208..213} {216..234} 236`"; set -- $MATNUMS; MATNUMS_COUNT=$#; \
\
for NNN in {1..100}; do ROTX=0; ROTY=0; ROTZ=0; SCALEU=1; SCALEX=1; SCALEY=1; SCALEZ=1; XXX=0; YYY=0; ZZZ=0; \
\
RAND=$((RANDOM % ($MATNUMS_COUNT + 1))); eval "RANDNUM=\${$RAND}"; SSS=$RANDNUM; \
\
echo -e "instance {\nname nameOfInstance_$NNN\ngeometry theOriginalObjectName\ntransform {\nrotatex $ROTX rotatey $ROTY rotatez $ROTZ\nscaleu $SCALEU scalex $SCALEX scaley $SCALEY scalez $SCALEZ\ntranslate $XXX $YYY $ZZZ\n}\nshader mat$SSS\nmodifier modifier_number_$SSS\n}\n\n" | tee -a /media/489-GB/YMMDD_filename_INSTANCES.sc; done


instance {
name nameOfInstance_NNN
geometry theOriginalObjectName
transform {
rotatex ROTX rotatey ROTY rotatez ROTZ
scaleu SCALEU scalex SCALEX scaley SCALEY scalez SCALEZ
translate XXX YYY ZZZ
}
shader shader_number_NNN
modifier modifier_number_NNN
}


---


for NNN in {1..100}; do SHADER_INDEX=$((RANDOM % 9)); SHADER_TOGGLE=$((RANDOM % 2)); SHADER_TYPE=$(grep -m1 $SHADER_INDEX template.txt | cut -c10-18 | tr -d "_"); test $SHADER_TOGGLE -eq 0 && SHADER_LINE1_REMOVAL="texture" && SHADER_LINE2_REMOVAL="9"; test $SHADER_TOGGLE -eq 1 && SHADER_LINE1_REMOVAL="diff" && SHADER_LINE2_REMOVAL="bright"; test $SHADER_TYPE = "uber" && SHADER_LINE1_REMOVAL="9" && SHADER_LINE2_REMOVAL="9"; IMAGE_FILE="brickwork-texture.jpg"; PHONG_POWER_VALUE="50"; PHONG_SAMPLES="4"; RAND150=$((RANDOM % 150)); RAND_150=$((RANDOM % 150)); SHINY_REFLECTIVITY=$(echo "scale=1; $RAND150/100" | bc -l); GLASS_IOR="1.5"; WARD_ROUGH_UV=$(echo "scale=2; $RAND150/100" | bc -l)" "$(echo "scale=2; $RAND_150/100" | bc -l); WARD_SAMPLES=4; AMBOCC_SAMPLES=4; AMBOCC_DIST=3; RAND100=$((RANDOM % 100)); UBER_SPECBLEND=$(echo "scale=2; $RAND100/100" | bc -l); EXP=$((RANDOM % 5)); UBER_GLOSSY=$(echo "scale=4; 1/10^$EXP" | bc -l); UBER_SAMPLES=4; RRR=$((RANDOM % 255)); GGG=$((RANDOM % 255)); BBB=$((RANDOM % 255)); SHADER_LINES=$(cat template.txt | grep $SHADER_INDEX | cut -c19- | grep -v $SHADER_LINE1_REMOVAL | grep -v $SHADER_LINE2_REMOVAL | sed -e "s/POWER/$PHONG_POWER_VALUE/g" | sed -e "s/SHADER_PHONG_SAMPLES/$PHONG_SAMPLES/g" | sed -e "s/SHADER_SHINY_REFL/$SHINY_REFLECTIVITY/g" | sed -e "s/SHADER_GLASS_ETA/$GLASS_IOR/g" | sed -e "s/SHADER_GLASS_ABSORPTION_DISTANCE/7/g" | sed -e "s/SHADER_WARD_ROUGH_UV/$WARD_ROUGH_UV/g" | sed -e "s/SHADER_WARD_SAMPLES/$WARD_SAMPLES/g" | sed -e "s/SHADER_AMBOCC_SAMPLES/$AMBOCC_SAMPLES/g" | sed -e "s/SHADER_AMBOCC_DIST/$AMBOCC_DIST/g" | sed -e "s/SHADER_UBER_SPECBLEND/$UBER_SPECBLEND/g" | sed -e "s/SHADER_UBER_GLOSSY/$UBER_GLOSSY/g" | sed -e "s/SHADER_UBER_SAMPLES/$UBER_SAMPLES/g" | sed -e "s/SHADER.*RGB/$RRR $GGG $BBB/g" | sed -e "s/SHADER.*FILENAME/$IMAGE_FILE/g"); echo -e "shader {\nname shader_number_$NNN\ntype $SHADER_TYPE\n$SHADER_LINES\n}\n" | tee -a /media/489-GB/YYMMDD_filename_SHADERS.sc; done


shader {
name shader_number_NNN
type SHADER_TYPE
0_shader_constant_color SHADER_CONSTANT_RGB
1_shader_diffuse__diff SHADER_DIFFUSE_RGB
1_shader_diffuse__texture SHADER_DIFFUSE_FILENAME
2_shader_phong____diff SHADER_PHONG_RGB
2_shader_phong____texture SHADER_PHONG_FILENAME
2_shader_phong____spec SHADER_PHONG_RGB POWER
2_shader_phong____samples SHADER_PHONG_SAMPLES
3_shader_shiny____diff SHADER_SHINY_RGB
3_shader_shiny____texture SHADER_SHINY_FILENAME
3_shader_shiny____refl SHADER_SHINY_REFL
4_shader_glass____eta SHADER_GLASS_ETA
4_shader_glass____color SHADER_GLASS_RGB
4_shader_glass____absorbtion.distance SHADER_GLASS_ABSORPTION_DISTANCE
4_shader_glass____absorbtion.color SHADER_GLASS_ABSORPTION_RGB
5_shader_mirror___refl SHADER_MIRROR_RGB
6_shader_ward_____diff SHADER_WARD_DIFF_RGB
6_shader_ward_____texture SHADER_WARD_FILENAME
6_shader_ward_____spec SHADER_WARD_SPEC_RGB
6_shader_ward_____rough SHADER_WARD_ROUGH_UV
6_shader_ward_____samples SHADER_WARD_SAMPLES
7_shader_amb-occ__bright SHADER_AMBOCC_BRIGHT_RGB
7_shader_amb-occ__texture SHADER_AMBOCC_FILENAME
7_shader_amb-occ__dark SHADER_AMBOCC_DARK_RGB
7_shader_amb-occ__samples SHADER_AMBOCC_SAMPLES
7_shader_amb-occ__dist SHADER_AMBOCC_DIST
8_shader_uber_____diff SHADER_UBER_DIFF_RGB
8_shader_uber_____diff.texture SHADER_UBER_DIFF_FILENAME
8_shader_uber_____spec SHADER_UBER_SPEC_RGB
8_shader_uber_____spec.texture SHADER_UBER_SPEC_FILENAME
8_shader_uber_____spec.blend SHADER_UBER_SPECBLEND
8_shader_uber_____glossy SHADER_UBER_GLOSSY
8_shader_uber_____samples SHADER_UBER_SAMPLES
}


---


for NNN in {1..100}; do MODIFIER_NORMALMAP_FILENAME="brickwork_normal-map.jpg"; MODIFIER_BUMP_FILENAME="brickwork-bump-map.jpg"; MODIFIER_BUMP_SCALE=$((RANDOM % 100 + 1)); MODIFIER_PERLIN_FUNCTION=$((RANDOM % 3)); RAND100=$((RANDOM % 100 + 1)); MODIFIER_PERLIN_SIZE=$(echo "scale=1; $RAND100/10 + 1" | bc -l); RAND101=$((RANDOM % 101)); MODIFIER_PERLIN_SCALE=$(echo "scale=2; $RAND101/100" | bc -l); MODIFIER_INDEX=$((RANDOM % 3)); test $MODIFIER_INDEX -eq 0 && MODIFIER_LINES="modifier {\nname modifier_number_$NNN\ntype normalmap\ntexture $MODIFIER_NORMALMAP_FILENAME\n}\n"; test $MODIFIER_INDEX -eq 1 && MODIFIER_LINES="modifier {\nname modifier_number_$NNN\ntype bump\ntexture $MODIFIER_BUMP_FILENAME\nscale $MODIFIER_BUMP_SCALE\n}\n"; test $MODIFIER_INDEX -eq 2 && MODIFIER_LINES="modifier {\nname modifier_number_$NNN\ntype perlin\nfunction $MODIFIER_PERLIN_FUNCTION\nsize $MODIFIER_PERLIN_SIZE\nscale $MODIFIER_PERLIN_SCALE\n}\n"; echo -e $MODIFIER_LINES | tee -a /media/489-GB/YYMMDD_filename_MODIFIERS.sc; done


modifier {
name modifier_number_NNN

type normalmap
type bump
type perlin

texture MODIFIER_NORMALMAP_FILENAME
texture MODIFIER_BUMP_FILENAME

scale MODIFIER_BUMP_SCALE [1-100]

function MODIFIER_PERLIN_FUNCTION [0, 1, or 2]
size MODIFIER_PERLIN_SIZE [1-10+]
scale MODIFIER_PERLIN_SCALE [0-1]
}


---


STEPS=3; unset EYE_AND_TARGET_AND_UP; CAMERA_INDEX=$((RANDOM % 4)); test $CAMERA_INDEX -eq 0 && CAMERA_TYPE="pinhole"; test $CAMERA_INDEX -eq 1 && CAMERA_TYPE="thinlens"; test $CAMERA_INDEX -eq 2 && CAMERA_TYPE="spherical"; test $CAMERA_INDEX -eq 3 && CAMERA_TYPE="fisheye"; FOV=$(echo "scale=2; 39.25" | bc -l); ASPECT_RATIO=$(echo "scale=4; 1.3333" | bc -l); HEADER="camera {\ntype $CAMERA_TYPE\nsteps $STEPS\n"; for NNN in $(seq $STEPS); do EYEX=0; EYEY=0; EYEZ=10; TARGETX=0; TARGETY=0; TARGETZ=0; UPX=0; UPY=1; UPZ=0; EYE_AND_TARGET_AND_UP="{\neye $EYEX $EYEY $EYEZ\ntarget $TARGETX $TARGETY $TARGETZ\nup $UPX $UPY $UPZ\n}\n"$EYE_AND_TARGET_AND_UP; done; FOOTER="fov $FOV\naspect $ASPECT_RATIO\n}\n"; echo -e $HEADER$EYE_AND_TARGET_AND_UP$FOOTER | tee -a /media/489-GB/YYMMDD_filename_CAMERA_MOTION_BLUR.sc


camera {
type CAMERA_TYPE
steps STEPS
{
eye EYEX EYEY EYEZ
target TARGETX TARGETY TARGETZ
up UPX UPY UPZ
}
fov FOV
aspect ASPECT_RATIO
}


---


STEPS=3; unset ALL_TRANSFORMS; SHADER="someShader"; MODIFIER="someModifier"; HEADER="object {\nshader $SHADER\nmodifier $MODIFIER\ntransform\nsteps $STEPS\ntimes 0 1\n"; for NNN in $(seq $STEPS); do ROTX=0; ROTY=0; ROTZ=0; SCALEU=1; SCALEX=1; SCALEY=1; SCALEZ=1; XXX=0; YYY=0; ZZZ=0; ALL_TRANSFORMS="{\nrotatex $ROTX rotatey $ROTY rotatez $ROTZ\nscaleu $SCALEU scalex $SCALEX scaley $SCALEY scalez $SCALEZ\ntranslate $XXX $YYY $ZZZ\n}\n"$ALL_TRANSFORMS; done; FOOTER="type file-mesh\nname objectName\nfilename myOBJ.obj\nsmooth_normals true\n"; echo -e $HEADER$ALL_TRANSFORMS$FOOTER | tee -a /media/489-GB/YYMMDD_filename_OBJECT_MOTION_BLUR.sc


camera {
type _______
shutter 0 1
eye ___ ___ ___
target ___ ___ ___
up ___ ___ ___
fov ___
aspect _____
}


object {
shader someShader
modifier someModifier
transform
steps STEPS
times 0 1
{
rotatex ROTX rotatey ROTY rotatez ROTZ
scaleu SCALEU scalex SCALEX scaley SCALEY scalez SCALEZ
translate XXX YYY ZZZ
}
type file-mesh
name objectName
filename myOBJ.obj
smooth_normals true


---


light {
type meshlight
name "151215.0_XY_plane_(facing)_unit_meshlight"
% (normal faces *forward*)(Z+)(points go around clockwise)
emit RRR GGG BBB
radiance RADIANCE
samples 8
% samples 32
points 4
% Upper-Left (UL_XYZ) point:
-0.5 0.5 0
% Lower-Left (LL_XYZ) point:
-0.5 -0.5 0
% Lower-Right (LR_XYZ) point:
0.5 -0.5 0
% Upper-Right (UR_XYZ) point:
0.5 0.5 0
triangles 2
0 1 2
3 0 2
}


XY_PLANE_STEPS=10; ONE=1; RADIANCE=96; XXX=0; YYY=0; ZZZ=0; XY_SCALE=1; XY_SCALEX=1; XY_SCALEY=1; XY_ROTX=0; XY_ROTY=0; for NNN in $(seq $XY_PLANE_STEPS); do RAND100_RRR=$((RANDOM % 100 + 1)); RAND100_GGG=$((RANDOM % 100 + 1)); RAND100_BBB=$((RANDOM % 100 + 1)); RRR=$(echo "scale=2; $RAND100_RRR/100" | bc -l); GGG=$(echo "scale=2; $RAND100_GGG/100" | bc -l); BBB=$(echo "scale=2; $RAND100_BBB/100" | bc -l); XY_SCALE=$(echo "scale=3; $NNN / $NNN" | bc -l); XY_SCALEX=$(echo "scale=3; $NNN * 2" | bc -l); XY_SCALEY=$(echo "scale=3; $NNN * 3" | bc -l); XZ_RADIUS=$(echo "scale=3; $XY_SCALE * $XY_SCALEX / 2" | bc -l); XY_RADIUS=$(echo "scale=3; $XY_SCALE * $XY_SCALEY / 2" | bc -l); XY_ROTX=$(echo "scale=3; $NNN * 0" | bc -l); XY_ROTY=$(echo "scale=3; ($NNN-1) * 90" | bc -l); XXX=$(echo "scale=3; $NNN - $NNN + $NNN" | bc -l); YYY=$(echo "scale=3; $NNN - $NNN + $NNN" | bc -l); ZZZ=$(echo "scale=3; $NNN - $NNN + $NNN" | bc -l); \
\
UL_X=$(echo "scale=3; $XZ_RADIUS * -1" | bc -l); UL_Y=$(echo "scale=3; $XY_RADIUS * 1" | bc -l); UL_Z=$(echo "scale=3; $XZ_RADIUS * 0" | bc -l); \
LL_X=$(echo "scale=3; $XZ_RADIUS * -1" | bc -l); LL_Y=$(echo "scale=3; $XY_RADIUS * -1" | bc -l); LL_Z=$(echo "scale=3; $XZ_RADIUS * 0" | bc -l); \
LR_X=$(echo "scale=3; $XZ_RADIUS * 1" | bc -l); LR_Y=$(echo "scale=3; $XY_RADIUS * -1" | bc -l); LR_Z=$(echo "scale=3; $XZ_RADIUS * 0" | bc -l); \
UR_X=$(echo "scale=3; $XZ_RADIUS * 1" | bc -l); UR_Y=$(echo "scale=3; $XY_RADIUS * 1" | bc -l); UR_Z=$(echo "scale=3; $XZ_RADIUS * 0" | bc -l); \
\
UL_X=$(echo "scale=3; $XZ_RADIUS * c(($XY_ROTY - 180) * 3.141582654/180)" | bc -l); \
LL_X=$(echo "scale=3; $XZ_RADIUS * c(($XY_ROTY - 180) * 3.141582654/180)" | bc -l); \
LR_X=$(echo "scale=3; $XZ_RADIUS * c($XY_ROTY * 3.141582654/180)" | bc -l); \
UR_X=$(echo "scale=3; $XZ_RADIUS * c($XY_ROTY * 3.141582654/180)" | bc -l); \
\
UL_Z=$(echo "scale=3; $XZ_RADIUS * s($XY_ROTY * 3.141582654/180)" | bc -l); \
LL_Z=$(echo "scale=3; $XZ_RADIUS * s($XY_ROTY * 3.141582654/180)" | bc -l); \
LR_Z=$(echo "scale=3; $XZ_RADIUS * s(($XY_ROTY - 180) * 3.141582654/180)" | bc -l); \
UR_Z=$(echo "scale=3; $XZ_RADIUS * s(($XY_ROTY - 180) * 3.141582654/180)" | bc -l); \
\
UL_Y=$(echo "scale=3; $XY_RADIUS * c($XY_ROTX * 3.141582654/180)" | bc -l); \
LL_Y=$(echo "scale=3; $XY_RADIUS * c(($XY_ROTX - 180) * 3.141582654/180)" | bc -l); \
LR_Y=$(echo "scale=3; $XY_RADIUS * c(($XY_ROTX - 180) * 3.141582654/180)" | bc -l); \
UR_Y=$(echo "scale=3; $XY_RADIUS * c($XY_ROTX * 3.141582654/180)" | bc -l); \
\
UL_Z=$(echo "scale=3; $UL_Z + $XY_RADIUS * s($XY_ROTX * 3.141582654/180)" | bc -l); \
LL_Z=$(echo "scale=3; $LL_Z + $XY_RADIUS * s(($XY_ROTX - 180) * 3.141582654/180)" | bc -l); \
LR_Z=$(echo "scale=3; $LR_Z + $XY_RADIUS * s(($XY_ROTX - 180) * 3.141582654/180)" | bc -l); \
UR_Z=$(echo "scale=3; $UR_Z + $XY_RADIUS * s($XY_ROTX * 3.141582654/180)" | bc -l); \
\
UL_X=$(echo "scale=3; $UL_X + $XXX" | bc -l); UL_Y=$(echo "scale=3; $UL_Y + $YYY" | bc -l); UL_Z=$(echo "scale=3; $UL_Z + $ZZZ" | bc -l);
LL_X=$(echo "scale=3; $LL_X + $XXX" | bc -l); LL_Y=$(echo "scale=3; $LL_Y + $YYY" | bc -l); LL_Z=$(echo "scale=3; $LL_Z + $ZZZ" | bc -l);
LR_X=$(echo "scale=3; $LR_X + $XXX" | bc -l); LR_Y=$(echo "scale=3; $LR_Y + $YYY" | bc -l); LR_Z=$(echo "scale=3; $LR_Z + $ZZZ" | bc -l);
UR_X=$(echo "scale=3; $UR_X + $XXX" | bc -l); UR_Y=$(echo "scale=3; $UR_Y + $YYY" | bc -l); UR_Z=$(echo "scale=3; $UR_Z + $ZZZ" | bc -l);
\
echo -e "#"$NNN" RGB:" $RRR $GGG $BBB" SCALE:" $XY_SCALE" X-SCALE:" $XY_SCALEX" Y-SCALE:" $XY_SCALEY"\nX-ROTATION:" $XY_ROTX" Y-ROTATION:" $XY_ROTY" XYZ-INCREMENTS:" $XXX $YYY $ZZZ"\nUL X,Y,Z:" $UL_X $UL_Y $UL_Z" UR X,Y,Z:" $UR_X $UR_Y $UR_Z"\nLL X,Y,Z:" $LL_X $LL_Y $LL_Z" LR X,Y,Z:" $LR_X $LR_Y $LR_Z"\n"; done


---


# MATNUMS="`echo {1..29} {36..50} 268 269 {283..285} 294 {296..298} {308..312} 315 316 {321..326} 329 330 {100..129} 131 {133..141} 143 {145..151} 153 154 157 158 168 176 {178..180} {182..200} {208..213} {216..234} 236`"; set -- $MATNUMS; MATNUMS_COUNT=$#; RAND=$((RANDOM % $MATNUMS_COUNT + 1)); eval "RANDNUM=\${$RAND}"; echo -e "\nNUMBER OF ITEMS:" $MATNUMS_COUNT "RANDOM ITEM, #"$RAND", IS "$RANDNUM; echo -e "LISTING OF ALL ITEMS:" $MATNUMS


#-----------------------------
# DEFAULT SCENE FILE
#-----------------------------
#
#
#image {
# resolution %WIDTH% %HEIGHT%
# aa 0 1
# filter mitchell
#}
#
# Background of the image, default is full white
#background {
# color { "sRGB nonlinear" %BACKGROUND_COLOR% }
#}
#
# this is the camera setting. The FieldOfView is narrow to match the camera in LDD
#camera {
# type pinhole
# transform row %LDDCAMERA%
# fov 30
# aspect %ASPECTRATIO%
#}
#
#
# Alternatively, you can define your own camera, by givin the eye and target coordinates
#camera {
# type pinhole
# eye 20 15 25
# target 0 4 0
# up 0 1 0
# fov 60
# aspect 1.333333
#}
#
# A mirror material, you can use it with the Plane to have a shiny plane
#shader {
# name Mirror
# type mirror
# refl 1 0.5 1.5
#}
#
# The default material for the plane, a nice blue shade
#shader {
# name PlaneMaterial
# type diffuse
# diff { "sRGB nonlinear" %PLANE_COLOR% }
#}
#
# Here we define our plane.
#object {
# shader PlaneMaterial
# type plane
# p 0 %LOWESTPOINT% 0
# n 0 1 0
#}
#
# ---------------------------------
# LIGHTS
# ---------------------------------
#
#
# This is the default light, a kind that simulates the natural sun light.
# you can change turbidity to move between soft-blue and hard-red lights
#
#light {
# type sunsky
# up 0 1 0
# east 1 0 0
# sundir 1 1 1
# turbidity 7
# samples 64
#}
#
#
#
# Example of directional light
#light {
# type directional
# source 0 20 0
# target 0 0 0
# radius 10000
# emit 1 1 1
# intensity 1
#}
#
#
# Example of spherical light
#light {
# type spherical
# color 1 1 1
# radiance 20
# center 20 20 0
# radius 5
# samples 32
#}
#
#
# ---------------------------------
# MATERIALS
# ---------------------------------

# LDD COLORS MATERIALS

shader {
name mat1
type shiny
diff { "sRGB nonlinear" 0.95686275 0.95686275 0.95686275 }
refl 0.05
}
shader {
name mat2
type shiny
diff { "sRGB nonlinear" 0.5411765 0.57254905 0.5529412 }
refl 0.05
}

# BASEPLATE - Light Gray
shader
{
name mat3
type shiny
diff 0.5411765 0.57254905 0.5529412
refl 0.0505
}


shader {
name mat4
type shiny
diff { "sRGB nonlinear" 0.9490196 0.4392157 0.36862746 }
refl 0.05
}
shader {
name mat5
type shiny
diff { "sRGB nonlinear" 0.6901961 0.627451 0.43529412 }
refl 0.05
}
shader {
name mat6
type shiny
diff { "sRGB nonlinear" 0.6784314 0.8509804 0.65882355 }
refl 0.05
}
shader {
name mat7
type shiny
diff { "sRGB nonlinear" 1.0 0.52156866 0.0 }
refl 0.05
}
shader {
name mat8
type shiny
diff { "sRGB nonlinear" 0.54901963 0.0 1.0 }
refl 0.05
}
shader {
name mat9
type shiny
diff { "sRGB nonlinear" 0.9647059 0.6627451 0.73333335 }
refl 0.05
}
shader {
name mat10
type glass
eta 1.6
color { "sRGB nonlinear" 1.0 1.0 0.87058824 }
}
shader {
name mat11
type shiny
diff { "sRGB nonlinear" 0.67058825 0.8509804 1.0 }
refl 0.05
}
shader {
name mat12
type shiny
diff { "sRGB nonlinear" 0.84705883 0.42745098 0.17254902 }
refl 0.05
}
shader {
name mat268
type shiny
diff { "sRGB nonlinear" 0.26666668 0.101960786 0.5686275 }
refl 0.05
}
shader {
name mat13
type shiny
diff { "sRGB nonlinear" 1.0 0.5019608 0.078431375 }
refl 0.05
}
shader {
name mat269
type shiny
diff { "sRGB nonlinear" 0.24313726 0.58431375 0.7137255 }
refl 0.05
}
shader {
name mat14
type shiny
diff { "sRGB nonlinear" 0.47058824 0.9882353 0.47058824 }
refl 0.05
}
shader {
name mat15
type shiny
diff { "sRGB nonlinear" 1.0 0.9490196 0.1882353 }
refl 0.05
}
shader {
name mat16
type shiny
diff { "sRGB nonlinear" 1.0 0.5294118 0.6117647 }
refl 0.05
}
shader {
name mat17
type shiny
diff { "sRGB nonlinear" 1.0 0.5803922 0.5803922 }
refl 0.05
}
shader {
name mat18
type shiny
diff { "sRGB nonlinear" 0.73333335 0.5019608 0.3529412 }
refl 0.05
}
shader {
name mat19
type shiny
diff { "sRGB nonlinear" 0.8117647 0.5411765 0.2784314 }
refl 0.05
}
shader {
name mat20
type glass
eta 1.6
color { "sRGB nonlinear" 0.95686275 0.95686275 0.95686275 }
}
shader {
name mat21
type shiny
diff { "sRGB nonlinear" 0.7058824 0.0 0.0 }
refl 0.05
}
shader {
name mat22
type shiny
diff { "sRGB nonlinear" 0.8156863 0.3137255 0.59607846 }
refl 0.05
}
shader {
name mat23
type shiny
diff { "sRGB nonlinear" 0.11764706 0.3529412 0.65882355 }
refl 0.05
}
shader {
name mat24
type shiny
diff { "sRGB nonlinear" 0.98039216 0.78431374 0.039215688 }
refl 0.05
}
shader {
name mat25
type shiny
diff { "sRGB nonlinear" 0.32941177 0.2 0.14117648 }
refl 0.05
}
shader {
name mat26
type shiny
diff { "sRGB nonlinear" 0.07 0.07 0.07 }
refl 0.05
}
shader {
name mat27
type shiny
diff { "sRGB nonlinear" 0.32941177 0.34901962 0.33333334 }
refl 0.05
}
shader {
name mat283
type shiny
diff { "sRGB nonlinear" 1.0 0.7882353 0.58431375 }
refl 0.05
}
shader {
name mat28
type shiny
diff { "sRGB nonlinear" 0.0 0.52156866 0.16862746 }
refl 0.05
}
shader {
name mat284
type glass
eta 1.6
color { "sRGB nonlinear" 0.93921566 0.9078431 0.9490196 }
}
shader {
name mat29
type shiny
diff { "sRGB nonlinear" 0.49803922 0.76862746 0.45882353 }
refl 0.05
}
shader {
name mat285
type glass
eta 1.6
color { "sRGB nonlinear" 0.9470588 0.9196078 0.92745095 }
}
shader {
name mat36
type shiny
diff { "sRGB nonlinear" 0.99215686 0.7647059 0.5137255 }
refl 0.05
}
shader {
name mat37
type shiny
diff { "sRGB nonlinear" 0.34509805 0.67058825 0.25490198 }
refl 0.05
}
shader {
name mat38
type shiny
diff { "sRGB nonlinear" 0.5686275 0.3137255 0.10980392 }
refl 0.05
}
shader {
name mat294
type glass
eta 1.6
color { "sRGB nonlinear" 0.91764706 0.9313725 0.7705882 }
}
shader {
name mat39
type shiny
diff { "sRGB nonlinear" 0.6862745 0.74509805 0.8392157 }
refl 0.05
}
shader {
name mat40
type glass
eta 1.6
color { "sRGB nonlinear" 0.96666664 0.96666664 0.96666664 }
}
shader {
name mat296
type shiny
diff { "sRGB nonlinear" 0.6784314 0.6784314 0.6784314 }
refl 0.05
}
shader {
name mat41
type glass
eta 1.6
color { "sRGB nonlinear" 0.8607843 0.5764706 0.5 }
}

# WARM GOLD
shader
{
name mat297
type uber
diff { "sRGB nonlinear" 0.6666667 0.49803922 0.18039216 }
diff.blend 0
spec { "sRGB nonlinear" 1.0 0.8 0.5 }
spec.blend 0
glossy 1
samples 1
}

shader {
name mat42
type glass
eta 1.6
color { "sRGB nonlinear" 0.8392157 0.93333334 0.9647059 }
}
#shader {
#name mat298
#type custom
#class bluerender.customshaders.ColorSilverDrumLaquered
#}
shader {
name mat43
type glass
eta 1.6
color { "sRGB nonlinear" 0.73333335 0.85882354 0.9 }
}
shader {
name mat44
type glass
eta 1.6
color { "sRGB nonlinear" 0.99019605 0.972549 0.68235296 }
}
shader {
name mat45
type shiny
diff { "sRGB nonlinear" 0.5921569 0.79607844 0.8509804 }
refl 0.05
}
shader {
name mat47
type glass
eta 1.6
color { "sRGB nonlinear" 0.9078431 0.7137255 0.654902 }
}
shader {
name mat48
type glass
eta 1.6
color { "sRGB nonlinear" 0.7254902 0.85294116 0.6960784 }
}
shader {
name mat49
type glass
eta 1.6
color { "sRGB nonlinear" 0.99019605 0.972549 0.6784314 }
}

# PHOSPHORESCENT WHITE
shader
{
name mat50
type phong
diff 2 2 2
spec 1.5 1.5 1.5 0
samples 64
}

shader {
name mat308
type shiny
diff { "sRGB nonlinear" 0.21568628 0.12941177 0.0 }
refl 0.05
}


# METALIZED SILVER
#shader
#{
# name mat309
# type custom
# class bluerender.customshaders.MetalizedSilver
#}

# METALIZED GOLD
#shader
#{
# name mat310
# type custom
# class bluerender.customshaders.MetalizedGold
#}



shader {
name mat311
type glass
eta 1.6
color { "sRGB nonlinear" 0.84313726 0.9117647 0.6372549 }
}
shader {
name mat312
type shiny
diff { "sRGB nonlinear" 0.6666667 0.49019608 0.33333334 }
refl 0.05
}


# SILVER METALLIC
shader
{
name mat315
type uber
diff { "sRGB nonlinear" 0.34901963 0.34901963 0.34901963 }
diff.blend 0
spec { "sRGB nonlinear" 0.8 0.8 0.8 }
spec.blend 0
glossy 100
samples 1
}


# TITANIUM METALLIC
shader
{
name mat316
type phong
diff { "sRGB nonlinear" 0.24313726 0.23529412 0.22352941 }
spec { "sRGB nonlinear" 0.3 0.3 0.3 } 200
samples 1
}
shader {
name mat321
type shiny
diff { "sRGB nonlinear" 0.27450982 0.60784316 0.7647059 }
refl 0.05
}
shader {
name mat322
type shiny
diff { "sRGB nonlinear" 0.40784314 0.7647059 0.8862745 }
refl 0.05
}

# BASEPLATE - Black
shader
{
name mat323
type uber
diff { "sRGB nonlinear" 0.07 0.07 0.07 }
diff.blend 0
spec .1 .1 .1
spec.blend 0
glossy 1
samples 4
}


shader {
name mat324
type shiny
diff { "sRGB nonlinear" 0.627451 0.43137255 0.7254902 }
refl 0.05
}
shader {
name mat325
type shiny
diff { "sRGB nonlinear" 0.8039216 0.6431373 0.87058824 }
refl 0.05
}
shader {
name mat326
type shiny
diff { "sRGB nonlinear" 0.8862745 0.9764706 0.6039216 }
refl 0.05
}
#shader {
#name mat329
#type custom
#class bluerender.customshaders.WhiteGlow
#}
shader {
name mat330
type shiny
diff { "sRGB nonlinear" 0.46666667 0.46666667 0.30588236 }
refl 0.05
}
shader {
name mat100
type shiny
diff { "sRGB nonlinear" 0.9764706 0.7176471 0.64705884 }
refl 0.05
}
shader {
name mat101
type shiny
diff { "sRGB nonlinear" 0.9411765 0.42745098 0.38039216 }
refl 0.05
}
shader {
name mat102
type shiny
diff { "sRGB nonlinear" 0.4509804 0.5882353 0.78431374 }
refl 0.05
}
shader {
name mat103
type shiny
diff { "sRGB nonlinear" 0.7372549 0.7058824 0.64705884 }
refl 0.05
}
shader {
name mat104
type shiny
diff { "sRGB nonlinear" 0.40392157 0.12156863 0.5058824 }
refl 0.05
}
shader {
name mat105
type shiny
diff { "sRGB nonlinear" 0.9607843 0.5254902 0.14117648 }
refl 0.05
}
shader {
name mat106
type shiny
diff { "sRGB nonlinear" 0.8392157 0.4745098 0.13725491 }
refl 0.05
}
shader {
name mat107
type shiny
diff { "sRGB nonlinear" 0.023529412 0.6156863 0.62352943 }
refl 0.05
}
shader {
name mat108
type shiny
diff { "sRGB nonlinear" 0.3372549 0.2784314 0.18431373 }
refl 0.05
}
shader {
name mat109
type shiny
diff { "sRGB nonlinear" 0.0 0.078431375 0.078431375 }
refl 0.05
}
shader {
name mat110
type shiny
diff { "sRGB nonlinear" 0.14901961 0.27450982 0.6039216 }
refl 0.05
}
shader {
name mat111
type glass
eta 2
color { "sRGB nonlinear" 0.8666667 0.8490196 0.8098039 }
}
shader {
name mat112
type shiny
diff { "sRGB nonlinear" 0.28235295 0.38039216 0.6745098 }
refl 0.05
}
shader {
name mat113
type glass
eta 1.6
color { "sRGB nonlinear" 0.99607843 0.77843136 0.90588236 }
}
shader {
name mat114
type glass
eta 1.6
color { "sRGB nonlinear" 0.9980392 0.5 0.9980392 }
}
shader {
name mat115
type shiny
diff { "sRGB nonlinear" 0.7176471 0.83137256 0.14509805 }
refl 0.05
}
shader {
name mat116
type shiny
diff { "sRGB nonlinear" 0.0 0.6666667 0.6431373 }
refl 0.05
}
shader {
name mat117
type glass
eta 1.6
color { "sRGB nonlinear" 0.9843137 0.9843137 0.9843137 }
}
shader {
name mat118
type shiny
diff { "sRGB nonlinear" 0.6117647 0.8392157 0.8 }
refl 0.05
}
shader {
name mat119
type shiny
diff { "sRGB nonlinear" 0.64705884 0.7921569 0.09411765 }
refl 0.05
}
shader {
name mat120
type shiny
diff { "sRGB nonlinear" 0.87058824 0.91764706 0.57254905 }
refl 0.05
}
shader {
name mat121
type shiny
diff { "sRGB nonlinear" 0.972549 0.6039216 0.22352941 }
refl 0.05
}
shader {
name mat122
type shiny
diff { "sRGB nonlinear" 0.99607843 0.79607844 0.59607846 }
refl 0.05
}
shader {
name mat123
type shiny
diff { "sRGB nonlinear" 0.93333334 0.32941177 0.20392157 }
refl 0.05
}
shader {
name mat124
type shiny
diff { "sRGB nonlinear" 0.5647059 0.12156863 0.4627451 }
refl 0.05
}
shader {
name mat125
type shiny
diff { "sRGB nonlinear" 0.9764706 0.654902 0.46666667 }
refl 0.05
}
shader {
name mat126
type glass
eta 1.6
color { "sRGB nonlinear" 0.80588233 0.7921569 0.8901961 }
}
shader {
name mat127
type shiny
diff { "sRGB nonlinear" 0.87058824 0.6745098 0.4 }
refl 0.05
}
shader {
name mat128
type shiny
diff { "sRGB nonlinear" 0.6784314 0.38039216 0.2509804 }
refl 0.05
}
shader {
name mat129
type shiny
diff { "sRGB nonlinear" 0.2627451 0.32941177 0.5764706 }
refl 0.05
}
shader {
name mat131
type shiny
diff { "sRGB nonlinear" 0.627451 0.627451 0.627451 }
refl 0.05
}
shader {
name mat133
type shiny
diff { "sRGB nonlinear" 0.9372549 0.34509805 0.15686275 }
refl 0.05
}
shader {
name mat134
type shiny
diff { "sRGB nonlinear" 0.8039216 0.8666667 0.20392157 }
refl 0.05
}
shader {
name mat135
type shiny
diff { "sRGB nonlinear" 0.4392157 0.5058824 0.6039216 }
refl 0.05
}
shader {
name mat136
type shiny
diff { "sRGB nonlinear" 0.45882353 0.39607844 0.49019608 }
refl 0.05
}
shader {
name mat137
type shiny
diff { "sRGB nonlinear" 0.95686275 0.5058824 0.2784314 }
refl 0.05
}
shader {
name mat138
type shiny
diff { "sRGB nonlinear" 0.5372549 0.49019608 0.38431373 }
refl 0.05
}

# COPPER
shader
{
name mat139
type uber
diff { "sRGB nonlinear" 0.4627451 0.3019608 0.23137255 }
diff.blend 0
spec { "sRGB nonlinear" 1.0 0.9 0.8 }
spec.blend 0
glossy 100
samples 1
}


shader {
name mat140
type shiny
diff { "sRGB nonlinear" 0.09803922 0.19607843 0.3529412 }
refl 0.05
}
shader {
name mat141
type shiny
diff { "sRGB nonlinear" 0.0 0.27058825 0.101960786 }
refl 0.05
}
shader {
name mat143
type glass
eta 1.6
color { "sRGB nonlinear" 0.9078431 0.9490196 1.0 }
}

# METALLIC SAND BLUE
shader
{
name mat145
type uber
diff { "sRGB nonlinear" 0.35686275 0.45882353 0.5647059 }
diff.blend 0
spec { "sRGB nonlinear" .6 .7 0.8 }
spec.blend 0
glossy 20
samples 1
}


shader {
name mat146
type shiny
diff { "sRGB nonlinear" 0.5058824 0.45882353 0.5647059 }
refl 0.05
}

# METALLIC SAND YELLOW
shader
{
name mat147
type uber
diff { "sRGB nonlinear" 0.5137255 0.44705883 0.30980393 }
diff.blend 0
spec { "sRGB nonlinear" .7 .6 .5 }
spec.blend 0
glossy 20
samples 1
}


shader {
name mat148
type shiny
diff { "sRGB nonlinear" 0.28235295 0.3019608 0.28235295 }
refl 0.05
}
shader {
name mat149
type shiny
diff { "sRGB nonlinear" 0.039215688 0.07450981 0.15294118 }
refl 0.05
}
shader {
name mat150
type shiny
diff { "sRGB nonlinear" 0.59607846 0.60784316 0.6 }
refl 0.05
}
shader {
name mat151
type shiny
diff { "sRGB nonlinear" 0.4392157 0.5568628 0.4862745 }
refl 0.05
}
shader {
name mat153
type shiny
diff { "sRGB nonlinear" 0.53333336 0.3764706 0.36862746 }
refl 0.05
}
shader {
name mat154
type shiny
diff { "sRGB nonlinear" 0.44705883 0.0 0.07058824 }
refl 0.05
}
shader {
name mat157
type glass
eta 1.6
color { "sRGB nonlinear" 1.0 0.9823529 0.68039215 }
}
shader {
name mat158
type glass
eta 1.6
color { "sRGB nonlinear" 0.972549 0.77843136 0.8666667 }
}
shader {
name mat168
type shiny
diff { "sRGB nonlinear" 0.3764706 0.3372549 0.29803923 }
refl 0.05
}
shader {
name mat176
type shiny
diff { "sRGB nonlinear" 0.5803922 0.31764707 0.28235295 }
refl 0.05
}
shader {
name mat178
type shiny
diff { "sRGB nonlinear" 0.67058825 0.40392157 0.22745098 }
refl 0.05
}
#shader {
#name mat179
#type custom
#class bluerender.customshaders.SilverFlipFlop
#}
shader {
name mat180
type shiny
diff { "sRGB nonlinear" 0.8666667 0.59607846 0.18039216 }
refl 0.05
}
shader {
name mat182
type glass
eta 1.6
color { "sRGB nonlinear" 0.9411765 0.7764706 0.51960784 }
}
shader {
name mat183
type shiny
diff { "sRGB nonlinear" 0.9647059 0.9490196 0.8745098 }
refl 0.05
}
shader {
name mat184
type shiny
diff { "sRGB nonlinear" 0.8392157 0.0 0.14901961 }
refl 0.05
}
shader {
name mat185
type shiny
diff { "sRGB nonlinear" 0.0 0.34901962 0.6392157 }
refl 0.05
}
shader {
name mat186
type shiny
diff { "sRGB nonlinear" 0.0 0.5568628 0.23529412 }
refl 0.05
}
shader {
name mat187
type shiny
diff { "sRGB nonlinear" 0.34117648 0.22352941 0.17254902 }
refl 0.05
}
shader {
name mat188
type shiny
diff { "sRGB nonlinear" 0.0 0.61960787 0.80784315 }
refl 0.05
}
shader {
name mat189
type shiny
diff { "sRGB nonlinear" 0.6745098 0.50980395 0.2784314 }
refl 0.05
}
shader {
name mat190
type shiny
diff { "sRGB nonlinear" 1.0 0.8117647 0.043137256 }
refl 0.05
}
shader {
name mat191
type shiny
diff { "sRGB nonlinear" 0.9882353 0.6745098 0.0 }
refl 0.05
}
shader {
name mat192
type shiny
diff { "sRGB nonlinear" 0.37254903 0.19215687 0.03529412 }
refl 0.05
}
shader {
name mat193
type shiny
diff { "sRGB nonlinear" 0.9254902 0.26666668 0.11372549 }
refl 0.05
}
shader {
name mat194
type shiny
diff { "sRGB nonlinear" 0.5882353 0.5882353 0.5882353 }
refl 0.05
}
shader {
name mat195
type shiny
diff { "sRGB nonlinear" 0.10980392 0.34509805 0.654902 }
refl 0.05
}
shader {
name mat196
type shiny
diff { "sRGB nonlinear" 0.05490196 0.24313726 0.6039216 }
refl 0.05
}
shader {
name mat197
type shiny
diff { "sRGB nonlinear" 0.19215687 0.16862746 0.5294118 }
refl 0.05
}
shader {
name mat198
type shiny
diff { "sRGB nonlinear" 0.5411765 0.07058824 0.65882355 }
refl 0.05
}
shader {
name mat199
type shiny
diff { "sRGB nonlinear" 0.39215687 0.39215687 0.39215687 }
refl 0.05
}
shader {
name mat200
type shiny
diff { "sRGB nonlinear" 0.41568628 0.4745098 0.26666668 }
refl 0.05
}
shader {
name mat208
type shiny
diff { "sRGB nonlinear" 0.78431374 0.78431374 0.78431374 }
refl 0.05
}
shader {
name mat209
type shiny
diff { "sRGB nonlinear" 0.6431373 0.4627451 0.14117648 }
refl 0.05
}
shader {
name mat210
type shiny
diff { "sRGB nonlinear" 0.27450982 0.5411765 0.37254903 }
refl 0.05
}
shader {
name mat211
type shiny
diff { "sRGB nonlinear" 0.24705882 0.7137255 0.6627451 }
refl 0.05
}
shader {
name mat212
type shiny
diff { "sRGB nonlinear" 0.6156863 0.7647059 0.96862745 }
refl 0.05
}
shader {
name mat213
type shiny
diff { "sRGB nonlinear" 0.2784314 0.43529412 0.7137255 }
refl 0.05
}
shader {
name mat216
type shiny
diff { "sRGB nonlinear" 0.5294118 0.16862746 0.09019608 }
refl 0.05
}
shader {
name mat217
type shiny
diff { "sRGB nonlinear" 0.48235294 0.3647059 0.25490198 }
refl 0.05
}
shader {
name mat218
type shiny
diff { "sRGB nonlinear" 0.5568628 0.33333334 0.5921569 }
refl 0.05
}
shader {
name mat219
type shiny
diff { "sRGB nonlinear" 0.3372549 0.30588236 0.6156863 }
refl 0.05
}
shader {
name mat220
type shiny
diff { "sRGB nonlinear" 0.5686275 0.58431375 0.7921569 }
refl 0.05
}
shader {
name mat221
type shiny
diff { "sRGB nonlinear" 0.827451 0.20784314 0.6156863 }
refl 0.05
}
shader {
name mat222
type shiny
diff { "sRGB nonlinear" 1.0 0.61960787 0.8039216 }
refl 0.05
}
shader {
name mat223
type shiny
diff { "sRGB nonlinear" 0.94509804 0.47058824 0.5019608 }
refl 0.05
}
shader {
name mat224
type shiny
diff { "sRGB nonlinear" 0.9529412 0.7882353 0.53333336 }
refl 0.05
}
shader {
name mat225
type shiny
diff { "sRGB nonlinear" 0.98039216 0.6627451 0.39215687 }
refl 0.05
}
shader {
name mat226
type shiny
diff { "sRGB nonlinear" 1.0 0.9254902 0.42352942 }
refl 0.05
}
shader {
name mat227
type glass
eta 1.6
color { "sRGB nonlinear" 0.89411765 0.9529412 0.76666665 }
}
shader {
name mat228
type glass
eta 1.6
color { "sRGB nonlinear" 0.6666667 0.8235294 0.84313726 }
}
shader {
name mat229
type glass
eta 1.6
color { "sRGB nonlinear" 0.8372549 0.91568625 0.9352941 }
}
shader {
name mat230
type glass
eta 1.6
color { "sRGB nonlinear" 0.9627451 0.81960785 0.89411765 }
}
shader {
name mat231
type glass
eta 1.6
color { "sRGB nonlinear" 0.9941176 0.85882354 0.7137255 }
}
shader {
name mat232
type shiny
diff { "sRGB nonlinear" 0.46666667 0.7882353 0.84705883 }
refl 0.05
}
shader {
name mat233
type shiny
diff { "sRGB nonlinear" 0.3764706 0.7294118 0.4627451 }
refl 0.05
}
shader {
name mat234
type glass
eta 1.6
color { "sRGB nonlinear" 0.99215686 0.95490193 0.7823529 }
}
shader {
name mat236
type glass
eta 1.6
color { "sRGB nonlinear" 0.7764706 0.7254902 0.8509804 }
}