1475 lines
35 KiB
PHP
1475 lines
35 KiB
PHP
// This work is licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License.
|
|
// To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/ or send a
|
|
// letter to Creative Commons, 444 Castro Street, Suite 900, Mountain View, California, 94041, USA.
|
|
|
|
// Persistence of Vision Ray Tracer version 3.5 Include File
|
|
// File: textures.inc
|
|
// Last updated: 2001.7.25
|
|
// Description:
|
|
|
|
#ifndef(Textures_Inc_Temp)
|
|
#declare Textures_Inc_Temp = version;
|
|
#version 3.5;
|
|
|
|
/* Standard textures include file
|
|
|
|
Contents:
|
|
===========================
|
|
DMFWood6
|
|
NBglass (Norm Bowler)
|
|
NBoldglass (Norm Bowler)
|
|
NBwinebottle (Norm Bowler)
|
|
NBbeerbottle (Norm Bowler)
|
|
Ruby_Glass (after Norm Bowler)
|
|
Dark_Green_Glass (after Norm Bowler)
|
|
Yellow_Glass (after Norm Bowler)
|
|
Orange_Glass (after Norm Bowler)
|
|
Vicks_Bottle_Glass (after Norm Bowler)
|
|
Soft_Silver (Dan Farmer)
|
|
New_Penny (Dan Farmer)
|
|
Tinny_Brass (Dan Farmer)
|
|
Gold_Nugget (Dan Farmer)
|
|
Aluminum (Dan Farmer)
|
|
Bright_Bronze (Dan Farmer)
|
|
Lightening1 (Dan Farmer)
|
|
Lightening2 (Dan Farmer)
|
|
Brushed_Aluminum (Dan Farmer)
|
|
Starfield (Jeff Burton )
|
|
Shadow_Clouds (Bill Pulver)
|
|
*/
|
|
|
|
#include "finish.inc"
|
|
|
|
#ifdef(View_POV_Include_Stack)
|
|
#debug "including textures.inc\n"
|
|
#end
|
|
|
|
|
|
//*****************************************************************************
|
|
// STONE PIGMENTS
|
|
//*****************************************************************************
|
|
|
|
#declare Jade_Map =
|
|
color_map {
|
|
[0.0 rgb <0.1, 0.6, 0.1>]
|
|
[0.8 rgb <0.0, 0.3, 0.0>]
|
|
[0.8 rgb <0.1, 0.6, 0.1>]
|
|
[1.0 rgb <0.0, 0.2, 0.0>]
|
|
}
|
|
|
|
// Drew Wells' superb Jade. Color map works nicely with other textures, too.
|
|
#declare Jade =
|
|
pigment {
|
|
marble
|
|
turbulence 1.8
|
|
color_map { Jade_Map }
|
|
}
|
|
|
|
#declare Red_Marble_Map =
|
|
color_map {
|
|
[0.0 rgb <0.8, 0.8, 0.6>]
|
|
[0.8 rgb <0.8, 0.4, 0.4>]
|
|
[1.0 rgb <0.8, 0.2, 0.2>]
|
|
}
|
|
// Classic white marble with red veins. Over-worked, like checkers.
|
|
#declare Red_Marble =
|
|
pigment {
|
|
marble
|
|
color_map { Red_Marble_Map }
|
|
turbulence 1
|
|
}
|
|
|
|
#declare White_Marble_Map =
|
|
color_map {
|
|
[0.0 rgb <0.9, 0.9, 0.9>]
|
|
[0.8 rgb <0.5, 0.5, 0.5>]
|
|
[1.0 rgb <0.2, 0.2, 0.2>]
|
|
}
|
|
|
|
// White marble with black veins.
|
|
#declare White_Marble =
|
|
pigment {
|
|
marble
|
|
turbulence 1
|
|
color_map { White_Marble_Map }
|
|
}
|
|
|
|
// Light blue and black marble with a thin red vein
|
|
// Try changing LBlue and Vein below to modify the marble.
|
|
//#declare LBlue = rgb <0.0, 0.6, 0.6>;
|
|
//#declare Vein = rgb <0.6, 0.0, 0.0>;
|
|
//These variables commented out to avoid possibility of name clashes
|
|
|
|
#declare Blood_Marble_Map =
|
|
color_map {
|
|
[0.0 color 0]
|
|
[0.8 color rgb <0.0, 0.6, 0.6>]
|
|
[0.9 color rgb <0.6, 0.0, 0.0>]
|
|
// [0.8 color LBlue]
|
|
// [0.9 color Vein]
|
|
[1.0 color 0]
|
|
}
|
|
#declare Blood_Marble =
|
|
pigment {
|
|
marble
|
|
color_map { Blood_Marble_Map }
|
|
turbulence 2.3
|
|
}
|
|
|
|
#declare Blue_Agate_Map =
|
|
color_map {
|
|
[0.5 rgb <0.30, 0.30, 0.50>]
|
|
[0.55 rgb <0.20, 0.20, 0.30>]
|
|
[0.6 rgb <0.25, 0.25, 0.35>]
|
|
[0.7 rgb <0.15, 0.15, 0.26>]
|
|
[0.8 rgb <0.10, 0.10, 0.20>]
|
|
[0.9 rgb <0.30, 0.30, 0.50>]
|
|
[1.0 rgb <0.10, 0.10, 0.20>]
|
|
}
|
|
|
|
// a grey blue agate -- kind of purplish.
|
|
#declare Blue_Agate =
|
|
pigment {
|
|
agate
|
|
color_map { Blue_Agate_Map }
|
|
}
|
|
|
|
#declare Sapphire_Agate_Map =
|
|
color_map {
|
|
[0.0 rgb <0.0, 0.0, 0.9>]
|
|
[0.3 rgb <0.0, 0.0, 0.8>]
|
|
[1.0 rgb <0.0, 0.0, 0.4>]
|
|
}
|
|
|
|
|
|
// Deep blue agate -- almost glows.
|
|
#declare Sapphire_Agate =
|
|
pigment {
|
|
agate
|
|
color_map { Sapphire_Agate_Map }
|
|
}
|
|
|
|
#declare Brown_Agate_Map =
|
|
color_map {
|
|
[0.0 rgb 0]
|
|
[0.5 rgb <0.9, 0.7, 0.6>]
|
|
[0.6 rgb <0.9, 0.7, 0.4>]
|
|
[1.0 rgb <0.7, 0.4, 0.2>]
|
|
}
|
|
|
|
// Brown and white agate -- very pretty.
|
|
#declare Brown_Agate =
|
|
pigment {
|
|
agate
|
|
color_map { Brown_Agate_Map }
|
|
}
|
|
|
|
#declare Pink_Granite_Map =
|
|
color_map {
|
|
[0.4 rgb 0]
|
|
[0.4 rgb <0.85, 0.85, 0.95>]
|
|
[0.45 rgb <0.85, 0.85, 0.95>]
|
|
[0.5 rgb <0.75, 0.75, 0.75>]
|
|
[0.55 rgb <0.82, 0.57, 0.46>]
|
|
[0.8 rgb <0.82, 0.57, 0.46>]
|
|
[1.0 rgb <1.00, 0.50, 0.00>]
|
|
}
|
|
|
|
#declare Pink_Granite =
|
|
pigment {
|
|
granite
|
|
color_map { Pink_Granite_Map }
|
|
}
|
|
|
|
//*****************************************************************************
|
|
// STONE TEXTURES
|
|
//*****************************************************************************
|
|
|
|
// Gray-pink alabaster or marble. Layers are scaled for a unit object
|
|
// and relative to each other.
|
|
// NOTE: This texture has very tiny dark blue specks that are often
|
|
// mistaken for rendering errors. They are not errors. Just a
|
|
// strange texture design.
|
|
#declare PinkAlabaster =
|
|
// Underlying surface is very subtly mottled with bozo
|
|
texture {
|
|
pigment {
|
|
bozo
|
|
turbulence 0.25
|
|
color_map {
|
|
[0 rgb <0.9, 0.75, 0.75>]
|
|
[1 rgb <0.6, 0.6, 0.6 >]
|
|
}
|
|
scale 0.4
|
|
}
|
|
finish{ ambient 0.25 }
|
|
}
|
|
|
|
// Second layer texture has some transmit values, yet a fair amount of color
|
|
// Viening is kept quite thin in color map and by the largish scale.
|
|
texture {
|
|
pigment {
|
|
granite
|
|
color_map {
|
|
[0.0 rgbt <0.52, 0.39, 0.39, 1.0>]
|
|
[0.9 rgbt <0.52, 0.39, 0.39, 0.5>]
|
|
[0.9 rgbt <0.42, 0.14, 0.55, 0.0>]
|
|
}
|
|
scale 2
|
|
}
|
|
finish {
|
|
specular 1
|
|
roughness 0.0001
|
|
phong 0.25
|
|
phong_size 75
|
|
brilliance 4
|
|
}
|
|
}
|
|
|
|
|
|
//*****************************************************************************
|
|
// SKY PIGMENTS
|
|
//*****************************************************************************
|
|
#declare Blue_Sky_Map =
|
|
color_map {
|
|
[0.5 rgb <0.25, 0.25, 0.5>]
|
|
[0.6 rgb 0.7]
|
|
[1.0 rgb 0.3]
|
|
}
|
|
|
|
// Basic Blue Sky w/ clouds.
|
|
#declare Blue_Sky =
|
|
pigment {
|
|
bozo
|
|
color_map { Blue_Sky_Map }
|
|
turbulence 0.3
|
|
}
|
|
|
|
// Bright Blue Sky w/ very white clouds.
|
|
#declare Bright_Blue_Sky =
|
|
pigment {
|
|
bozo
|
|
turbulence 0.56
|
|
color_map {
|
|
[0.5 rgb <0.5, 0.5, 1.0>]
|
|
[0.6 rgb 1.0]
|
|
[1.0 rgb 0.5]
|
|
}
|
|
}
|
|
|
|
// Another sky
|
|
#declare Blue_Sky2 =
|
|
pigment {
|
|
agate
|
|
color_map {
|
|
[0.3 rgb <0, 0, 1>]
|
|
[1.0 rgb 1]
|
|
}
|
|
scale .75
|
|
}
|
|
|
|
// Small puffs of white clouds
|
|
#declare Blue_Sky3 =
|
|
pigment {
|
|
granite
|
|
turbulence 0.1
|
|
color_map {
|
|
[0.3 rgb <0, 0, 1>]
|
|
[1.0 rgb 1]
|
|
}
|
|
scale .75
|
|
}
|
|
|
|
// Red sky w/ yellow clouds -- very surreal.
|
|
#declare Blood_Sky =
|
|
pigment {
|
|
bozo
|
|
turbulence 0.5
|
|
color_map {
|
|
[0.0 rgb <0.9, 0.700, 0.0>]
|
|
[0.5 rgb <0.3, 0.200, 0.0>]
|
|
[0.5 rgb <0.6, 0.025, 0.0>]
|
|
[0.6 rgb <0.9, 0.700, 0.0>]
|
|
[0.6 rgb <0.6, 0.025, 0.0>]
|
|
}
|
|
}
|
|
|
|
// Black sky with red and purple clouds
|
|
// Try adding turbulence values from 0.1 - 5.0 -- CdW
|
|
#declare Apocalypse =
|
|
pigment {
|
|
bozo
|
|
color_map {
|
|
[0.0 rgb <0.8, 0.0, 0.0>]
|
|
[0.4 rgb <0.4, 0.0, 0.4>]
|
|
[0.6 rgb <0.0, 0.0, 0.2>]
|
|
[1.0 rgb 0.0]
|
|
}
|
|
}
|
|
|
|
// White clouds w/ transparent sky.
|
|
#declare Clouds =
|
|
pigment {
|
|
bozo
|
|
color_map {
|
|
[0.1 rgbt <0.8, 0.8, 0.8, 0.0>]
|
|
[0.5 rgbt <1.0, 1.0, 1.0, 1.0>]
|
|
}
|
|
}
|
|
|
|
#declare FBM_Clouds =
|
|
pigment {
|
|
bozo
|
|
turbulence 0.65
|
|
octaves 6
|
|
omega 0.7
|
|
lambda 2
|
|
color_map {
|
|
[0.0 rgb 0.85]
|
|
[0.1 rgb 0.75]
|
|
[0.5 rgbt 1]
|
|
}
|
|
scale <6, 1, 6>
|
|
}
|
|
|
|
#declare Shadow_Clouds =
|
|
texture { // The blue sky background for the clouds
|
|
pigment { rgb <0.196078, 0.6, 0.8> }
|
|
finish { ambient 0.7 diffuse 0 }
|
|
}
|
|
texture { // The upper part of the clouds
|
|
pigment { FBM_Clouds }
|
|
finish { ambient 1.0 diffuse 0 }
|
|
}
|
|
texture { // The darker underside of the clouds
|
|
pigment { FBM_Clouds translate -0.15*y }
|
|
finish { ambient 0.6 diffuse 0 }
|
|
}
|
|
|
|
|
|
|
|
//*****************************************************************************
|
|
// WOODEN PIGMENTS
|
|
//*****************************************************************************
|
|
|
|
// Several wooden pigments by Tom Price:
|
|
// A light reddish wood.
|
|
#declare Cherry_Wood =
|
|
pigment {
|
|
wood
|
|
turbulence 0.3
|
|
color_map {
|
|
[0.8 rgb <0.66, 0.31, 0.20>]
|
|
[0.8 rgb <0.40, 0.13, 0.06>]
|
|
[1.0 rgb <0.20, 0.06, 0.03>]
|
|
}
|
|
}
|
|
|
|
// A light tan wood with,ish rings.
|
|
#declare Pine_Wood =
|
|
pigment {
|
|
wood
|
|
turbulence 0.2
|
|
color_map {
|
|
[0.8 rgb <1.0, 0.72, 0.25>]
|
|
[0.8 rgb <0.5, 0.50, 0.06>]
|
|
[1.0 rgb <0.4, 0.40, 0.03>]
|
|
}
|
|
}
|
|
|
|
// Dark wood with a,ish hue to it.
|
|
#declare Dark_Wood =
|
|
pigment {
|
|
wood
|
|
turbulence 0.2
|
|
color_map {
|
|
[0.8 rgb <0.43, 0.24, 0.05>]
|
|
[0.8 rgb <0.40, 0.33, 0.06>]
|
|
[1.0 rgb <0.20, 0.03, 0.03>]
|
|
}
|
|
}
|
|
|
|
// Light tan wood with brown rings.
|
|
#declare Tan_Wood =
|
|
pigment {
|
|
wood
|
|
turbulence 0.1
|
|
color_map {
|
|
[0.8 rgb <0.88, 0.60, 0.30>]
|
|
[0.8 rgb <0.60, 0.40, 0.20>]
|
|
[1.0 rgb <0.40, 0.30, 0.20>]
|
|
}
|
|
}
|
|
|
|
// A very pale wood with tan rings -- kind of balsa-ish.
|
|
#declare White_Wood =
|
|
pigment {
|
|
wood
|
|
turbulence 0.6
|
|
color_map {
|
|
[0.0 rgb <0.93, 0.71, 0.53>]
|
|
[0.8 rgb <0.98, 0.81, 0.60>]
|
|
[0.8 rgb <0.60, 0.33, 0.27>]
|
|
[1.0 rgb <0.70, 0.60, 0.23>]
|
|
}
|
|
}
|
|
|
|
// Brown wood - looks stained.
|
|
#declare Tom_Wood =
|
|
pigment {
|
|
wood
|
|
turbulence 0.31
|
|
color_map {
|
|
[0.8 rgb < 0.7, 0.3, 0.0>]
|
|
[0.8 rgb < 0.5, 0.2, 0.0>]
|
|
[1.0 rgb < 0.4, 0.1, 0.0>]
|
|
}
|
|
}
|
|
|
|
// The scaling in these definitions is relative to a unit-sized object
|
|
// (radius 1). Note that woods are functionally equivilent to a log lying
|
|
// along the z axis. For best results, think like a woodcutter trying to
|
|
// extract the nicest board out of that log. A little tilt along the x axis
|
|
// will give elliptical rings of grain like you'd expect to find on most
|
|
// boards. Experiment.
|
|
// (The first five came from DODEC2.POV in the POV Scenefile Library.)
|
|
#declare DMFWood1 =
|
|
pigment {
|
|
wood
|
|
turbulence 0.04
|
|
octaves 3
|
|
scale <0.05, .05, 1>
|
|
color_map {
|
|
[0.1 rgb <0.60, 0.30, 0.18>]
|
|
[0.9 rgb <0.30, 0.15, 0.09>]
|
|
}
|
|
}
|
|
|
|
#declare DMFWood2 =
|
|
pigment {
|
|
wood
|
|
turbulence 0.03
|
|
octaves 4
|
|
scale <0.05, .05, 1>
|
|
color_map {
|
|
[0.1 rgb <0.52, 0.37, 0.26>]
|
|
[0.9 rgb <0.42, 0.26, 0.15>]
|
|
}
|
|
}
|
|
|
|
#declare DMFWood3 =
|
|
pigment {
|
|
wood
|
|
turbulence 0.05
|
|
octaves 2
|
|
scale <0.05, .05, 1>
|
|
color_map {
|
|
[0.1 rgb <0.4, 0.133, 0.066>]
|
|
[0.9 rgb <0.2, 0.065, 0.033>]
|
|
}
|
|
}
|
|
|
|
#declare DMFWood4 =
|
|
pigment {
|
|
wood
|
|
turbulence 0.04
|
|
octaves 3
|
|
scale <0.05, .05, 1>
|
|
color_map {
|
|
[0.1 rgb <0.888, 0.600, 0.3>]
|
|
[0.9 rgb <0.600, 0.400, 0.2>]
|
|
}
|
|
}
|
|
|
|
#declare DMFWood5 =
|
|
pigment {
|
|
wood
|
|
turbulence 0.05
|
|
octaves 6
|
|
scale <0.075, .075, 1>
|
|
color_map {
|
|
[0.1 rgb <0.30, 0.10, 0.050>]
|
|
[0.9 rgb <0.25, 0.07, 0.038>]
|
|
}
|
|
}
|
|
|
|
// This is a three-layer wood texture. Renders rather slowly because of
|
|
// the transparent layers and the two layers of turbulence, but it looks
|
|
// great. Try other colors of "varnish" for simple variations.
|
|
#declare DMFWood6 =
|
|
texture {
|
|
pigment {
|
|
wood turbulence 0.04
|
|
octaves 3
|
|
scale <0.05, .05, 1>
|
|
color_map {
|
|
[0.1 rgb <0.88, 0.60, 0.4>]
|
|
[0.9 rgb <0.60, 0.40, 0.3>]
|
|
}
|
|
}
|
|
finish {
|
|
specular 0.25
|
|
roughness 0.05
|
|
ambient 0.45
|
|
diffuse 0.33
|
|
reflection 0.15
|
|
}
|
|
}
|
|
texture {
|
|
pigment {
|
|
wood turbulence <0.1, 0.5, 1>
|
|
octaves 5
|
|
lambda 3.25
|
|
scale <0.15, .5, 1>
|
|
color_map {
|
|
[0.0 rgbt <0.7, 0.6, 0.4, 0.100>]
|
|
[0.1 rgbt <0.8, 0.6, 0.3, 0.500>]
|
|
[0.1 rgbt <0.8, 0.6, 0.3, 0.650>]
|
|
[0.9 rgbt <0.6, 0.4, 0.2, 0.975>]
|
|
[1.0 rgbt <0.6, 0.4, 0.2, 1.000>]
|
|
}
|
|
rotate <5, 10, 5>
|
|
translate -x*2
|
|
}
|
|
finish {
|
|
specular 0.25
|
|
roughness 0.0005
|
|
ambient .1
|
|
diffuse 0.33
|
|
}
|
|
}
|
|
// A "coat of varnish" to modify the overall color of the wood
|
|
texture {
|
|
pigment { rgbt <0.75, 0.15, 0.0, 0.95> }
|
|
finish {
|
|
specular 0.25
|
|
roughness 0.01
|
|
ambient 0
|
|
diffuse 0.33
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
// Is this really oak? I dunno. Quite light, maybe more like spruce.
|
|
#declare DMFLightOak =
|
|
pigment {
|
|
wood
|
|
turbulence 0.05 // For best results, keep this low!
|
|
scale <0.2, 0.2, 1> // Scaled for a unit object
|
|
color_map {
|
|
[0.1 rgb <0.42, 0.26, 0.15>]
|
|
[0.9 rgb <0.52, 0.37, 0.26>]
|
|
}
|
|
}
|
|
|
|
// Looks like old desk oak if used correctly.
|
|
#declare DMFDarkOak =
|
|
pigment {
|
|
wood
|
|
turbulence 0.04 // For best results, keep this low!
|
|
octaves 3
|
|
scale <0.2, 0.2, 1> // Scaled for a unit object
|
|
color_map {
|
|
[0.1 rgb <0.60, 0.30, 0.18>]
|
|
[0.9 rgb <0.30, 0.15, 0.09>]
|
|
}
|
|
}
|
|
|
|
// Wood by Eric Barish
|
|
#declare EMBWood1 =
|
|
texture { /* Bottom wood-grain layer */
|
|
pigment {
|
|
wood
|
|
turbulence 0.05
|
|
color_map {
|
|
[0.00 rgb <0.58, 0.45, 0.23>]
|
|
[0.34 rgb <0.65, 0.45, 0.25>]
|
|
[0.40 rgb <0.33, 0.23, 0.13>]
|
|
[0.47 rgb <0.60, 0.40, 0.20>]
|
|
[1.00 rgb <0.25, 0.15, 0.05>]
|
|
}
|
|
}
|
|
finish {
|
|
crand 0.02
|
|
ambient 0.32
|
|
diffuse 0.63
|
|
phong 0.2
|
|
phong_size 10
|
|
}
|
|
normal { bumps 0.05 }
|
|
}
|
|
texture { /* top layer, adds small dark spots */
|
|
pigment {
|
|
bozo
|
|
color_map {
|
|
[0.0 rgbt <1.00, 1.00, 1.00, 1.00>]
|
|
[0.8 rgbt <1.00, 0.90, 0.80, 0.80>]
|
|
[1.0 rgbt <0.30, 0.20, 0.10, 0.40>]
|
|
}
|
|
scale 0.25
|
|
}
|
|
}
|
|
|
|
|
|
// Doug Otwell woods
|
|
// Yellow pine, close grained
|
|
//
|
|
#declare Yellow_Pine =
|
|
texture {
|
|
pigment {
|
|
wood
|
|
turbulence 0.02
|
|
color_map {
|
|
[0.222 rgb <0.808, 0.671, 0.251>]
|
|
[0.342 rgb <0.600, 0.349, 0.043>]
|
|
[0.393 rgb <0.808, 0.671, 0.251>]
|
|
[0.709 rgb <0.808, 0.671, 0.251>]
|
|
[0.821 rgb <0.533, 0.298, 0.027>]
|
|
[1.000 rgb <0.808, 0.671, 0.251>]
|
|
}
|
|
scale 0.1
|
|
translate <10, 0, 0>
|
|
}
|
|
}
|
|
// Yellow_Pine layer 2
|
|
texture {
|
|
pigment {
|
|
wood
|
|
turbulence 0.01
|
|
color_map {
|
|
[0.000 rgbt <1.000, 1.000, 1.000, 1.000>]
|
|
[0.120 rgbt <0.702, 0.467, 0.118, 0.608>]
|
|
[0.496 rgbt <1.000, 1.000, 1.000, 1.000>]
|
|
[0.701 rgbt <1.000, 1.000, 1.000, 1.000>]
|
|
[0.829 rgbt <0.702, 0.467, 0.118, 0.608>]
|
|
[1.000 rgbt <1.000, 1.000, 1.000, 1.000>]
|
|
}
|
|
scale 0.5
|
|
translate <10, 0, 0>
|
|
}
|
|
}
|
|
|
|
//
|
|
// Rosewood
|
|
//
|
|
#declare Rosewood =
|
|
texture {
|
|
pigment {
|
|
bozo
|
|
turbulence 0.04
|
|
color_map {
|
|
[0.000 rgb <0.204, 0.110, 0.078>]
|
|
[0.256 rgb <0.231, 0.125, 0.090>]
|
|
[0.393 rgb <0.247, 0.133, 0.090>]
|
|
[0.581 rgb <0.204, 0.110, 0.075>]
|
|
[0.726 rgb <0.259, 0.122, 0.102>]
|
|
[0.983 rgb <0.231, 0.125, 0.086>]
|
|
[1.000 rgb <0.204, 0.110, 0.078>]
|
|
}
|
|
scale <0.5, 0.5, 1>
|
|
translate <10, 0, 0>
|
|
}
|
|
finish {
|
|
ambient 0.5
|
|
diffuse 0.8
|
|
}
|
|
}
|
|
// Rosewood layer 2
|
|
texture {
|
|
pigment {
|
|
wood
|
|
turbulence 0.04
|
|
color_map {
|
|
[0.000 rgbt <0.545, 0.349, 0.247, 1.000>]
|
|
[0.139 rgbt <0.000, 0.000, 0.000, 0.004>]
|
|
[0.148 rgbt <0.000, 0.000, 0.000, 0.004>]
|
|
[0.287 rgbt <0.545, 0.349, 0.247, 1.000>]
|
|
[0.443 rgbt <0.545, 0.349, 0.247, 1.000>]
|
|
[0.626 rgbt <0.000, 0.000, 0.000, 0.004>]
|
|
[0.635 rgbt <0.000, 0.000, 0.000, 0.004>]
|
|
[0.843 rgbt <0.545, 0.349, 0.247, 1.000>]
|
|
}
|
|
scale <0.5, 0.5, 1>
|
|
translate <10, 0, 0>
|
|
}
|
|
finish {
|
|
ambient 0.5
|
|
diffuse 0.8
|
|
}
|
|
}
|
|
|
|
//
|
|
// Sandalwood ( makes a great burled maple, too)
|
|
//
|
|
#declare Sandalwood =
|
|
texture {
|
|
pigment {
|
|
bozo
|
|
turbulence 0.2
|
|
color_map {
|
|
[0.000 rgb <0.725, 0.659, 0.455>]
|
|
[0.171 rgb <0.682, 0.549, 0.420>]
|
|
[0.274 rgb <0.557, 0.451, 0.322>]
|
|
[0.393 rgb <0.725, 0.659, 0.455>]
|
|
[0.564 rgb <0.682, 0.549, 0.420>]
|
|
[0.701 rgb <0.482, 0.392, 0.278>]
|
|
[1.000 rgb <0.725, 0.659, 0.455>]
|
|
}
|
|
scale <0.2, 0.2, 1>
|
|
scale 2
|
|
}
|
|
}
|
|
// Sandalwood layer 2
|
|
texture {
|
|
pigment {
|
|
bozo
|
|
turbulence 0.8
|
|
color_map {
|
|
[0.000 rgbt <0.682, 0.604, 0.380, 1.000>]
|
|
[0.087 rgbt <0.761, 0.694, 0.600, 0.020>]
|
|
[0.226 rgbt <0.635, 0.553, 0.325, 1.000>]
|
|
[0.348 rgbt <0.761, 0.694, 0.600, 0.020>]
|
|
[0.496 rgbt <0.682, 0.604, 0.380, 1.000>]
|
|
[0.565 rgbt <0.761, 0.694, 0.600, 0.020>]
|
|
[0.661 rgbt <0.682, 0.604, 0.380, 1.000>]
|
|
[0.835 rgbt <0.761, 0.694, 0.600, 0.020>]
|
|
[1.000 rgbt <0.682, 0.604, 0.380, 1.000>]
|
|
}
|
|
scale 0.4
|
|
}
|
|
}
|
|
|
|
|
|
//*****************************************************************************
|
|
// GLASS TEXTURES
|
|
//*****************************************************************************
|
|
|
|
/* Note: New in POV-Ray 3.1, the "ior" keyword is supposed to be
|
|
specified in the new "interior{...}" statement.
|
|
|
|
Under POV-Ray 3.0x and prior, the "refraction" keyword served
|
|
two puropses.
|
|
1) Turn on refraction: this is no longer necessary. Any use
|
|
of the "ior" keyword with a value other than 1.0 will
|
|
turn on refraction.
|
|
2) Attenuate transparency: Values of "refraction" that are
|
|
between 0.0 and 1.0 would attenuate or darken the amount
|
|
of light passing through. The same effect can be obtained
|
|
by adjusting the filter value. A more realistic effect
|
|
can be obtained using the new "fade_power" and "fade_distance"
|
|
keywords in the "interior" statement.
|
|
These textures and finishes should still work under POV-Ray 3.1
|
|
but any new textures you create should make use of the new syntax.
|
|
*/
|
|
/*Modified for POV 3.5, added glass materials
|
|
More realistic results can be obtained if a perfectly clear pigment is used,
|
|
and either absorbing media or fade_color are used to color the glass.*/
|
|
|
|
#declare Glass_Finish=
|
|
finish {
|
|
specular 1
|
|
roughness 0.001
|
|
ambient 0
|
|
diffuse 0
|
|
reflection 0.1
|
|
#if (version<3.1)
|
|
ior 1.5
|
|
#end
|
|
}
|
|
|
|
#declare Glass_Interior = interior {ior 1.5}
|
|
|
|
#declare Glass =
|
|
texture {
|
|
pigment { rgbf<1.0, 1.0, 1.0, 0.7> }
|
|
finish { Glass_Finish }
|
|
}
|
|
#declare M_Glass = material {texture {Glass} interior {Glass_Interior}}
|
|
|
|
// Probably more of a "Plexiglas" than glass
|
|
#declare Glass2 =
|
|
texture {
|
|
pigment { rgbf <1,1,1,1> }
|
|
finish {
|
|
ambient 0
|
|
diffuse 0
|
|
reflection 0.5
|
|
phong 0.3
|
|
phong_size 60
|
|
}
|
|
}
|
|
#declare M_Glass2 = material {texture {Glass2} interior {Glass_Interior}}
|
|
|
|
// An excellent lead crystal glass!
|
|
#declare Glass3 =
|
|
texture {
|
|
pigment { rgbf <0.98, 0.98, 0.98, 0.9> }
|
|
finish {
|
|
ambient 0.1
|
|
diffuse 0.1
|
|
reflection 0.1
|
|
specular 0.8
|
|
roughness 0.0003
|
|
phong 1
|
|
phong_size 400
|
|
}
|
|
}
|
|
#declare M_Glass3 = material {texture {Glass3} interior {Glass_Interior}}
|
|
|
|
#declare Green_Glass =
|
|
texture {
|
|
Glass3
|
|
pigment { rgbf <0.8, 1, 0.95, 0.9> }
|
|
}
|
|
#declare M_Green_Glass = material {texture {Green_Glass} interior {Glass_Interior}}
|
|
|
|
// Glass textures contributed by Norm Bowler, of Richland WA
|
|
#declare NBglass =
|
|
texture {
|
|
pigment { rgbf <0.98, 1.0, 0.99, 0.75> }
|
|
finish {
|
|
ambient 0.1
|
|
diffuse 0.1
|
|
reflection .25
|
|
specular 1
|
|
roughness .001
|
|
#if (version<3.1)
|
|
ior 1.5
|
|
#end
|
|
}
|
|
}
|
|
#declare M_NB_Glass = material {texture {NBglass} interior {Glass_Interior}}
|
|
|
|
|
|
#declare NBoldglass=
|
|
texture {
|
|
NBglass
|
|
pigment { rgbf <0.8, 0.9, 0.85, 0.85> }
|
|
}
|
|
#declare M_NB_Old_Glass = material {texture {NBoldglass} interior {Glass_Interior}}
|
|
|
|
#declare NBwinebottle=
|
|
texture {
|
|
NBglass
|
|
pigment { rgbf <0.4, 0.72, 0.4, 0.6> }
|
|
}
|
|
#declare M_NB_Winebottle_Glass = material {texture {NBwinebottle} interior {Glass_Interior}}
|
|
|
|
#declare NBbeerbottle=
|
|
texture {
|
|
NBglass
|
|
pigment { rgbf <0.7, 0.5, 0.1, 0.6> }
|
|
}
|
|
#declare M_NB_Beerbottle_Glass = material {texture {NBbeerbottle} interior {Glass_Interior}}
|
|
|
|
// A few color variations on Norm's glass
|
|
// Ruby glass
|
|
#declare Ruby_Glass =
|
|
texture {
|
|
NBglass
|
|
pigment { rgbf <0.9, 0.1, 0.2, 0.8> }
|
|
}
|
|
#declare M_Ruby_Glass = material {texture {Ruby_Glass} interior {Glass_Interior}}
|
|
|
|
// Dark, green glass
|
|
#declare Dark_Green_Glass=
|
|
texture {
|
|
NBglass
|
|
pigment { rgbf <0.1, 0.7, 0.8, 0.8> }
|
|
}
|
|
#declare M_Dark_Green_Glass = material {texture {Dark_Green_Glass} interior {Glass_Interior}}
|
|
|
|
// Yellow glass
|
|
#declare Yellow_Glass=
|
|
texture {
|
|
NBglass
|
|
pigment { rgbf <0.8, 0.8, 0.2, 0.8> }
|
|
}
|
|
#declare M_Yellow_Glass = material {texture {Yellow_Glass} interior {Glass_Interior}}
|
|
|
|
// Orange/Amber glass
|
|
#declare Orange_Glass=
|
|
texture {
|
|
NBglass
|
|
pigment { rgbf <1.0, 0.5, 0.0, 0.8> }
|
|
}
|
|
#declare M_Orange_Glass = material {texture {Orange_Glass} interior {Glass_Interior}}
|
|
|
|
// Vicks bottle, glass
|
|
#declare Vicks_Bottle_Glass=
|
|
texture {
|
|
NBglass
|
|
pigment { rgbf <0.1, 0.15, 0.5, 0.9> }
|
|
}
|
|
#declare M_Vicks_Bottle_Glass = material {texture {Vicks_Bottle_Glass} interior {Glass_Interior}}
|
|
|
|
//*****************************************************************************
|
|
// METAL FINISHES
|
|
//*****************************************************************************
|
|
|
|
#declare Metal =
|
|
finish {
|
|
metallic
|
|
ambient 0.2
|
|
diffuse 0.7
|
|
brilliance 6
|
|
reflection 0.25
|
|
phong 0.75
|
|
phong_size 80
|
|
}
|
|
|
|
//*****************************************************************************
|
|
// METAL TEXTURES
|
|
//*****************************************************************************
|
|
|
|
|
|
// Good looking "metal" textures
|
|
#declare Chrome_Texture =
|
|
texture {
|
|
pigment { rgb <0.658824, 0.658824, 0.658824> }
|
|
finish {
|
|
ambient 0.3
|
|
diffuse 0.7
|
|
reflection 0.15
|
|
brilliance 8
|
|
specular 0.8
|
|
roughness 0.1
|
|
}
|
|
}
|
|
|
|
// A series of metallic textures using the Metal finish:
|
|
#declare Brass_Texture = texture { pigment{ rgb <0.71, 0.65, 0.26>} finish{ Metal }}
|
|
#declare Gold_Texture = texture { pigment{ rgb <0.85, 0.85, 0.10>} finish{ Metal }}
|
|
#declare Bronze_Texture = texture { pigment{ rgb <0.55, 0.47, 0.14>} finish{ Metal }}
|
|
#declare Copper_Texture = texture { pigment{ rgb <0.72, 0.45, 0.20>} finish{ Metal }}
|
|
#declare Silver_Texture = texture { pigment{ rgb <0.90, 0.91, 0.98>} finish{ Metal }}
|
|
|
|
// In the future, please refer to Chrome_Texture by this name. I'd like
|
|
// to scrap the old name someday. Ditto with other "_Texture" names!
|
|
#declare Chrome_Metal = texture { Chrome_Texture }
|
|
#declare Brass_Metal = texture { Brass_Texture }
|
|
#declare Bronze_Metal = texture { Bronze_Texture }
|
|
#declare Gold_Metal = texture { Gold_Texture }
|
|
#declare Silver_Metal = texture { Silver_Texture }
|
|
#declare Copper_Metal = texture { Copper_Texture }
|
|
|
|
// A couple highly reflective metal textures.
|
|
#declare Polished_Chrome =
|
|
texture {
|
|
pigment { rgb <0.2, 0.2, 0.2> }
|
|
finish {
|
|
ambient 0.1
|
|
diffuse 0.7
|
|
brilliance 6.0
|
|
reflection 0.6
|
|
phong 0.8
|
|
phong_size 120
|
|
}
|
|
}
|
|
|
|
#declare Polished_Brass =
|
|
texture {
|
|
pigment { rgb <0.578, 0.422, 0.195> }
|
|
finish {
|
|
metallic
|
|
ambient 0.1
|
|
diffuse 0.8
|
|
brilliance 6.0
|
|
reflection 0.4
|
|
phong 0.8
|
|
phong_size 120
|
|
}
|
|
}
|
|
|
|
|
|
// Beautiful military brass texture!
|
|
#declare New_Brass =
|
|
texture {
|
|
pigment { rgb <0.70, 0.56, 0.37> }
|
|
finish {
|
|
ambient 0.35
|
|
diffuse 1.0
|
|
brilliance 15
|
|
phong 0.41
|
|
phong_size 5
|
|
}
|
|
}
|
|
|
|
|
|
// Spun Brass texture for cymbals & such
|
|
#declare Spun_Brass =
|
|
texture {
|
|
New_Brass
|
|
normal { waves 0.35 frequency 2 scale 0.01 }
|
|
}
|
|
|
|
// Brushed aluminum (brushed along X axis)
|
|
#declare Brushed_Aluminum =
|
|
texture {
|
|
Chrome_Metal
|
|
normal {
|
|
bumps -0.5
|
|
scale <1, 0.001, 0.001>
|
|
}
|
|
}
|
|
|
|
|
|
#declare SilverFinish =
|
|
finish {
|
|
metallic
|
|
ambient 0.25
|
|
diffuse 0.65
|
|
reflection 0.45
|
|
brilliance 6
|
|
phong 1
|
|
phong_size 100
|
|
}
|
|
|
|
|
|
// Each of these looks good. Slightly,r as you go down
|
|
#declare Silver1_Colour = color rgb <0.94, 0.93, 0.83>;
|
|
#declare Silver2_Colour = color rgb <0.94, 0.93, 0.86>;
|
|
#declare Silver3_Colour = color rgb <0.94, 0.93, 0.90>;
|
|
|
|
#declare Silver1 =
|
|
texture {
|
|
pigment { Silver1_Colour }
|
|
finish { SilverFinish }
|
|
}
|
|
|
|
#declare Silver2 =
|
|
texture {
|
|
pigment { Silver2_Colour }
|
|
finish { SilverFinish }
|
|
}
|
|
|
|
#declare Silver3 =
|
|
texture {
|
|
pigment { Silver3_Colour }
|
|
finish { SilverFinish }
|
|
}
|
|
|
|
|
|
// Interesting texture -- Give it a try.
|
|
// Sort of a "rgb <0.0, 0.0, 0.0> Hills Gold", black, white, and orange specks or splotches.
|
|
#declare Brass_Valley =
|
|
texture {
|
|
pigment {
|
|
granite
|
|
color_map {
|
|
[0.3 rgb <0.82, 0.57, 0.46>]
|
|
[0.3 rgb <0.00, 0.00, 0.00>]
|
|
[0.6 rgb <0.85, 0.85, 0.95>]
|
|
[0.6 rgb <0.82, 0.57, 0.46>]
|
|
[1.0 rgb <0.85, 0.85, 0.95>]
|
|
}
|
|
}
|
|
finish {
|
|
metallic
|
|
brilliance 6.0
|
|
reflection 0.75
|
|
phong 0.75
|
|
}
|
|
}
|
|
|
|
#declare Rust =
|
|
texture {
|
|
pigment {
|
|
granite
|
|
color_map {
|
|
[0.0 rgb <0.89, 0.51, 0.28>]
|
|
[0.4 rgb <0.70, 0.13, 0.00>]
|
|
[0.5 rgb <0.69, 0.41, 0.08>]
|
|
[0.6 rgb <0.49, 0.31, 0.28>]
|
|
[1.0 rgb <0.89, 0.51, 0.28>]
|
|
}
|
|
}
|
|
finish { ambient 0.2 diffuse 0.4 }
|
|
}
|
|
|
|
#declare Rusty_Iron =
|
|
texture {
|
|
pigment {
|
|
granite
|
|
color_map {
|
|
[0.0 rgb <0.42, 0.20, 0.20>]
|
|
[0.5 rgb <0.50, 0.50, 0.02>]
|
|
[0.6 rgb <0.60, 0.20, 0.20>]
|
|
[0.6 rgb <0.30, 0.20, 0.20>]
|
|
}
|
|
}
|
|
finish { ambient 0.2 diffuse 0.6 }
|
|
normal { wrinkles 1 scale 0.1 }
|
|
}
|
|
|
|
|
|
#declare Soft_Silver =
|
|
texture {
|
|
pigment { Silver1_Colour }
|
|
finish {
|
|
metallic
|
|
ambient 0.2
|
|
diffuse 0.35
|
|
specular 0.85
|
|
roughness 0.01
|
|
reflection 0.45
|
|
brilliance 1.5
|
|
}
|
|
}
|
|
|
|
#declare Metallic_Finish =
|
|
finish {
|
|
metallic
|
|
ambient 0.1
|
|
diffuse 0.65
|
|
specular 0.85
|
|
roughness 0.01
|
|
reflection 0.45
|
|
brilliance 1.5
|
|
}
|
|
|
|
#declare New_Penny =
|
|
texture {
|
|
pigment { rgb <0.6, 0.45, 0.4> }
|
|
finish { Metallic_Finish }
|
|
}
|
|
|
|
#declare Tinny_Brass =
|
|
texture {
|
|
pigment { rgb <0.70, 0.56, 0.37> }
|
|
finish { Metallic_Finish }
|
|
}
|
|
|
|
#declare Gold_Nugget =
|
|
texture {
|
|
pigment { rgb <0.5, 0.35, 0.25> }
|
|
finish { Metallic_Finish }
|
|
}
|
|
|
|
#declare Aluminum =
|
|
texture {
|
|
pigment { rgb <0.55, 0.5, 0.45> }
|
|
finish { Metallic_Finish }
|
|
}
|
|
|
|
#declare Bright_Bronze =
|
|
texture {
|
|
pigment { rgb <0.36, 0.28, 0.20> }
|
|
finish { Metallic_Finish }
|
|
}
|
|
|
|
|
|
//*****************************************************************************
|
|
// SPECIAL EFFECTS
|
|
//*****************************************************************************
|
|
|
|
// Red & white stripes - Looks best on a y axis Cylinder
|
|
// It "spirals" because it's gradient on two axis
|
|
#declare Candy_Cane =
|
|
pigment {
|
|
gradient x+y
|
|
color_map {
|
|
[0.25 rgb <1,0,0>]
|
|
[0.25 rgb <1,1,1>]
|
|
[0.75 rgb <1,1,1>]
|
|
[0.75 rgb <1,0,0>]
|
|
}
|
|
}
|
|
|
|
// Orange and Clear stripes spiral around the texture
|
|
// to make an object look like it was "Peeled"
|
|
// Now, you too can be M.C. Escher
|
|
#declare Peel =
|
|
pigment {
|
|
gradient x+y
|
|
color_map {
|
|
[0.25 rgbf <1.0, 0.5, 0.0, 0.0>]
|
|
[0.25 rgbf <1.0, 1.0, 1.0, 1.0>]
|
|
[0.75 rgbf <1.0, 1.0, 1.0, 1.0>]
|
|
[0.75 rgbf <1.0, 0.5, 0.0, 0.0>]
|
|
}
|
|
}
|
|
|
|
#declare Y_Gradient =
|
|
pigment {
|
|
gradient y
|
|
color_map {
|
|
[0.00 rgb <1,0,0>]
|
|
[0.33 rgb <0,0,1>]
|
|
[0.66 rgb <0,1,0>]
|
|
[1.00 rgb <1,0,0>]
|
|
}
|
|
}
|
|
|
|
#declare X_Gradient =
|
|
pigment {
|
|
gradient x
|
|
color_map {
|
|
[0.00 rgb <1,0,0>]
|
|
[0.33 rgb <0,0,1>]
|
|
[0.66 rgb <1,1,1>]
|
|
}
|
|
}
|
|
|
|
// Wavy water
|
|
// Requires a sub-plane, and may require scaling to fit your scene.
|
|
//A far better water texture can be done using a perfectly clear pigment
|
|
//and fade_color or absorbing media in the interior.
|
|
|
|
#declare Water =
|
|
texture {
|
|
pigment{ rgbf <0.0, 0.0, 1.0, 0.9> }
|
|
normal {
|
|
ripples 0.75
|
|
frequency 10
|
|
}
|
|
finish {
|
|
reflection {0.3, 1 fresnel}
|
|
conserve_energy
|
|
}
|
|
}
|
|
#declare Water_Int =
|
|
interior {
|
|
ior 1.33
|
|
}
|
|
|
|
#declare M_Water =
|
|
material {
|
|
texture {Water}
|
|
interior {Water_Int}
|
|
}
|
|
|
|
#declare Cork =
|
|
texture {
|
|
pigment {
|
|
granite
|
|
color_map {
|
|
[0.00 rgb <0.93, 0.71, 0.532>]
|
|
[0.60 rgb <0.98, 0.81, 0.60>]
|
|
[0.60 rgb <0.50, 0.30, 0.20>]
|
|
[0.65 rgb <0.50, 0.30, 0.20>]
|
|
[0.65 rgb <0.80, 0.53, 0.46>]
|
|
[1.00 rgb <0.85, 0.75, 0.35>]
|
|
}
|
|
}
|
|
finish{
|
|
specular 0.1
|
|
roughness 0.5
|
|
}
|
|
scale 0.25 // Generally looks best scaled longer on one axis
|
|
}
|
|
|
|
//The correct spelling is "Lightning", not "Lightening"
|
|
|
|
#declare Lightning_CMap1 =
|
|
color_map {
|
|
[0.00 rgbf <1,1,1,0>]
|
|
[0.15 rgbf <0.94, 0.81, 0.99, 0.65>]
|
|
[0.25 rgbf <0.94, 0.81, 0.99, 0.65>]
|
|
[0.30 rgbf <0.87, 0.58, 0.98, 0.85>]
|
|
[0.40 rgbf <0.87, 0.58, 0.98, 0.85>]
|
|
[0.45 rgbf <0.73, 0.16, 0.96, 0.95>]
|
|
}
|
|
|
|
#declare Lightning1 =
|
|
texture {
|
|
pigment {
|
|
marble
|
|
color_map { Lightning_CMap1 }
|
|
turbulence 0.5
|
|
}
|
|
finish { ambient 1 }
|
|
}
|
|
|
|
|
|
#declare Lightning_CMap2 =
|
|
color_map {
|
|
[0.00 rgbf <1,1,1,0>]
|
|
[0.10 rgbf <0.94, 0.81, 0.99, 0.65>]
|
|
[0.20 rgbf <0.94, 0.81, 0.99, 0.65>]
|
|
[0.30 rgbf <0.87, 0.58, 0.98, 0.85>]
|
|
[0.45 rgbf <0.87, 0.58, 0.98, 0.85>]
|
|
[0.65 rgbf <0.73, 0.16, 0.96, 0.95>]
|
|
}
|
|
|
|
#declare Lightning2 =
|
|
texture {
|
|
pigment {
|
|
granite
|
|
color_map { Lightning_CMap2 }
|
|
turbulence 0.5
|
|
}
|
|
finish { ambient 1 }
|
|
}
|
|
|
|
// Starfield, by Jeff Burton
|
|
#declare Starfield =
|
|
texture {
|
|
pigment {
|
|
granite
|
|
color_map {
|
|
[0.72 rgb 0.00 ] // No Stars in this area
|
|
[0.72 rgb 0.20 ] // Very Very Faint Stars
|
|
[0.75 rgb 0.40 ] // Very Very Faint Stars
|
|
[0.78 rgb 0.60 ] // Very Faint Stars
|
|
[0.81 rgb 0.80 ] // Faint Stars
|
|
[0.85 rgb 0.95 ] // Medium White Stars
|
|
[0.91 rgb 1.00 ] // White Stars
|
|
[0.91 rgb 0.00 ] // No Stars in this area
|
|
}
|
|
scale .015
|
|
}
|
|
finish { ambient 1 }
|
|
}
|
|
|
|
// Irregular_Bricks_Ptrn() authors: Ron Parker and Rune S. Johansen
|
|
/* Irregular_Bricks_Ptrn( Mortar Thickness, X-scaling, Variation, Roundness )
|
|
This function pattern creates a pattern of bricks of varying lengths on the x-y plane.
|
|
This can be useful in building walls that don't look like they were built by a computer.
|
|
Note that mortar thickness between bricks can vary somewhat, too.
|
|
|
|
Mortar Thickness: How thick the mortar should be (0-1)
|
|
X-scaling: The scaling of the bricks (but not the mortar) in the x direction
|
|
Variation: The amount by which brick lengths will vary (0=none, 1=100%)
|
|
Roundness: The roundness of the bricks (0.01=almost rectangular, 1.0=very round)
|
|
|
|
Sample code:
|
|
plane {-z, 0
|
|
texture {
|
|
pigment {
|
|
Irregular_Bricks_Ptrn (0.1, 1, 0.5, 0.5)
|
|
color_map {
|
|
[0.01, rgb 0.9]
|
|
[0.01, rgb 0.6]
|
|
}
|
|
}
|
|
normal {
|
|
Irregular_Bricks_Ptrn (0.1, 1, 0.5, 0.5) 2
|
|
}
|
|
}
|
|
}*/
|
|
#macro Irregular_Bricks_Ptrn (T, S, V, R)
|
|
#local FunctionXGrad =
|
|
function {
|
|
pattern {
|
|
gradient x triangle_wave
|
|
warp {turbulence V*x octaves 1}
|
|
warp {planar z 0}
|
|
warp {repeat z offset< 0.5, 5, 0>}
|
|
rotate -90*x
|
|
}
|
|
}
|
|
#local FunctionYGrad =
|
|
function {
|
|
pattern {
|
|
gradient y triangle_wave
|
|
translate 0.5*y
|
|
}
|
|
}
|
|
function {
|
|
pow
|
|
(1-min(1,
|
|
(
|
|
+pow(FunctionXGrad(x/S,y,z)*(1+T/S),1/R*2)
|
|
+pow(FunctionYGrad(x/S,y,z)*(1+T ),1/R*2)
|
|
)
|
|
),R/2)
|
|
}
|
|
#end
|
|
|
|
|
|
// Hex_Tiles_Ptrn() authors: Ron Parker and Juha Nieminen
|
|
#macro Hex_Tiles_Ptrn()
|
|
#local G =
|
|
pigment {gradient x
|
|
color_map {[0 rgb 1][1 rgb 0]}
|
|
scale sqrt(3)/2+.001
|
|
}
|
|
#local B =
|
|
pigment {radial
|
|
pigment_map {
|
|
#local I = 0;
|
|
#while(I<6)
|
|
[I/6 G rotate(30+60*I)*y]
|
|
[(I+1)/6 G rotate(30+60*I)*y]
|
|
#local I = I + 1;
|
|
#end
|
|
}
|
|
}
|
|
pigment_pattern {
|
|
#local T2 = sqrt(3)/2;
|
|
radial
|
|
pigment_map {
|
|
[0 B translate < 0.5,0,-T2>]
|
|
[1/3 B translate < 0.5,0,-T2>]
|
|
[1/3 B translate <-1.0,0, 0>]
|
|
[2/3 B translate <-1.0,0, 0>]
|
|
[2/3 B translate < 0.5,0, T2>]
|
|
[1 B translate < 0.5,0, T2>]
|
|
}
|
|
translate x
|
|
warp {repeat 1.5*x flip x}
|
|
warp {repeat.5*sqrt(3)*z flip z}
|
|
}
|
|
#end
|
|
|
|
// Tiles_Ptrn() author: Rune S. Johansen
|
|
#macro Tiles_Ptrn()
|
|
boxed scale 0.5 translate <0.5,0.5,0>
|
|
warp {repeat x} warp {repeat y} warp {planar z, 0}
|
|
#end
|
|
|
|
|
|
// Star_Ptrn() author: Ron Parker
|
|
/* Star pattern
|
|
This macro creates a pattern that resembles a star. It can be used together with
|
|
color_maps, pigment_maps, texture_maps etc. The pattern is in the X-Z plane,
|
|
centered around the origin.
|
|
|
|
Star_Ptrn( Radius, Points, Skip )
|
|
|
|
Radius: the radius of a circle drawn through the points
|
|
of the star
|
|
Points: the number of points on the star.
|
|
Skip: the number of points to skip when drawing lines between
|
|
points to form the star. A normal 5-pointed star skips
|
|
2 points. A Star of David also skips 2 points.
|
|
Skip must be less than <Points>/2 and greater than 0.
|
|
Integers are preferred but not required. Skipping 1
|
|
point makes a regular polygon with <Points> sides.
|
|
|
|
Example usage: (This creates a five-pointed star as on a US flag)
|
|
pigment {
|
|
Star_Ptrn(1,5,2)
|
|
color_map {[0,rgb 1][1,blue 0.5]}
|
|
}*/
|
|
|
|
#macro Star_Ptrn(SR, NP, SP)
|
|
#local P =
|
|
pigment {radial
|
|
#local PA = 0.5-(SP/NP);
|
|
pigment_map {
|
|
[.5-PA/2 rgb 0]
|
|
[.5-PA/2 rgb 1]
|
|
[.5+PA/2 rgb 1]
|
|
[.5+PA/2 rgb 0]
|
|
}
|
|
translate SR*x
|
|
}
|
|
pigment_pattern {radial
|
|
pigment_map {
|
|
#local I=0;
|
|
#while(I<NP)
|
|
[(I+.5)/NP P rotate I*360/NP*y]
|
|
[(I+.5)/NP P rotate(I+1)*360/NP*y]
|
|
#local I = I + 1;
|
|
#end
|
|
}
|
|
rotate -90*x +90*z
|
|
}
|
|
#end
|
|
|
|
#version Textures_Inc_Temp;
|
|
#end
|