displacement stonebump param float jagged 0.006 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 float sstone 0 local float tstone 0 local float ss 0 local float tt 0 local float fact 0 local float disp 0 local float BMWIDTH 0 local float BMHEIGHT 0 local float MWF 0 local float MHF 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 initcode 7 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 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 pushif 1 popf fact pushif 0 popf disp pushf MHF pushf tt lt ifz 3 pushif 1 pushf MHF divF tt pushf MHF divF tt mulff subff mulF groovedepth popf disp jump 4 label 3 pushf MHF pushif 1 subff pushf tt gt ifz 5 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 5 label 6 label 4 pushf MWF pushf ss lt ifz 7 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 8 label 7 pushf MWF pushif 1 subff pushf ss gt ifz 9 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 9 label 10 label 8 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.25 pushf fact pushif 0.75 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 return