Difference between revisions of "User:TdG"

From POV-Wiki
Jump to navigation Jump to search
m
m
 
(10 intermediate revisions by the same user not shown)
Line 144: Line 144:
 
</source>
 
</source>
 
<hr />
 
<hr />
 +
 +
<p>next blah blah blah...</p>
 +
  
 
<hr /><hr />
 
<hr /><hr />
Line 152: Line 155:
 
'''topic''': cloth
 
'''topic''': cloth
  
'''title''': <span style="font-variant:small-caps">Crushed Velvet</span> [[Image:BH_CrushedVelvet.jpg|100px|thumb|Bob Hughes's Crushed Velvet|alt=|border|left]]
+
'''title''': <span style="font-variant:small-caps">Crushed Velvet</span> [[Image:BH_CrushedVelvet.jpg|100px|thumb|Bob Hughes' Crushed Velvet|alt=|border|left]]
  
 
'''year''': 2000
 
'''year''': 2000
Line 160: Line 163:
 
'''description''': An attempt at making a crushed velvet texture.
 
'''description''': An attempt at making a crushed velvet texture.
  
'''link''':  
+
'''link''': https://news.povray.org/povray.text.scene-files/thread/%3C389e81fc%40news.povray.org%3E/?ttop=440712&toff=700
 +
 
 +
'''comment''': Updated to POV-Ray 3.8, added warp turbulence, and changed to macro access by TdG (2023).
 +
 
 +
'''code''': The following code should be saved in an include file, like crushedvelvet.inc
 +
 
 +
 
 +
<source lang="pov">
 +
#macro Velvet(Vb,Vt,Vs,Vc)
 +
// BEGIN VELVET CHOICES
 +
 
 +
// Color Brightness [ > 0 to 2 ? ]
 +
#ifndef (Vb) #declare Vb = 1; #end
 +
// Velvet Thickness [ 0 to 3 ? ]
 +
#ifndef (Vt) #declare Vt = 1.5; #end
 +
// Velvet Size [ 0 to 6 ? ]
 +
#ifndef (Vs) #declare Vs = 1; #end
 +
// Color Choice [ 1= black, 2= red, 3= green, 4= blue ]
 +
#ifndef (Vc) #declare Vc = 2; #end
 +
 
 +
// END VELVET CHOICES
 +
 
 +
// Color Choice
 +
#switch (Vc)
 +
#case (1)
 +
// Black
 +
#declare Cv1 = <.05,.05,.05>;
 +
#declare Cv2 = <.1,.1,.1>;
 +
#declare Cv3 = <.075,.075,.075>;
 +
#declare Cv4 = <.1,.1,.1>;
 +
#declare Cv5 = <.05,.05,.05>;
 +
#declare Cv6 = <.1,.1,.1>;
 +
#declare Cfv1 = rgbf<.05,.05,.05,.4>;
 +
#declare Cfv2 = rgbf<.1,.1,.1,.5>;
 +
#declare Cfv1a = rgbf<.05,.05,.05,.1>;
 +
#declare Cfv1b = rgbf<.1,.1,.1,.05>;
 +
#declare Cfv2a = rgbf<.05,.05,.05,.1>;
 +
#declare Cfv2b = rgbf<.1,.1,.1,.05>;
 +
#break
 +
#case (2)
 +
// Red
 +
#declare Cv1 = <.7,.1,.1>;
 +
#declare Cv2 = <.75,.15,.2>;
 +
#declare Cv3 = <.65,.15,.15>;
 +
#declare Cv4 = <.65,.15,.25>;
 +
#declare Cv5 = <.6,.1,.1>;
 +
#declare Cv6 = <.65,.15,.15>;
 +
#declare Cfv1 = rgbf<.5,.1,.1,.4>;
 +
#declare Cfv2 = rgbf<.55,.1,.15,.5>;
 +
#declare Cfv1a = rgbf<.6,.1,.1,.1>;
 +
#declare Cfv1b = rgbf<.65,.15,.15,.05>;
 +
#declare Cfv2a = rgbf<.6,.1,.1,.1>;
 +
#declare Cfv2b = rgbf<.75,.15,.25,.05>;
 +
#break
 +
#case (3)
 +
// Green
 +
#declare Cv1 = <.1,.5,.2>;
 +
#declare Cv2 = <.1,.65,.25>;
 +
#declare Cv3 = <.1,.5,.3>;
 +
#declare Cv4 = <.2,.6,.2>;
 +
#declare Cv5 = <.1,.7,.1>;
 +
#declare Cv6 = <.15,.65,.25>;
 +
#declare Cfv1 = rgbf<.2,.5,.2,.4>;
 +
#declare Cfv2 = rgbf<.3,.55,.25,.5>;
 +
#declare Cfv1a = rgbf<.2,.6,.3,.1>;
 +
#declare Cfv1b = rgbf<.2,.7,.3,.05>;
 +
#declare Cfv2a = rgbf<.1,.6,.15,.1>;
 +
#declare Cfv2b = rgbf<.15,.65,.2,.05>;
 +
#break
 +
#case (4)
 +
// Blue
 +
#declare Cv1 = <.1,.3,.7>;
 +
#declare Cv2 = <.2,.4,.65>;
 +
#declare Cv3 = <.12,.24,.58>;
 +
#declare Cv4 = <.3,.5,.6>;
 +
#declare Cv5 = <.2,.4,.7>;
 +
#declare Cv6 = <.25,.35,.65>;
 +
#declare Cfv1 = rgbf<.22,.34,.77,.4>;
 +
#declare Cfv2 = rgbf<.35,.45,.75,.5>;
 +
#declare Cfv1a = rgbf<.12,.24,.6,.1>;
 +
#declare Cfv1b = rgbf<.2,.3,.7,.05>;
 +
#declare Cfv2a = rgbf<.12,.24,.6,.1>;
 +
#declare Cfv2b = rgbf<.2,.3,.7,.05>;
 +
#break
 +
#end
 +
 
 +
// BEGIN VELVET TEXTURE DEFINITION
 +
 
 +
#declare T1 =
 +
texture {
 +
  pigment {
 +
    wrinkles frequency .666
 +
    color_map {
 +
      [0 color rgb Cv1*Vb]
 +
      [1 color rgb Cv2*Vb]
 +
    }
 +
    sine_wave
 +
  }
 +
  normal {
 +
    crackle 10
 +
    normal_map {
 +
      [0.1 wrinkles 8 triangle_wave scale <3,.5,1>*10 rotate <15,30,5>]
 +
      [0.3 crackle 8 scallop_wave scale <3,.5,1>*10 rotate <15,30,5>]
 +
      [0.9 leopard 8 triangle_wave scale <3,.5,1>*10 rotate <15,30,5>]
 +
    }
 +
    triangle_wave
 +
    scale <3,.5,1>*5
 +
    rotate <15,30,5>
 +
  }
 +
  finish {
 +
    diffuse .3
 +
    fresnel on
 +
    reflection {<.05,.075,.1> fresnel on} crand .013
 +
    brilliance -.25*Vt
 +
  }
 +
}
 +
 
 +
#declare T2 =
 +
texture {
 +
  pigment {
 +
    crackle frequency 2
 +
    color_map {
 +
      [0 color rgb Cv3*Vb]
 +
      [1 color rgb Cv4*Vb]
 +
    }
 +
    scallop_wave
 +
  }
 +
  normal {
 +
    agate 7.5 agate_turb .6
 +
    normal_map {
 +
      [0.1 wrinkles 8 triangle_wave scale <3,.5,1>*10 rotate <15,30,5>]
 +
      [0.3 crackle 8 scallop_wave scale <3,.5,1>*10 rotate <15,30,5>]
 +
      [0.9 leopard 8 triangle_wave scale <3,.5,1>*10 rotate <15,30,5>]
 +
    }
 +
    scallop_wave
 +
    scale <3,.5,1>*10
 +
    rotate <15,30,5>
 +
  }
 +
  finish {
 +
    diffuse .35
 +
    fresnel on
 +
    reflection {<.05,.075,.1> fresnel on} crand .013
 +
    brilliance -.3*Vt
 +
  }
 +
}
 +
 
 +
#declare T3 =
 +
texture {
 +
  pigment {
 +
    granite frequency .5
 +
    color_map {
 +
      [0 color rgb Cv5*Vb]
 +
      [1 color rgb Cv6*Vb]
 +
    }
 +
    triangle_wave
 +
  }
 +
  normal {
 +
    bozo 5 
 +
    turbulence .9
 +
    normal_map {
 +
      [0.1 wrinkles 8 triangle_wave scale <3,.5,1>*10 rotate <15,30,5>]
 +
      [0.3 crackle 8 scallop_wave scale <3,.5,1>*10 rotate <15,30,5>]
 +
      [0.9 leopard 8 triangle_wave scale <3,.5,1>*10 rotate <15,30,5>]
 +
    }
 +
    sine_wave
 +
    scale <3,.5,1>*15
 +
    rotate <15,30,5>
 +
  }
 +
  finish {
 +
    diffuse .4
 +
    fresnel on
 +
    reflection {<.05,.075,.1> fresnel on} crand .013
 +
    brilliance -.35*Vt
 +
  }
 +
}
 +
 
 +
#declare Tf =
 +
texture {
 +
  pigment {
 +
    wrinkles frequency 2
 +
    color_map {
 +
      [0 color Cfv1*Vb]
 +
      [1 color Cfv2*Vb]
 +
    } 
 +
  }
 +
  finish {
 +
    diffuse 1.25
 +
    fresnel on
 +
    reflection {<.05,.075,.1> fresnel on} crand .013
 +
    brilliance -.75*Vt
 +
    metallic .6
 +
  }
 +
}
 +
texture {
 +
  pigment {
 +
    wrinkles frequency 2
 +
    color_map {
 +
      [0 color Cfv1*Vb]
 +
      [1 color Cfv2*Vb]
 +
    } 
 +
  }
 +
  finish {
 +
    diffuse .05
 +
    fresnel on
 +
    reflection {<.05,.075,.1>*.25 fresnel on} crand .013
 +
    brilliance .125*Vt
 +
    metallic .3
 +
  }
 +
}
 +
 
 +
#declare P1 =
 +
pigment {
 +
  granite
 +
  color_map {
 +
    [0 color Cfv1a*Vb]
 +
    [1 color Cfv1b*Vb]
 +
  }
 +
}
 +
 
 +
#declare P2 =
 +
pigment {
 +
  granite
 +
  color_map {
 +
    [0 color Cfv2a*Vb]
 +
    [1 color Cfv2b*Vb]
 +
  }
 +
}
 +
 
 +
#declare Tp1 =
 +
texture {
 +
  pigment {
 +
    gradient x turbulence .09 frequency .333
 +
    pigment_map {
 +
      [0 P1]
 +
      [1 P2]
 +
    }
 +
    scallop_wave
 +
  }
 +
  finish {
 +
    diffuse .5
 +
    fresnel on
 +
    reflection {<.05,.075,.1> fresnel on} crand .016
 +
    brilliance .125*Vt
 +
  }
 +
}
 +
 
 +
#declare Tp2 =
 +
texture {
 +
  pigment {
 +
    gradient y turbulence .09 frequency .333
 +
    pigment_map {
 +
      [0 P1]
 +
      [1 P2]
 +
    }
 +
    scallop_wave
 +
  }
 +
  finish {
 +
    diffuse .5
 +
    fresnel on
 +
    reflection {<.05,.075,.1> fresnel on} crand .016
 +
    brilliance .125*Vt
 +
  }
 +
}
 +
 
 +
#declare Tp3 =
 +
texture {
 +
  pigment {
 +
    gradient z turbulence .09 frequency .333
 +
    pigment_map {
 +
      [0 P1]
 +
      [1 P2]
 +
    }
 +
    scallop_wave
 +
  }
 +
  finish {
 +
    diffuse .5
 +
    fresnel on
 +
    reflection {<.05,.075,.1> fresnel on} crand .016
 +
    brilliance .125*Vt
 +
  }
 +
}
 +
 
 +
//  FINAL VELVET TEXTURE
 +
#declare CVelvet =
 +
texture {
 +
  average
 +
  texture_map {
 +
    [1.000 T1]
 +
    [0.750 T2]
 +
    [0.875 T3]
 +
    [0.705 Tf]
 +
    [0.900 Tp1]
 +
    [0.900 Tp2]
 +
    [0.900 Tp3]
 +
  }
 +
  warp {turbulence 2.5} //added by TdG (2023)
 +
  scale .05*Vs
 +
}
 +
 
 +
#end  //of Velvet macro
 +
</source>
 +
 
  
  
  
  
 +
<p>blah blah blah blah blah.......</p>
  
blah blah blah blah blah.......
 
  
  
 
<hr /><hr />
 
<hr /><hr />

Latest revision as of 12:46, 16 April 2026

INTRODUCTION

This is a haphazard collection of stuff assembled over the last 30 years and written by a large number of POV-Ray users.

I am not the original writer/owner of the following files, only the collector. For all files the usual copyright terms of POV-Ray apply:


The files are licensed under the terms of the CC-LGPL.

Use and/or modification of the scenes is free, except for commercial purposes.

Commercial distribution is not allowed without written permission from their mentioned authors.


MORAY-GENERATED FILES AND AXES ORIENTATION

Some of the scene files below were generated by Moray V3.01 For Windows (c) 1991-1998 Lutz + Kretzschmar.

The scene axes orientation of these scene files are right-handed with the z-axis pointing upwards!

If you want to use them in a POV-Ray environment you need to convert them to the standard orientation (left-handed with the y-axis pointing upwards).

You can achieve this by applying the following transformation to each of the elements/objects in the files:

transform {
  scale <1, 1, -1>
  rotate <90, 0, 0>
}

Usage example:

#include "MyIncludeFile.inc"
object {MyObject 
  texture {MyTexture}
  transform {
    scale <1, 1, -1>
    rotate <90, 0, 0>
  }
}


LIST OF TOPICS

  • cloth
  • constructions
  • glass
  • landscape
  • nature
  • plants
  • rocks
  • sky


TOPIC: SKY


topic: sky

title: Rainbow

Carlucci's Rainbow

year: 1998

author: Angelo Carlucci

description: A rainbow as seen through a raindrop-spattered window.

link: none available

comment 1: This scene file was originally generated for POV-Ray V3.0 by Moray V3.01 For Windows (c) 1991-1998 Lutz + Kretzschmar. Created for the "IRTC".

comment 2: See above for how to handle those files.

code snippets: To help interpret and use Moray-generated POV-Ray code, the original global_settings and camera codes have also been provided.

global_settings {
  adc_bailout 0.003922
  ambient_light <1.0,1.0,1.0>
  assumed_gamma 1.9
  hf_gray_16 off
  irid_wavelength <0.247059,0.176471,0.137255>
  max_intersections 64
  max_trace_level 10
  number_of_waves 10
  radiosity {
    brightness       3.3
    count            100
    //distance_maximum 0.0
    error_bound      0.4
    gray_threshold   0.5
    low_error_factor 0.8
    minimum_reuse    0.015
    nearest_count    6
    recursion_limit  1
  }
}

camera {
  location  <-4.550, 6.800, 5.000>
  direction <0.0,     0.0,  1.2659>
  sky       <0.0,     0.0,  1.0>  // Use right handed-system!
  up        <0.0,     0.0,  1.0>  // Where Z is up
  right     <1.33333,  0.0,  0.0>
  look_at   <-2.250, 3.600, 6.800>
  // Focal blur settings
  focal_point  <-2.250, 3.600, 6.800> // Always Lookat
  aperture     0.3
  blur_samples 100
  confidence   0.999
  variance     0.0001
}

#declare Rainbow = 
texture {   
  pigment {
    wood
    color_map {
      [ 0.000000  rgbft <1.0, 1.0, 1.0, 0.0, 1.0> ]
      [ 0.789894  rgbft <1.0, 1.0, 1.0, 0.0, 1.0> ]
      [ 0.805851  rgbft <0.6, 0.0, 1.0, 0.0, 0.95> ]
      [ 0.819149  rgbft <0.0, 0.0, 1.0, 0.0, 0.92> ]
      [ 0.837766  rgbft <0.0, 1.0, 0.0, 0.0, 0.85> ]
      [ 0.861702  rgbft <1.0, 1.0, 0.0, 0.0, 0.85> ]
      [ 0.938830  rgbft <1.0, 0.0, 0.0, 0.0, 0.85> ]
      [ 1.000000  rgbft <1.0, 1.0, 0.986667, 0.0, 1.0> ]
    }
    scale  2.0
  }   
  finish {
    ambient 0.7
    diffuse 0.0
  }
}

disc {
  <0,0,0>, <0,0,1>, 1.0
  texture {Rainbow}
  no_shadow
  scale 50.0
  rotate <-45.0, -90.0, 0.0>
  translate  <31.1, 3.35, -10.8>
}

next blah blah blah...




TOPIC: CLOTH


topic: cloth

title: Crushed Velvet

Bob Hughes' Crushed Velvet

year: 2000

author: Bob Hughes

description: An attempt at making a crushed velvet texture.

link: https://news.povray.org/povray.text.scene-files/thread/%3C389e81fc%40news.povray.org%3E/?ttop=440712&toff=700

comment: Updated to POV-Ray 3.8, added warp turbulence, and changed to macro access by TdG (2023).

code: The following code should be saved in an include file, like crushedvelvet.inc


#macro Velvet(Vb,Vt,Vs,Vc)
// BEGIN VELVET CHOICES

// Color Brightness [ > 0 to 2 ? ]
#ifndef (Vb) #declare Vb = 1; #end
// Velvet Thickness [ 0 to 3 ? ]
#ifndef (Vt) #declare Vt = 1.5; #end
// Velvet Size [ 0 to 6 ? ]
#ifndef (Vs) #declare Vs = 1; #end
// Color Choice [ 1= black, 2= red, 3= green, 4= blue ]
#ifndef (Vc) #declare Vc = 2; #end

// END VELVET CHOICES

// Color Choice
#switch (Vc)
#case (1)
// Black
#declare Cv1 = <.05,.05,.05>;
#declare Cv2 = <.1,.1,.1>;
#declare Cv3 = <.075,.075,.075>;
#declare Cv4 = <.1,.1,.1>;
#declare Cv5 = <.05,.05,.05>;
#declare Cv6 = <.1,.1,.1>;
#declare Cfv1 = rgbf<.05,.05,.05,.4>;
#declare Cfv2 = rgbf<.1,.1,.1,.5>;
#declare Cfv1a = rgbf<.05,.05,.05,.1>;
#declare Cfv1b = rgbf<.1,.1,.1,.05>;
#declare Cfv2a = rgbf<.05,.05,.05,.1>;
#declare Cfv2b = rgbf<.1,.1,.1,.05>;
#break
#case (2)
// Red
#declare Cv1 = <.7,.1,.1>;
#declare Cv2 = <.75,.15,.2>;
#declare Cv3 = <.65,.15,.15>;
#declare Cv4 = <.65,.15,.25>;
#declare Cv5 = <.6,.1,.1>;
#declare Cv6 = <.65,.15,.15>;
#declare Cfv1 = rgbf<.5,.1,.1,.4>;
#declare Cfv2 = rgbf<.55,.1,.15,.5>;
#declare Cfv1a = rgbf<.6,.1,.1,.1>;
#declare Cfv1b = rgbf<.65,.15,.15,.05>;
#declare Cfv2a = rgbf<.6,.1,.1,.1>;
#declare Cfv2b = rgbf<.75,.15,.25,.05>;
#break
#case (3)
// Green
#declare Cv1 = <.1,.5,.2>;
#declare Cv2 = <.1,.65,.25>;
#declare Cv3 = <.1,.5,.3>;
#declare Cv4 = <.2,.6,.2>;
#declare Cv5 = <.1,.7,.1>;
#declare Cv6 = <.15,.65,.25>;
#declare Cfv1 = rgbf<.2,.5,.2,.4>;
#declare Cfv2 = rgbf<.3,.55,.25,.5>;
#declare Cfv1a = rgbf<.2,.6,.3,.1>;
#declare Cfv1b = rgbf<.2,.7,.3,.05>;
#declare Cfv2a = rgbf<.1,.6,.15,.1>;
#declare Cfv2b = rgbf<.15,.65,.2,.05>;
#break
#case (4)
// Blue
#declare Cv1 = <.1,.3,.7>;
#declare Cv2 = <.2,.4,.65>;
#declare Cv3 = <.12,.24,.58>;
#declare Cv4 = <.3,.5,.6>;
#declare Cv5 = <.2,.4,.7>;
#declare Cv6 = <.25,.35,.65>;
#declare Cfv1 = rgbf<.22,.34,.77,.4>;
#declare Cfv2 = rgbf<.35,.45,.75,.5>;
#declare Cfv1a = rgbf<.12,.24,.6,.1>;
#declare Cfv1b = rgbf<.2,.3,.7,.05>;
#declare Cfv2a = rgbf<.12,.24,.6,.1>;
#declare Cfv2b = rgbf<.2,.3,.7,.05>;
#break
#end

// BEGIN VELVET TEXTURE DEFINITION

#declare T1 =
texture {
  pigment {
    wrinkles frequency .666 
    color_map {
      [0 color rgb Cv1*Vb]
      [1 color rgb Cv2*Vb]
    } 
    sine_wave 
  }
  normal { 
    crackle 10 
    normal_map {
      [0.1 wrinkles 8 triangle_wave scale <3,.5,1>*10 rotate <15,30,5>]
      [0.3 crackle 8 scallop_wave scale <3,.5,1>*10 rotate <15,30,5>]
      [0.9 leopard 8 triangle_wave scale <3,.5,1>*10 rotate <15,30,5>]
    } 
    triangle_wave 
    scale <3,.5,1>*5 
    rotate <15,30,5> 
  }
  finish {
    diffuse .3
    fresnel on
    reflection {<.05,.075,.1> fresnel on} crand .013
    brilliance -.25*Vt
  }
}

#declare T2 =
texture {
  pigment { 
    crackle frequency 2 
    color_map {
      [0 color rgb Cv3*Vb]
      [1 color rgb Cv4*Vb]
    } 
    scallop_wave 
  }
  normal { 
    agate 7.5 agate_turb .6 
    normal_map {
      [0.1 wrinkles 8 triangle_wave scale <3,.5,1>*10 rotate <15,30,5>]
      [0.3 crackle 8 scallop_wave scale <3,.5,1>*10 rotate <15,30,5>]
      [0.9 leopard 8 triangle_wave scale <3,.5,1>*10 rotate <15,30,5>]
    }
    scallop_wave 
    scale <3,.5,1>*10 
    rotate <15,30,5> 
  }
  finish {
    diffuse .35
    fresnel on
    reflection {<.05,.075,.1> fresnel on} crand .013
    brilliance -.3*Vt
  }
}

#declare T3 =
texture {
  pigment { 
    granite frequency .5 
    color_map {
      [0 color rgb Cv5*Vb]
      [1 color rgb Cv6*Vb]
    } 
    triangle_wave 
  }
  normal { 
    bozo 5  
    turbulence .9 
    normal_map {
      [0.1 wrinkles 8 triangle_wave scale <3,.5,1>*10 rotate <15,30,5>]
      [0.3 crackle 8 scallop_wave scale <3,.5,1>*10 rotate <15,30,5>]
      [0.9 leopard 8 triangle_wave scale <3,.5,1>*10 rotate <15,30,5>]
    } 
    sine_wave 
    scale <3,.5,1>*15 
    rotate <15,30,5> 
  }
  finish {
    diffuse .4
    fresnel on
    reflection {<.05,.075,.1> fresnel on} crand .013
    brilliance -.35*Vt
  }
}

#declare Tf =
texture {
  pigment { 
    wrinkles frequency 2 
    color_map {
      [0 color Cfv1*Vb]
      [1 color Cfv2*Vb]
    }  
  }
  finish {
    diffuse 1.25
    fresnel on
    reflection {<.05,.075,.1> fresnel on} crand .013
    brilliance -.75*Vt 
    metallic .6
  }
}
texture {
  pigment { 
    wrinkles frequency 2 
    color_map {
      [0 color Cfv1*Vb]
      [1 color Cfv2*Vb]
    }  
  }
  finish {
    diffuse .05
    fresnel on
    reflection {<.05,.075,.1>*.25 fresnel on} crand .013
    brilliance .125*Vt 
    metallic .3
  }
}

#declare P1 =
pigment { 
  granite 
  color_map {
    [0 color Cfv1a*Vb]
    [1 color Cfv1b*Vb]
  } 
}

#declare P2 =
pigment { 
  granite 
  color_map {
    [0 color Cfv2a*Vb]
    [1 color Cfv2b*Vb]
  } 
}

#declare Tp1 =
texture {
  pigment { 
    gradient x turbulence .09 frequency .333
    pigment_map {
      [0 P1]
      [1 P2]
    } 
    scallop_wave 
  }
  finish {
    diffuse .5
    fresnel on
    reflection {<.05,.075,.1> fresnel on} crand .016
    brilliance .125*Vt
  }
}

#declare Tp2 =
texture {
  pigment { 
    gradient y turbulence .09 frequency .333
    pigment_map {
      [0 P1]
      [1 P2]
    } 
    scallop_wave 
  }
  finish {
    diffuse .5
    fresnel on
    reflection {<.05,.075,.1> fresnel on} crand .016
    brilliance .125*Vt
  }
}

#declare Tp3 =
texture {
  pigment { 
    gradient z turbulence .09 frequency .333
    pigment_map {
      [0 P1]
      [1 P2]
    } 
    scallop_wave 
  }
  finish {
    diffuse .5
    fresnel on
    reflection {<.05,.075,.1> fresnel on} crand .016
    brilliance .125*Vt
  }
}

//  FINAL VELVET TEXTURE
#declare CVelvet =
texture { 
  average
  texture_map {
    [1.000 T1]
    [0.750 T2]
    [0.875 T3]
    [0.705 Tf]
    [0.900 Tp1]
    [0.900 Tp2]
    [0.900 Tp3]
  }
  warp {turbulence 2.5} //added by TdG (2023)
  scale .05*Vs
}

#end  //of Velvet macro



blah blah blah blah blah.......