surface stone param float Ka 1 param float Kd 1 param color stonecolor 0 0 0 param color mortarcolor 0 0 0 param float raggedamp 0.04 param float raggedfreq 12 param float jagged 0.006 param float stonevary 0.6 param float stonewidth 0.28 param float stoneheight 0.14 param float mortarthickness 0.007 param float rowvary 0.5 param float pitting 0.01 param float pockfrequency 10 param float groovedepth 0.01 local color bcolor 0 0 0 local color Ct 0 0 0 local normal Nf 0 0 0 local float sstone 0 local float tstone 0 local float w 0 local float h 0 local float ss 0 local float tt 0 local float swidth 0 local float twidth 0 local float BMWIDTH 0 local float BMHEIGHT 0 local float MWF 0 local float MHF 0 local float whichstone 0 local float fact 0 local float disp 0 local float _15$rowstagger 0 code local float _15$rowstaggervary 0 code local float _15$jaggedfreq 0 code local point _15$PP 0 0 0 local float _15$scoord 0 local float _15$tcoord 0 local float _14$edge1 0 code local float _14$x0 0 local float _14$x1 0 initcode 2 pushiv 0.3 0.3 0.3 popc stonecolor initcode 3 pushiv 0.1 0.1 0.1 popc mortarcolor initcode 14 return code pushf mortarthickness addF stonewidth popf BMWIDTH pushf mortarthickness addF stoneheight popf BMHEIGHT pushf BMWIDTH pushif 0.5 divff mulF mortarthickness popf MWF pushf BMHEIGHT pushif 0.5 divff mulF mortarthickness popf MHF pushf BMWIDTH pushif 1e-006 pushif 1e-006 pushf dv pushf dsdv mulff abs pushf du pushf dsdu mulff abs addff fmax fmax divff pushif 1.5 mulff popf swidth pushf BMHEIGHT pushif 1e-006 pushif 1e-006 pushf dv pushf dtdv mulff abs pushf du pushf dtdu mulff abs addff fmax fmax divff pushif 1.5 mulff popf twidth pushif 0.5 popf _15$rowstagger pushif 0.2 popf _15$rowstaggervary pushif 1 popf _15$jaggedfreq pushf s popf _15$scoord pushf t popf _15$tcoord pushif 0 pushf jagged fnef ifz 1 pushf BMHEIGHT divF _15$jaggedfreq mulF t pushf BMWIDTH divF _15$jaggedfreq mulF s pointnoiseff popv _15$PP pushv _15$PP xcomp mulF jagged addF _15$scoord popf _15$scoord pushv _15$PP ycomp mulF jagged addF _15$tcoord popf _15$tcoord label 1 label 2 pushf BMWIDTH divF _15$scoord popf ss pushf BMHEIGHT divF _15$tcoord popf tt pushf tt floor popf tstone pushif 1 pushf tstone mulF _15$rowstagger mod addF ss popf ss pushif 0.5 pushif 0.5 addF tstone noisef subff mulF _15$rowstaggervary addF ss popf ss pushf ss floor popf sstone pushf sstone subF ss popf ss pushf tstone subF tt popf tt label 0 pushf tstone pushf sstone pushif 103 mulff addff popf whichstone pushif 1 pushf raggedfreq pushif 23.8 mulF sstone addF t mulff pushf raggedfreq pushif 5.15 mulF tstone addF s mulff noiseff pushif 2 mulff subff mulF raggedamp addF ss popf ss pushif 1 pushf raggedfreq pushif 7.2 mulF sstone addF t mulff pushf raggedfreq pushif 11.4 mulF tstone addF s mulff noiseff pushif 2 mulff subff mulF raggedamp addF tt popf tt pushif 1 pushif 2 pushf raggedfreq pushif 23.8 mulF sstone addF t mulff mulff pushif 2 pushf raggedfreq pushif 5.15 mulF tstone addF s mulff mulff noiseff pushif 2 mulff subff pushif 2 divF raggedamp mulff addF ss popf ss pushif 1 pushif 2 pushf raggedfreq pushif 7.2 mulF sstone addF t mulff mulff pushif 2 pushf raggedfreq pushif 11.4 mulF tstone addF s mulff mulff noiseff pushif 2 mulff subff pushif 2 divF raggedamp mulff addF tt popf tt pushif 1 pushf swidth ge ifz 3 pushf MWF pushif 2 mulff pushif 1 subff popf w jump 4 label 3 pushif 1 pushif 0 pushf swidth divF MWF pushif 1 subff fmax pushf MWF pushif 1 subff popf _14$edge1 pushif 0.5 mulF swidth subF ss popf _14$x0 pushf swidth addF _14$x0 popf _14$x1 pushf swidth pushf MWF pushf _14$x0 fmax pushf _14$edge1 pushf _14$x1 fmin subff divff pushif 0 fmax jump 5 label 5 fclamp popf w label 4 pushif 1 pushf twidth ge ifz 6 pushf MHF pushif 2 mulff pushif 1 subff popf h jump 7 label 6 pushif 1 pushif 0 pushf twidth divF MHF pushif 1 subff fmax pushf MHF pushif 1 subff popf _14$edge1 pushif 0.5 mulF twidth subF tt popf _14$x0 pushf twidth addF _14$x0 popf _14$x1 pushf twidth pushf MHF pushf _14$x0 fmax pushf _14$edge1 pushf _14$x1 fmin subff divff pushif 0 fmax jump 8 label 8 fclamp popf h label 7 pushif 1 popf fact pushif 0 popf disp pushf MHF pushf tt lt ifz 9 pushif 1 pushf MHF divF tt pushf MHF divF tt mulff subff mulF groovedepth popf disp jump 10 label 9 pushf MHF pushif 1 subff pushf tt gt ifz 11 pushif 1 pushf MHF pushf tt pushif 1 subff divff pushf MHF pushf tt pushif 1 subff divff mulff subff mulF groovedepth popf disp label 11 label 12 label 10 pushf MWF pushf ss lt ifz 13 pushif 1 pushf MWF divF ss pushf MWF divF ss mulff subff pushf groovedepth pushif 0.85 mulff mulff pushf disp fmin popf disp jump 14 label 13 pushf MWF pushif 1 subff pushf ss gt ifz 15 pushif 1 pushf MWF pushf ss pushif 1 subff divff pushf MWF pushf ss pushif 1 subff divff mulff subff pushf groovedepth pushif 0.85 mulff mulff pushf disp fmin popf disp label 15 label 16 label 14 pushf tt pushif 1 pushf MHF pushif 1.3 mulff pushif 1 subff smoothstep pushf tt pushf MHF pushif 1.3 mulff pushif 0 smoothstep subff popf fact pushf ss pushif 1 pushf MWF pushif 1.3 mulff pushif 1 subff smoothstep pushf ss pushf MWF pushif 1.3 mulff pushif 0 smoothstep subff mulF fact popf fact pushif 0.5 pushf fact pushif 0.5 mulff addff mulF pitting popf fact pushif 0.25 pushf BMWIDTH divF pockfrequency pushf tstone addF tt mulff pushf BMHEIGHT divF pockfrequency pushf sstone addF ss mulff noiseff pow mulF fact subF disp popf disp pushv N normalize mulFv disp addV P popv P pushv P calculatenormal popv N return_area pushv I pushv N normalize faceforward popv Nf pushif 1 pushif 0.5 addF whichstone noisef pushif 2 mulff subff mulF stonevary pushif 1 addff pushc stonecolor mulcf popc bcolor pushf h mulF w pushc bcolor pushc mortarcolor cmix popc Ct cpCC Os Oi pushv Nf diffuse mulFv Kd ambient mulFv Ka addcc pushc Ct mulC Os mulcc popc Ci return