displacement windows param float Ka 1 param float Kd 0.5 param float Ks 0.5 param float roughness 0.1 param color specularcolor 1 1 1 param float freq 4 param float Km 0.005 param color window_color 0 0 0 param float w_base 0.2 param float w_height 0.2 param float w_width 0.8 param float gap 0.025 param float maxT 0.8 param float minT 0.2 local color surface_color 0 0 0 local color surface_opac 0 0 0 local color window_opac 0 0 0 local float fuzz 0 local float base_surface 0 local float windows_surface 0 local float numOfWindowsPerSquare 0 local float ss 0 local float tt 0 local float col 0 local color _2$groove_color 0 0 0 local normal Nf 0 0 0 initcode 7 pushiv 1 1 1 popc window_color initcode 13 return code pushc Cs popc surface_color pushc Os popc surface_opac pushif 0.0025 popf fuzz pushif 0 popf base_surface pushif 2 popf numOfWindowsPerSquare pushif 1 pushf freq mulF numOfWindowsPerSquare mulF s mod popf ss pushif 1 pushf freq mulF t mod popf tt pushf freq mulF numOfWindowsPerSquare mulF s floor popf col pushif 0 pushif 2 pushf col mod feqf ifz 0 pushf ss pushf gap pushif 2 mulff pushf fuzz pushf gap pushif 2 mulff subff smoothstep pushf ss pushif 0 pushf fuzz pushif 0 subff smoothstep subff pushif 1 subff popf windows_surface pushf base_surface pushf windows_surface fmax popf base_surface pushiv 0 0 0 popc _2$groove_color pushf ss pushf gap pushif 2 mulff pushf fuzz pushf gap pushif 2 mulff subff smoothstep pushf ss pushif 0 pushf fuzz pushif 0 subff smoothstep subff cset window_opac pushc window_opac mulC _2$groove_color pushc window_opac pushif 1 ftoc subcc mulC surface_color addcc popc surface_color label 0 label 1 pushf minT pushf t gt pushf maxT pushf t lt and ifz 2 pushf tt pushf w_height addF w_base pushf fuzz pushf w_height addF w_base subff smoothstep pushf tt pushf w_base pushf fuzz subF w_base smoothstep subff popf windows_surface pushf base_surface pushf windows_surface fmax popf base_surface pushf gap pushf w_height addF w_base subff pushf tt lt pushf gap addF w_base pushf tt gt and ifz 4 pushf ss pushif 2 divF w_width pushif 0.5 addff pushf fuzz pushif 2 divF w_width pushif 0.5 addff subff smoothstep pushf ss pushif 2 divF w_width pushif 0.5 subff pushf fuzz pushif 2 divF w_width pushif 0.5 subff subff smoothstep subff pushif 1 subff popf windows_surface pushf base_surface pushf windows_surface fmin popf base_surface pushf ss pushif 2 divF w_width pushif 0.5 addff pushf fuzz pushif 2 divF w_width pushif 0.5 addff subff smoothstep pushf ss pushif 2 divF w_width pushif 0.5 subff pushf fuzz pushif 2 divF w_width pushif 0.5 subff subff smoothstep subff cset window_opac pushc window_opac mulC window_color pushc window_opac pushif 1 ftoc subcc mulC surface_color addcc popc surface_color label 4 label 5 label 2 label 3 pushv N normalize pushf base_surface mulF Km mulfv addV P popv P pushv P calculatenormal popv N return_area pushv I pushv N normalize faceforward popv Nf cpCC surface_opac Oi pushc window_color pushc surface_color cnec ifz 6 pushf roughness pushv I normalize negv pushv Nf specular pushf Ks pushc specularcolor mulcf mulcc pushv Nf diffuse mulFv Kd ambient mulFv Ka addcc mulC surface_color addcc mulC surface_opac popc Ci jump 7 label 6 cpCC window_color Ci label 7 return