Name
*
Code
{"properties":{"frame":0,"maxFrame":600,"maxFrameLocked":false,"realtimeState":true,"masterCameraNodePath":"/perspectiveCamera1","versions":{"polygonjs":"1.1.131"}},"root":{"type":"obj","nodes":{"hemisphereLight1":{"type":"hemisphereLight","params":{"skyColor":[0.2,0.6980392156862745,1],"groundColor":[0.09803921568627451,0.09803921568627451,0.24705882352941178]},"flags":{"display":true}},"perspectiveCamera1":{"type":"perspectiveCamera","nodes":{"events1":{"type":"eventsNetwork","nodes":{"cameraOrbitControls1":{"type":"cameraOrbitControls","params":{"target":[0.007756875539104444,0.7982663715017727,0.07774279157645479]}}},"selection":["cameraOrbitControls1"]}},"params":{"t":[1.5213465648197058,0.6993442394152822,2.660845303651476],"r":[2.193119444810336,30.35020353486505,-1.1085512292109307],"controls":"./events1/cameraOrbitControls1","near":0.1,"far":10},"flags":{"display":true}},"spotLight1":{"type":"spotLight","params":{"r":[90,0,0],"color":[0.7490196078431373,0.8627450980392157,0.9098039215686274],"distance":7.6,"castShadow":0,"tvolumetric":1,"volAttenuation":2.7,"volAnglePower":18.4},"inputs":["polarTransform1"],"flags":{"display":true}},"COP":{"type":"copNetwork","nodes":{"imageEnv":{"type":"image","params":{"url":"https://raw.githubusercontent.com/polygonjs/polygonjs-assets/master/textures/piz_compressed.exr"}},"imageUv":{"type":"image","params":{"url":"https://raw.githubusercontent.com/polygonjs/polygonjs-assets/master/textures/uv.jpg","tflipY":true}},"envMap":{"type":"envMap","inputs":["imageEnv"]}}},"ground":{"type":"geo","nodes":{"plane1":{"type":"plane","params":{"size":[6,6],"direction":[0,0,1]}},"reflector1":{"type":"reflector","params":{"tblur":1,"blur":0.25,"verticalBlurMult":4.5,"tblur2":1,"blur2":0.04},"inputs":["transform1"],"flags":{"display":true}},"transform1":{"type":"transform","params":{"applyOn":1,"t":[0,0.020000000000000018,0],"r":[-90,0,0]},"inputs":["plane1"]},"transform2":{"type":"transform","params":{"applyOn":1,"r":[-90,0,0]},"inputs":["plane1"]}},"flags":{"display":true},"selection":["transform1"]},"text":{"type":"geo","nodes":{"box1":{"type":"box","params":{"center":[0,0.5,0]}},"transform3":{"type":"transform","params":{"t":[0.08600000000000001,0,0],"s":[0.56,1,0.1]},"inputs":["material1"]},"tube1":{"type":"tube","params":{"height":1.2,"segmentsRadial":20}},"boolean1":{"type":"boolean","params":{"operation":1,"useBothMaterials":0},"inputs":["transform3","transform_ANIM_A_1"]},"boolean2":{"type":"boolean","params":{"operation":1,"useBothMaterials":0},"inputs":["boolean1","transform_ANIM_B_1"]},"boolean3":{"type":"boolean","params":{"operation":1},"inputs":["boolean2","transform_ANIM_C_1"]},"tube2":{"type":"tube","params":{"segmentsRadial":40}},"transform7":{"type":"transform","params":{"s":[1,1,4.2],"scale":0.47},"inputs":["tube2"]},"boolean4":{"type":"boolean","params":{"operation":1},"inputs":["tube2","transform7"]},"transform8":{"type":"transform","params":{"t":[0,"-bbox(0, 'min').y",0]},"inputs":["material4"]},"box3":{"type":"box","params":{"center":[-0.5,0,0]}},"boolean5":{"type":"boolean","params":{"operation":1},"inputs":["boolean4","transform9"]},"transform9":{"type":"transform","params":{"s":[1,2.1,1]},"inputs":["box3"]},"transform10":{"type":"transform","params":{"t":[0,0.5,0],"scale":0.4},"inputs":["transform8"]},"boolean6":{"type":"boolean","params":{"operation":1},"inputs":["boolean5","transform11"]},"transform11":{"type":"transform","params":{"t":[1,-1.53,0],"s":[1,2.1,1]},"inputs":["box3"]},"transform_ROTATE_180":{"type":"transform","params":{"r":[180,0,0]},"inputs":["material4"]},"transform12":{"type":"transform","params":{"t":[0,"-bbox(0, 'max').y",0]},"inputs":["transform_ROTATE_180"]},"transform13":{"type":"transform","params":{"t":[0.06,0.5,0],"scale":0.4},"inputs":["transform12"]},"boolean7":{"type":"boolean","params":{"operation":1},"inputs":["boolean3","transform_ANIM_D_1"]},"box2":{"type":"box","params":{"center":[0,0.5,0]}},"transform14":{"type":"transform","params":{"t":[0,0.88,0],"scale":0.4},"inputs":["material5"]},"boolean8":{"type":"boolean","params":{"operation":1},"inputs":["boolean7","transform_ANIM_E_1"]},"transform_ROTATE_181":{"type":"transform","params":{"r":[180,0,0]},"inputs":["material5"]},"transform15":{"type":"transform","params":{"t":[0,"1-ch(\"../transform14/ty\")",0],"scale":0.4},"inputs":["transform_ROTATE_181"]},"boolean9":{"type":"boolean","params":{"operation":1},"inputs":["boolean8","transform_ANIM_F_1"]},"transform_top_center":{"type":"transform","params":{"t":[0,0.6900000000000001,0],"s":[1,1,5.1],"scale":0.093},"inputs":["tube1"]},"transform_bottom_center":{"type":"transform","params":{"t":[0.04,"1 - ch(\"../transform_top_center/ty\")",0],"s":[1,1,5.1],"scale":"ch(\"../transform_top_center/scale\")"},"inputs":["tube1"]},"box4":{"type":"box","params":{"size":2,"center":[-0.5,0,0]}},"transform4":{"type":"transform","params":{"t":[-0.022,"ch(\"../transform_top_center/ty\")",0],"s":[0.6000000000000001,1,1.27],"scale":"ch(\"../transform_top_center/scale\")"},"inputs":["material6"]},"boolean10":{"type":"boolean","params":{"operation":1},"inputs":["boolean9","transform_ANIM_G_1"]},"transform5":{"type":"transform","params":{"t":["-0.022+ch(\"../transform_bottom_center/tx\")","ch(\"../transform_bottom_center/ty\")",0],"s":[0.8800000000000001,1,1.27],"scale":"ch(\"../transform_top_center/scale\")"},"inputs":["material6"]},"boolean11":{"type":"boolean","params":{"operation":1},"inputs":["boolean10","transform_ANIM_H_1"]},"box5":{"type":"box"},"transform1":{"type":"transform","params":{"t":[0.3256592459977054,0.9426476823676182,0],"s":[0.22833544271916356,0.24409158047343557,0.6428867151950228]},"inputs":["material7"]},"boolean12":{"type":"boolean","params":{"operation":1},"inputs":["boolean11","transform_ANIM_I_1"]},"transform2":{"type":"transform","params":{"t":[0.3256592459977054,0.5225047199433819,0],"s":[0.22833544271916356,0.24409158047343557,0.6428867151950228],"scale":0.8},"inputs":["material7"]},"boolean13":{"type":"boolean","params":{"operation":1},"inputs":["boolean12","transform_ANIM_J_1"]},"boolean14":{"type":"boolean","params":{"operation":1},"inputs":["boolean13","transform_ANIM_K_1"]},"transform6":{"type":"transform","params":{"t":[0.3256592459977054,0.056596670405528016,0],"s":[0.22833544271916356,0.24409158047343557,0.6428867151950228]},"inputs":["material7"]},"MAT":{"type":"materialsNetwork","nodes":{"meshStandardBuilder_BOX":{"type":"meshStandardBuilder","nodes":{"globals1":{"type":"globals"},"output1":{"type":"output"}},"persisted_config":{"material":{"metadata":{"version":4.5,"type":"Material","generator":"Material.toJSON"},"uuid":"/text/MAT/meshStandardBuilder_BOX-main","type":"ShaderMaterial","name":"/text/MAT/meshStandardBuilder_BOX","color":16777215,"depthFunc":3,"depthTest":true,"depthWrite":true,"colorWrite":true,"stencilWrite":false,"stencilWriteMask":255,"stencilFunc":519,"stencilRef":0,"stencilFuncMask":255,"stencilFail":7680,"stencilZFail":7680,"stencilZPass":7680,"glslVersion":null,"uniforms":{"diffuse":{"type":"c","value":15658734},"opacity":{"value":1},"map":{"value":null},"uvTransform":{"type":"m3","value":[1,0,0,0,1,0,0,0,1]},"uv2Transform":{"type":"m3","value":[1,0,0,0,1,0,0,0,1]},"alphaMap":{"value":null},"envMap":{"value":null},"flipEnvMap":{"value":-1},"reflectivity":{"value":1},"refractionRatio":{"value":0.98},"maxMipLevel":{"value":0},"aoMap":{"value":null},"aoMapIntensity":{"value":1},"lightMap":{"value":null},"lightMapIntensity":{"value":1},"emissiveMap":{"value":null},"bumpMap":{"value":null},"bumpScale":{"value":1},"normalMap":{"value":null},"normalScale":{"type":"v2","value":[1,1]},"displacementMap":{"value":null},"displacementScale":{"value":1},"displacementBias":{"value":0},"roughnessMap":{"value":null},"metalnessMap":{"value":null},"fogDensity":{"value":0.00025},"fogNear":{"value":1},"fogFar":{"value":2000},"fogColor":{"type":"c","value":16777215},"ambientLightColor":{"value":[0,0,0]},"lightProbe":{"value":[{"x":0,"y":0,"z":0},{"x":0,"y":0,"z":0},{"x":0,"y":0,"z":0},{"x":0,"y":0,"z":0},{"x":0,"y":0,"z":0},{"x":0,"y":0,"z":0},{"x":0,"y":0,"z":0},{"x":0,"y":0,"z":0},{"x":0,"y":0,"z":0}]},"directionalLights":{"value":[]},"directionalLightShadows":{"value":[]},"directionalShadowMap":{"value":[]},"directionalShadowMatrix":{"value":[]},"spotLights":{"value":[{"position":{"x":1.4290885201834054,"y":-2.592164491452121,"z":-1.9783367768998996},"direction":{"x":0.6355215542554208,"y":-0.6226892565651174,"z":0.45647611529537435},"color":8697549,"distance":7.6,"coneCos":0.7071067811865476,"penumbraCos":0.7604059656000309,"decay":0.1}]},"spotLightShadows":{"value":[]},"spotShadowMap":{"value":[]},"spotShadowMatrix":{"value":[]},"pointLights":{"value":[]},"pointLightShadows":{"value":[]},"pointShadowMap":{"value":[]},"pointShadowMatrix":{"value":[]},"hemisphereLights":{"value":[{"direction":{"x":-2.1510571102112403e-16,"y":-0.9994545812271671,"z":0.03302332605943759},"skyColor":553471,"groundColor":131596}]},"rectAreaLights":{"value":[{"color":17982564,"position":{"x":-1.9772027935142946,"y":-1.5270286735496543,"z":-2.8401137796516953},"halfWidth":{"x":-0.0855810146670085,"y":-0.031244602290939096,"z":-0.9456213114964395},"halfHeight":{"x":0.1833138893121967,"y":-0.46518225389321227,"z":-0.0012201016624419918}}]},"ltc_1":{"value":null},"ltc_2":{"value":null},"emissive":{"type":"c","value":0},"roughness":{"value":0.5},"metalness":{"value":1},"envMapIntensity":{"value":1}},"vertexShader":"\n#define STANDARD\n\nvarying vec3 vViewPosition;\n\n#ifndef FLAT_SHADED\n\n\tvarying vec3 vNormal;\n\n\t#ifdef USE_TANGENT\n\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\n\t#endif\n\n#endif\n\n#include <common>\n#include <uv_pars_vertex>\n#include <uv2_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <shadowmap_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\n\nvoid main() {\n\n\t#include <uv_vertex>\n\t#include <uv2_vertex>\n\t#include <color_vertex>\n\n\n\n\t// /text/MAT/meshStandardBuilder_BOX/output1\n\tvec3 transformed = position;\n\tvec3 objectNormal = normal;\n\t#ifdef USE_TANGENT\n\t\tvec3 objectTangent = vec3( tangent.xyz );\n\t#endif\n\n\n\n\n// removed:\n//\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\n#ifndef FLAT_SHADED // Normal computed with derivatives when FLAT_SHADED\n\n\tvNormal = normalize( transformedNormal );\n\n\t#ifdef USE_TANGENT\n\n\t\tvTangent = normalize( transformedTangent );\n\t\tvBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\n\n\t#endif\n\n#endif\n\n// removed:\n//\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\n\tvViewPosition = - mvPosition.xyz;\n\n\t#include <worldpos_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n\n}\n","fragmentShader":"\n#define STANDARD\n\n#ifdef PHYSICAL\n\t#define REFLECTIVITY\n\t#define CLEARCOAT\n\t#define TRANSMISSION\n#endif\n\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float roughness;\nuniform float metalness;\nuniform float opacity;\n\n#ifdef TRANSMISSION\n\tuniform float transmission;\n#endif\n\n#ifdef REFLECTIVITY\n\tuniform float reflectivity;\n#endif\n\n#ifdef CLEARCOAT\n\tuniform float clearcoat;\n\tuniform float clearcoatRoughness;\n#endif\n\n#ifdef USE_SHEEN\n\tuniform vec3 sheen;\n#endif\n\nvarying vec3 vViewPosition;\n\n#ifndef FLAT_SHADED\n\n\tvarying vec3 vNormal;\n\n\t#ifdef USE_TANGENT\n\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\n\t#endif\n\n#endif\n\n#include <common>\n#include <packing>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <uv2_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <emissivemap_pars_fragment>\n#include <transmissionmap_pars_fragment>\n#include <bsdfs>\n#include <cube_uv_reflection_fragment>\n#include <envmap_common_pars_fragment>\n#include <envmap_physical_pars_fragment>\n#include <fog_pars_fragment>\n#include <lights_pars_begin>\n#include <lights_physical_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <clearcoat_pars_fragment>\n#include <roughnessmap_pars_fragment>\n#include <metalnessmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\n\nstruct SSSModel {\n\tbool isActive;\n\tvec3 color;\n\tfloat thickness;\n\tfloat power;\n\tfloat scale;\n\tfloat distortion;\n\tfloat ambient;\n\tfloat attenuation;\n};\n\nvoid RE_Direct_Scattering(\n\tconst in IncidentLight directLight,\n\tconst in GeometricContext geometry,\n\tconst in SSSModel sssModel,\n\tinout ReflectedLight reflectedLight\n\t){\n\tvec3 scatteringHalf = normalize(directLight.direction + (geometry.normal * sssModel.distortion));\n\tfloat scatteringDot = pow(saturate(dot(geometry.viewDir, -scatteringHalf)), sssModel.power) * sssModel.scale;\n\tvec3 scatteringIllu = (scatteringDot + sssModel.ambient) * (sssModel.color * (1.0-sssModel.thickness));\n\treflectedLight.directDiffuse += scatteringIllu * sssModel.attenuation * directLight.color;\n}\n\nvoid main() {\n\n\t#include <clipping_planes_fragment>\n\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\n\n\n\t// /text/MAT/meshStandardBuilder_BOX/output1\n\tfloat POLY_metalness = 1.0;\n\tfloat POLY_roughness = 1.0;\n\tvec3 POLY_emissive = vec3(1.0, 1.0, 1.0);\n\tSSSModel POLY_SSSModel = SSSModel(/*isActive*/false,/*color*/vec3(1.0, 1.0, 1.0), /*thickness*/0.1, /*power*/2.0, /*scale*/16.0, /*distortion*/0.1,/*ambient*/0.4,/*attenuation*/0.8 );\n\n\n\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive * POLY_emissive;\n\n\t#ifdef TRANSMISSION\n\t\tfloat totalTransmission = transmission;\n\t#endif\n\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\tfloat roughnessFactor = roughness * POLY_roughness;\n\n#ifdef USE_ROUGHNESSMAP\n\n\tvec4 texelRoughness = texture2D( roughnessMap, vUv );\n\n\t// reads channel G, compatible with a combined OcclusionRoughnessMetallic (RGB) texture\n\troughnessFactor *= texelRoughness.g;\n\n#endif\n\n\tfloat metalnessFactor = metalness * POLY_metalness;\n\n#ifdef USE_METALNESSMAP\n\n\tvec4 texelMetalness = texture2D( metalnessMap, vUv );\n\n\t// reads channel B, compatible with a combined OcclusionRoughnessMetallic (RGB) texture\n\tmetalnessFactor *= texelMetalness.b;\n\n#endif\n\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\t#include <clearcoat_normal_fragment_begin>\n\t#include <clearcoat_normal_fragment_maps>\n\t#include <emissivemap_fragment>\n\t#include <transmissionmap_fragment>\n\n\t// accumulation\n\t#include <lights_physical_fragment>\n\t#include <lights_fragment_begin>\nif(POLY_SSSModel.isActive){\n\tRE_Direct_Scattering(directLight, geometry, POLY_SSSModel, reflectedLight);\n}\n\n\n\t#include <lights_fragment_maps>\n\t#include <lights_fragment_end>\n\n\t// modulation\n\t#include <aomap_fragment>\n\n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\n\n\t// this is a stub for the transmission model\n\t#ifdef TRANSMISSION\n\t\tdiffuseColor.a *= mix( saturate( 1. - totalTransmission + linearToRelativeLuminance( reflectedLight.directSpecular + reflectedLight.indirectSpecular ) ), 1.0, metalness );\n\t#endif\n\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n\n}\n","extensions":{"derivatives":true},"shadowSide":null,"lights":true},"uniforms_time_dependent":false,"uniforms_resolution_dependent":false,"param_uniform_pairs":[],"customMaterials":{"customDistanceMaterial":{"metadata":{"version":4.5,"type":"Material","generator":"Material.toJSON"},"uuid":"/text/MAT/meshStandardBuilder_BOX-customDistanceMaterial","type":"ShaderMaterial","name":"customDistanceMaterial","depthFunc":3,"depthTest":true,"depthWrite":true,"colorWrite":true,"stencilWrite":false,"stencilWriteMask":255,"stencilFunc":519,"stencilRef":0,"stencilFuncMask":255,"stencilFail":7680,"stencilZFail":7680,"stencilZPass":7680,"glslVersion":null,"uniforms":{"diffuse":{"type":"c","value":15658734},"opacity":{"value":1},"map":{"value":null},"uvTransform":{"type":"m3","value":[1,0,0,0,1,0,0,0,1]},"uv2Transform":{"type":"m3","value":[1,0,0,0,1,0,0,0,1]},"alphaMap":{"value":null},"displacementMap":{"value":null},"displacementScale":{"value":1},"displacementBias":{"value":0},"referencePosition":{"type":"v3","value":[0,0,0]},"nearDistance":{"value":1},"farDistance":{"value":1000}},"defines":{"DEPTH_PACKING":3201},"vertexShader":"\n#define DISTANCE\n\nvarying vec3 vWorldPosition;\n\n#include <common>\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <clipping_planes_pars_vertex>\n\nvoid main() {\n\n\t#include <uv_vertex>\n\n\t#include <skinbase_vertex>\n\n\t#ifdef USE_DISPLACEMENTMAP\n\n// removed:\n//\t\t#include <beginnormal_vertex>\n\t\t#include <morphnormal_vertex>\n\t\t#include <skinnormal_vertex>\n\n\t#endif\n\n// removed:\n//\t#include <begin_vertex>\n\n\n\n\t// /text/MAT/meshStandardBuilder_BOX/output1\n\tvec3 transformed = position;\n\tvec3 objectNormal = normal;\n\t#ifdef USE_TANGENT\n\t\tvec3 objectTangent = vec3( tangent.xyz );\n\t#endif\n\n\n\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <worldpos_vertex>\n\t#include <clipping_planes_vertex>\n\n\tvWorldPosition = worldPosition.xyz;\n\n}\n","fragmentShader":"\n#define DISTANCE\n\nuniform vec3 referencePosition;\nuniform float nearDistance;\nuniform float farDistance;\nvarying vec3 vWorldPosition;\n\n#include <common>\n#include <packing>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <clipping_planes_pars_fragment>\n\nstruct SSSModel {\n\tbool isActive;\n\tvec3 color;\n\tfloat thickness;\n\tfloat power;\n\tfloat scale;\n\tfloat distortion;\n\tfloat ambient;\n\tfloat attenuation;\n};\n\nvoid RE_Direct_Scattering(\n\tconst in IncidentLight directLight,\n\tconst in GeometricContext geometry,\n\tconst in SSSModel sssModel,\n\tinout ReflectedLight reflectedLight\n\t){\n\tvec3 scatteringHalf = normalize(directLight.direction + (geometry.normal * sssModel.distortion));\n\tfloat scatteringDot = pow(saturate(dot(geometry.viewDir, -scatteringHalf)), sssModel.power) * sssModel.scale;\n\tvec3 scatteringIllu = (scatteringDot + sssModel.ambient) * (sssModel.color * (1.0-sssModel.thickness));\n\treflectedLight.directDiffuse += scatteringIllu * sssModel.attenuation * directLight.color;\n}\n\nvoid main() {\n\n\t#include <clipping_planes_fragment>\n\n\tvec4 diffuseColor = vec4( 1.0 );\n\n\n\n\t// /text/MAT/meshStandardBuilder_BOX/output1\n\tfloat POLY_metalness = 1.0;\n\tfloat POLY_roughness = 1.0;\n\tvec3 POLY_emissive = vec3(1.0, 1.0, 1.0);\n\tSSSModel POLY_SSSModel = SSSModel(/*isActive*/false,/*color*/vec3(1.0, 1.0, 1.0), /*thickness*/0.1, /*power*/2.0, /*scale*/16.0, /*distortion*/0.1,/*ambient*/0.4,/*attenuation*/0.8 );\n\n\n\n\n\t#include <map_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\n\tfloat dist = length( vWorldPosition - referencePosition );\n\tdist = ( dist - nearDistance ) / ( farDistance - nearDistance );\n\tdist = saturate( dist ); // clamp to [ 0, 1 ]\n\n\tgl_FragColor = packDepthToRGBA( dist );\n\n}\n","shadowSide":null,"lights":false},"customDepthMaterial":{"metadata":{"version":4.5,"type":"Material","generator":"Material.toJSON"},"uuid":"/text/MAT/meshStandardBuilder_BOX-customDepthMaterial","type":"ShaderMaterial","name":"customDepthMaterial","depthFunc":3,"depthTest":true,"depthWrite":true,"colorWrite":true,"stencilWrite":false,"stencilWriteMask":255,"stencilFunc":519,"stencilRef":0,"stencilFuncMask":255,"stencilFail":7680,"stencilZFail":7680,"stencilZPass":7680,"glslVersion":null,"uniforms":{"diffuse":{"type":"c","value":15658734},"opacity":{"value":1},"map":{"value":null},"uvTransform":{"type":"m3","value":[1,0,0,0,1,0,0,0,1]},"uv2Transform":{"type":"m3","value":[1,0,0,0,1,0,0,0,1]},"alphaMap":{"value":null},"displacementMap":{"value":null},"displacementScale":{"value":1},"displacementBias":{"value":0}},"defines":{"DEPTH_PACKING":3201},"vertexShader":"\n#include <common>\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\n\n// This is used for computing an equivalent of gl_FragCoord.z that is as high precision as possible.\n// Some platforms compute gl_FragCoord at a lower precision which makes the manually computed value better for\n// depth-based postprocessing effects. Reproduced on iPad with A10 processor / iPadOS 13.3.1.\nvarying vec2 vHighPrecisionZW;\n\nvoid main() {\n\n\t#include <uv_vertex>\n\n\t#include <skinbase_vertex>\n\n\t#ifdef USE_DISPLACEMENTMAP\n\n// removed:\n//\t\t#include <beginnormal_vertex>\n\t\t#include <morphnormal_vertex>\n\t\t#include <skinnormal_vertex>\n\n\t#endif\n\n// removed:\n//\t#include <begin_vertex>\n\n\n\n\t// /text/MAT/meshStandardBuilder_BOX/output1\n\tvec3 transformed = position;\n\tvec3 objectNormal = normal;\n\t#ifdef USE_TANGENT\n\t\tvec3 objectTangent = vec3( tangent.xyz );\n\t#endif\n\n\n\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\n\tvHighPrecisionZW = gl_Position.zw;\n\n}\n","fragmentShader":"\n#if DEPTH_PACKING == 3200\n\n\tuniform float opacity;\n\n#endif\n\n#include <common>\n#include <packing>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\n\nvarying vec2 vHighPrecisionZW;\n\nstruct SSSModel {\n\tbool isActive;\n\tvec3 color;\n\tfloat thickness;\n\tfloat power;\n\tfloat scale;\n\tfloat distortion;\n\tfloat ambient;\n\tfloat attenuation;\n};\n\nvoid RE_Direct_Scattering(\n\tconst in IncidentLight directLight,\n\tconst in GeometricContext geometry,\n\tconst in SSSModel sssModel,\n\tinout ReflectedLight reflectedLight\n\t){\n\tvec3 scatteringHalf = normalize(directLight.direction + (geometry.normal * sssModel.distortion));\n\tfloat scatteringDot = pow(saturate(dot(geometry.viewDir, -scatteringHalf)), sssModel.power) * sssModel.scale;\n\tvec3 scatteringIllu = (scatteringDot + sssModel.ambient) * (sssModel.color * (1.0-sssModel.thickness));\n\treflectedLight.directDiffuse += scatteringIllu * sssModel.attenuation * directLight.color;\n}\n\nvoid main() {\n\n\t#include <clipping_planes_fragment>\n\n\tvec4 diffuseColor = vec4( 1.0 );\n\n\n\n\t// /text/MAT/meshStandardBuilder_BOX/output1\n\tfloat POLY_metalness = 1.0;\n\tfloat POLY_roughness = 1.0;\n\tvec3 POLY_emissive = vec3(1.0, 1.0, 1.0);\n\tSSSModel POLY_SSSModel = SSSModel(/*isActive*/false,/*color*/vec3(1.0, 1.0, 1.0), /*thickness*/0.1, /*power*/2.0, /*scale*/16.0, /*distortion*/0.1,/*ambient*/0.4,/*attenuation*/0.8 );\n\n\n\n\n\t#if DEPTH_PACKING == 3200\n\n\t\tdiffuseColor.a = opacity;\n\n\t#endif\n\n\t#include <map_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\n\t#include <logdepthbuf_fragment>\n\n\t// Higher precision equivalent of gl_FragCoord.z. This assumes depthRange has been left to its default values.\n\tfloat fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;\n\n\t#if DEPTH_PACKING == 3200\n\n\t\tgl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );\n\n\t#elif DEPTH_PACKING == 3201\n\n\t\tgl_FragColor = packDepthToRGBA( fragCoordZ );\n\n\t#endif\n\n}\n","shadowSide":null,"lights":false},"customDepthDOFMaterial":{"metadata":{"version":4.5,"type":"Material","generator":"Material.toJSON"},"uuid":"/text/MAT/meshStandardBuilder_BOX-customDepthDOFMaterial","type":"ShaderMaterial","name":"customDepthDOFMaterial","depthFunc":3,"depthTest":true,"depthWrite":true,"colorWrite":true,"stencilWrite":false,"stencilWriteMask":255,"stencilFunc":519,"stencilRef":0,"stencilFuncMask":255,"stencilFail":7680,"stencilZFail":7680,"stencilZPass":7680,"glslVersion":null,"uniforms":{"mNear":{"value":0},"mFar":{"value":10}},"vertexShader":"#include <common>\n\nvarying float vViewZDepth;\n\n// INSERT DEFINES\n\n\n\nvoid main() {\n\n\t// INSERT BODY\n\n\n\n\t// /text/MAT/meshStandardBuilder_BOX/output1\n\tvec3 transformed = position;\n\tvec3 objectNormal = normal;\n\t#ifdef USE_TANGENT\n\t\tvec3 objectTangent = vec3( tangent.xyz );\n\t#endif\n\n\n\n\n\n\t#include <project_vertex>\n\n\tvViewZDepth = - mvPosition.z;\n}","fragmentShader":"uniform float mNear;\nuniform float mFar;\n\nvarying float vViewZDepth;\n\nstruct SSSModel {\n\tbool isActive;\n\tvec3 color;\n\tfloat thickness;\n\tfloat power;\n\tfloat scale;\n\tfloat distortion;\n\tfloat ambient;\n\tfloat attenuation;\n};\n\nvoid RE_Direct_Scattering(\n\tconst in IncidentLight directLight,\n\tconst in GeometricContext geometry,\n\tconst in SSSModel sssModel,\n\tinout ReflectedLight reflectedLight\n\t){\n\tvec3 scatteringHalf = normalize(directLight.direction + (geometry.normal * sssModel.distortion));\n\tfloat scatteringDot = pow(saturate(dot(geometry.viewDir, -scatteringHalf)), sssModel.power) * sssModel.scale;\n\tvec3 scatteringIllu = (scatteringDot + sssModel.ambient) * (sssModel.color * (1.0-sssModel.thickness));\n\treflectedLight.directDiffuse += scatteringIllu * sssModel.attenuation * directLight.color;\n}\n\nvoid main() {\n\n\tfloat color = 1.0 - smoothstep( mNear, mFar, vViewZDepth );\n\tgl_FragColor = vec4( vec3( color ), 1.0 );\n\n}\n","shadowSide":null,"lights":false}}}},"meshStandardBuilder_RED":{"type":"meshStandardBuilder","nodes":{"globals1":{"type":"globals"},"output1":{"type":"output"}},"params":{"emissiveIntensity":0.43,"useEnvMap":1,"envMap":"../../../COP/envMap","roughness":0.09},"persisted_config":{"material":{"metadata":{"version":4.5,"type":"Material","generator":"Material.toJSON"},"uuid":"/text/MAT/meshStandardBuilder_RED-main","type":"ShaderMaterial","name":"/text/MAT/meshStandardBuilder_RED","color":16777215,"depthFunc":3,"depthTest":true,"depthWrite":true,"colorWrite":true,"stencilWrite":false,"stencilWriteMask":255,"stencilFunc":519,"stencilRef":0,"stencilFuncMask":255,"stencilFail":7680,"stencilZFail":7680,"stencilZPass":7680,"glslVersion":null,"uniforms":{"diffuse":{"type":"c","value":15658734},"opacity":{"value":1},"map":{"value":null},"uvTransform":{"type":"m3","value":[1,0,0,0,1,0,0,0,1]},"uv2Transform":{"type":"m3","value":[1,0,0,0,1,0,0,0,1]},"alphaMap":{"value":null},"envMap":{"value":null},"flipEnvMap":{"value":-1},"reflectivity":{"value":1},"refractionRatio":{"value":0.98},"maxMipLevel":{"value":0},"aoMap":{"value":null},"aoMapIntensity":{"value":1},"lightMap":{"value":null},"lightMapIntensity":{"value":1},"emissiveMap":{"value":null},"bumpMap":{"value":null},"bumpScale":{"value":1},"normalMap":{"value":null},"normalScale":{"type":"v2","value":[1,1]},"displacementMap":{"value":null},"displacementScale":{"value":1},"displacementBias":{"value":0},"roughnessMap":{"value":null},"metalnessMap":{"value":null},"fogDensity":{"value":0.00025},"fogNear":{"value":1},"fogFar":{"value":2000},"fogColor":{"type":"c","value":16777215},"ambientLightColor":{"value":[0,0,0]},"lightProbe":{"value":[{"x":0,"y":0,"z":0},{"x":0,"y":0,"z":0},{"x":0,"y":0,"z":0},{"x":0,"y":0,"z":0},{"x":0,"y":0,"z":0},{"x":0,"y":0,"z":0},{"x":0,"y":0,"z":0},{"x":0,"y":0,"z":0},{"x":0,"y":0,"z":0}]},"directionalLights":{"value":[]},"directionalLightShadows":{"value":[]},"directionalShadowMap":{"value":[]},"directionalShadowMatrix":{"value":[]},"spotLights":{"value":[{"position":{"x":1.4290885201834054,"y":-2.592164491452121,"z":-1.9783367768998996},"direction":{"x":0.6355215542554208,"y":-0.6226892565651174,"z":0.45647611529537435},"color":8697549,"distance":7.6,"coneCos":0.7071067811865476,"penumbraCos":0.7604059656000309,"decay":0.1}]},"spotLightShadows":{"value":[]},"spotShadowMap":{"value":[]},"spotShadowMatrix":{"value":[]},"pointLights":{"value":[]},"pointLightShadows":{"value":[]},"pointShadowMap":{"value":[]},"pointShadowMatrix":{"value":[]},"hemisphereLights":{"value":[{"direction":{"x":-2.1510571102112403e-16,"y":-0.9994545812271671,"z":0.03302332605943759},"skyColor":553471,"groundColor":131596}]},"rectAreaLights":{"value":[{"color":17982564,"position":{"x":-1.9772027935142946,"y":-1.5270286735496543,"z":-2.8401137796516953},"halfWidth":{"x":-0.0855810146670085,"y":-0.031244602290939096,"z":-0.9456213114964395},"halfHeight":{"x":0.1833138893121967,"y":-0.46518225389321227,"z":-0.0012201016624419918}}]},"ltc_1":{"value":null},"ltc_2":{"value":null},"emissive":{"type":"c","value":0},"roughness":{"value":0.09},"metalness":{"value":1},"envMapIntensity":{"value":1}},"vertexShader":"\n#define STANDARD\n\nvarying vec3 vViewPosition;\n\n#ifndef FLAT_SHADED\n\n\tvarying vec3 vNormal;\n\n\t#ifdef USE_TANGENT\n\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\n\t#endif\n\n#endif\n\n#include <common>\n#include <uv_pars_vertex>\n#include <uv2_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <shadowmap_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\n\nvoid main() {\n\n\t#include <uv_vertex>\n\t#include <uv2_vertex>\n\t#include <color_vertex>\n\n\n\n\t// /text/MAT/meshStandardBuilder_RED/output1\n\tvec3 transformed = position;\n\tvec3 objectNormal = normal;\n\t#ifdef USE_TANGENT\n\t\tvec3 objectTangent = vec3( tangent.xyz );\n\t#endif\n\n\n\n\n// removed:\n//\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\n#ifndef FLAT_SHADED // Normal computed with derivatives when FLAT_SHADED\n\n\tvNormal = normalize( transformedNormal );\n\n\t#ifdef USE_TANGENT\n\n\t\tvTangent = normalize( transformedTangent );\n\t\tvBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\n\n\t#endif\n\n#endif\n\n// removed:\n//\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\n\tvViewPosition = - mvPosition.xyz;\n\n\t#include <worldpos_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n\n}\n","fragmentShader":"\n#define STANDARD\n\n#ifdef PHYSICAL\n\t#define REFLECTIVITY\n\t#define CLEARCOAT\n\t#define TRANSMISSION\n#endif\n\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float roughness;\nuniform float metalness;\nuniform float opacity;\n\n#ifdef TRANSMISSION\n\tuniform float transmission;\n#endif\n\n#ifdef REFLECTIVITY\n\tuniform float reflectivity;\n#endif\n\n#ifdef CLEARCOAT\n\tuniform float clearcoat;\n\tuniform float clearcoatRoughness;\n#endif\n\n#ifdef USE_SHEEN\n\tuniform vec3 sheen;\n#endif\n\nvarying vec3 vViewPosition;\n\n#ifndef FLAT_SHADED\n\n\tvarying vec3 vNormal;\n\n\t#ifdef USE_TANGENT\n\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\n\t#endif\n\n#endif\n\n#include <common>\n#include <packing>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <uv2_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <emissivemap_pars_fragment>\n#include <transmissionmap_pars_fragment>\n#include <bsdfs>\n#include <cube_uv_reflection_fragment>\n#include <envmap_common_pars_fragment>\n#include <envmap_physical_pars_fragment>\n#include <fog_pars_fragment>\n#include <lights_pars_begin>\n#include <lights_physical_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <clearcoat_pars_fragment>\n#include <roughnessmap_pars_fragment>\n#include <metalnessmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\n\nstruct SSSModel {\n\tbool isActive;\n\tvec3 color;\n\tfloat thickness;\n\tfloat power;\n\tfloat scale;\n\tfloat distortion;\n\tfloat ambient;\n\tfloat attenuation;\n};\n\nvoid RE_Direct_Scattering(\n\tconst in IncidentLight directLight,\n\tconst in GeometricContext geometry,\n\tconst in SSSModel sssModel,\n\tinout ReflectedLight reflectedLight\n\t){\n\tvec3 scatteringHalf = normalize(directLight.direction + (geometry.normal * sssModel.distortion));\n\tfloat scatteringDot = pow(saturate(dot(geometry.viewDir, -scatteringHalf)), sssModel.power) * sssModel.scale;\n\tvec3 scatteringIllu = (scatteringDot + sssModel.ambient) * (sssModel.color * (1.0-sssModel.thickness));\n\treflectedLight.directDiffuse += scatteringIllu * sssModel.attenuation * directLight.color;\n}\n\nvoid main() {\n\n\t#include <clipping_planes_fragment>\n\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\n\n\n\t// /text/MAT/meshStandardBuilder_RED/output1\n\tfloat POLY_metalness = 1.0;\n\tfloat POLY_roughness = 1.0;\n\tvec3 POLY_emissive = vec3(1.0, 1.0, 1.0);\n\tSSSModel POLY_SSSModel = SSSModel(/*isActive*/false,/*color*/vec3(1.0, 1.0, 1.0), /*thickness*/0.1, /*power*/2.0, /*scale*/16.0, /*distortion*/0.1,/*ambient*/0.4,/*attenuation*/0.8 );\n\n\n\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive * POLY_emissive;\n\n\t#ifdef TRANSMISSION\n\t\tfloat totalTransmission = transmission;\n\t#endif\n\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\tfloat roughnessFactor = roughness * POLY_roughness;\n\n#ifdef USE_ROUGHNESSMAP\n\n\tvec4 texelRoughness = texture2D( roughnessMap, vUv );\n\n\t// reads channel G, compatible with a combined OcclusionRoughnessMetallic (RGB) texture\n\troughnessFactor *= texelRoughness.g;\n\n#endif\n\n\tfloat metalnessFactor = metalness * POLY_metalness;\n\n#ifdef USE_METALNESSMAP\n\n\tvec4 texelMetalness = texture2D( metalnessMap, vUv );\n\n\t// reads channel B, compatible with a combined OcclusionRoughnessMetallic (RGB) texture\n\tmetalnessFactor *= texelMetalness.b;\n\n#endif\n\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\t#include <clearcoat_normal_fragment_begin>\n\t#include <clearcoat_normal_fragment_maps>\n\t#include <emissivemap_fragment>\n\t#include <transmissionmap_fragment>\n\n\t// accumulation\n\t#include <lights_physical_fragment>\n\t#include <lights_fragment_begin>\nif(POLY_SSSModel.isActive){\n\tRE_Direct_Scattering(directLight, geometry, POLY_SSSModel, reflectedLight);\n}\n\n\n\t#include <lights_fragment_maps>\n\t#include <lights_fragment_end>\n\n\t// modulation\n\t#include <aomap_fragment>\n\n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\n\n\t// this is a stub for the transmission model\n\t#ifdef TRANSMISSION\n\t\tdiffuseColor.a *= mix( saturate( 1. - totalTransmission + linearToRelativeLuminance( reflectedLight.directSpecular + reflectedLight.indirectSpecular ) ), 1.0, metalness );\n\t#endif\n\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n\n}\n","extensions":{"derivatives":true},"shadowSide":null,"lights":true},"uniforms_time_dependent":false,"uniforms_resolution_dependent":false,"param_uniform_pairs":[],"customMaterials":{"customDistanceMaterial":{"metadata":{"version":4.5,"type":"Material","generator":"Material.toJSON"},"uuid":"/text/MAT/meshStandardBuilder_RED-customDistanceMaterial","type":"ShaderMaterial","name":"customDistanceMaterial","depthFunc":3,"depthTest":true,"depthWrite":true,"colorWrite":true,"stencilWrite":false,"stencilWriteMask":255,"stencilFunc":519,"stencilRef":0,"stencilFuncMask":255,"stencilFail":7680,"stencilZFail":7680,"stencilZPass":7680,"glslVersion":null,"uniforms":{"diffuse":{"type":"c","value":15658734},"opacity":{"value":1},"map":{"value":null},"uvTransform":{"type":"m3","value":[1,0,0,0,1,0,0,0,1]},"uv2Transform":{"type":"m3","value":[1,0,0,0,1,0,0,0,1]},"alphaMap":{"value":null},"displacementMap":{"value":null},"displacementScale":{"value":1},"displacementBias":{"value":0},"referencePosition":{"type":"v3","value":[0,0,0]},"nearDistance":{"value":1},"farDistance":{"value":1000}},"defines":{"DEPTH_PACKING":3201},"vertexShader":"\n#define DISTANCE\n\nvarying vec3 vWorldPosition;\n\n#include <common>\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <clipping_planes_pars_vertex>\n\nvoid main() {\n\n\t#include <uv_vertex>\n\n\t#include <skinbase_vertex>\n\n\t#ifdef USE_DISPLACEMENTMAP\n\n// removed:\n//\t\t#include <beginnormal_vertex>\n\t\t#include <morphnormal_vertex>\n\t\t#include <skinnormal_vertex>\n\n\t#endif\n\n// removed:\n//\t#include <begin_vertex>\n\n\n\n\t// /text/MAT/meshStandardBuilder_RED/output1\n\tvec3 transformed = position;\n\tvec3 objectNormal = normal;\n\t#ifdef USE_TANGENT\n\t\tvec3 objectTangent = vec3( tangent.xyz );\n\t#endif\n\n\n\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <worldpos_vertex>\n\t#include <clipping_planes_vertex>\n\n\tvWorldPosition = worldPosition.xyz;\n\n}\n","fragmentShader":"\n#define DISTANCE\n\nuniform vec3 referencePosition;\nuniform float nearDistance;\nuniform float farDistance;\nvarying vec3 vWorldPosition;\n\n#include <common>\n#include <packing>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <clipping_planes_pars_fragment>\n\nstruct SSSModel {\n\tbool isActive;\n\tvec3 color;\n\tfloat thickness;\n\tfloat power;\n\tfloat scale;\n\tfloat distortion;\n\tfloat ambient;\n\tfloat attenuation;\n};\n\nvoid RE_Direct_Scattering(\n\tconst in IncidentLight directLight,\n\tconst in GeometricContext geometry,\n\tconst in SSSModel sssModel,\n\tinout ReflectedLight reflectedLight\n\t){\n\tvec3 scatteringHalf = normalize(directLight.direction + (geometry.normal * sssModel.distortion));\n\tfloat scatteringDot = pow(saturate(dot(geometry.viewDir, -scatteringHalf)), sssModel.power) * sssModel.scale;\n\tvec3 scatteringIllu = (scatteringDot + sssModel.ambient) * (sssModel.color * (1.0-sssModel.thickness));\n\treflectedLight.directDiffuse += scatteringIllu * sssModel.attenuation * directLight.color;\n}\n\nvoid main() {\n\n\t#include <clipping_planes_fragment>\n\n\tvec4 diffuseColor = vec4( 1.0 );\n\n\n\n\t// /text/MAT/meshStandardBuilder_RED/output1\n\tfloat POLY_metalness = 1.0;\n\tfloat POLY_roughness = 1.0;\n\tvec3 POLY_emissive = vec3(1.0, 1.0, 1.0);\n\tSSSModel POLY_SSSModel = SSSModel(/*isActive*/false,/*color*/vec3(1.0, 1.0, 1.0), /*thickness*/0.1, /*power*/2.0, /*scale*/16.0, /*distortion*/0.1,/*ambient*/0.4,/*attenuation*/0.8 );\n\n\n\n\n\t#include <map_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\n\tfloat dist = length( vWorldPosition - referencePosition );\n\tdist = ( dist - nearDistance ) / ( farDistance - nearDistance );\n\tdist = saturate( dist ); // clamp to [ 0, 1 ]\n\n\tgl_FragColor = packDepthToRGBA( dist );\n\n}\n","shadowSide":null,"lights":false},"customDepthMaterial":{"metadata":{"version":4.5,"type":"Material","generator":"Material.toJSON"},"uuid":"/text/MAT/meshStandardBuilder_RED-customDepthMaterial","type":"ShaderMaterial","name":"customDepthMaterial","depthFunc":3,"depthTest":true,"depthWrite":true,"colorWrite":true,"stencilWrite":false,"stencilWriteMask":255,"stencilFunc":519,"stencilRef":0,"stencilFuncMask":255,"stencilFail":7680,"stencilZFail":7680,"stencilZPass":7680,"glslVersion":null,"uniforms":{"diffuse":{"type":"c","value":15658734},"opacity":{"value":1},"map":{"value":null},"uvTransform":{"type":"m3","value":[1,0,0,0,1,0,0,0,1]},"uv2Transform":{"type":"m3","value":[1,0,0,0,1,0,0,0,1]},"alphaMap":{"value":null},"displacementMap":{"value":null},"displacementScale":{"value":1},"displacementBias":{"value":0}},"defines":{"DEPTH_PACKING":3201},"vertexShader":"\n#include <common>\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\n\n// This is used for computing an equivalent of gl_FragCoord.z that is as high precision as possible.\n// Some platforms compute gl_FragCoord at a lower precision which makes the manually computed value better for\n// depth-based postprocessing effects. Reproduced on iPad with A10 processor / iPadOS 13.3.1.\nvarying vec2 vHighPrecisionZW;\n\nvoid main() {\n\n\t#include <uv_vertex>\n\n\t#include <skinbase_vertex>\n\n\t#ifdef USE_DISPLACEMENTMAP\n\n// removed:\n//\t\t#include <beginnormal_vertex>\n\t\t#include <morphnormal_vertex>\n\t\t#include <skinnormal_vertex>\n\n\t#endif\n\n// removed:\n//\t#include <begin_vertex>\n\n\n\n\t// /text/MAT/meshStandardBuilder_RED/output1\n\tvec3 transformed = position;\n\tvec3 objectNormal = normal;\n\t#ifdef USE_TANGENT\n\t\tvec3 objectTangent = vec3( tangent.xyz );\n\t#endif\n\n\n\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\n\tvHighPrecisionZW = gl_Position.zw;\n\n}\n","fragmentShader":"\n#if DEPTH_PACKING == 3200\n\n\tuniform float opacity;\n\n#endif\n\n#include <common>\n#include <packing>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\n\nvarying vec2 vHighPrecisionZW;\n\nstruct SSSModel {\n\tbool isActive;\n\tvec3 color;\n\tfloat thickness;\n\tfloat power;\n\tfloat scale;\n\tfloat distortion;\n\tfloat ambient;\n\tfloat attenuation;\n};\n\nvoid RE_Direct_Scattering(\n\tconst in IncidentLight directLight,\n\tconst in GeometricContext geometry,\n\tconst in SSSModel sssModel,\n\tinout ReflectedLight reflectedLight\n\t){\n\tvec3 scatteringHalf = normalize(directLight.direction + (geometry.normal * sssModel.distortion));\n\tfloat scatteringDot = pow(saturate(dot(geometry.viewDir, -scatteringHalf)), sssModel.power) * sssModel.scale;\n\tvec3 scatteringIllu = (scatteringDot + sssModel.ambient) * (sssModel.color * (1.0-sssModel.thickness));\n\treflectedLight.directDiffuse += scatteringIllu * sssModel.attenuation * directLight.color;\n}\n\nvoid main() {\n\n\t#include <clipping_planes_fragment>\n\n\tvec4 diffuseColor = vec4( 1.0 );\n\n\n\n\t// /text/MAT/meshStandardBuilder_RED/output1\n\tfloat POLY_metalness = 1.0;\n\tfloat POLY_roughness = 1.0;\n\tvec3 POLY_emissive = vec3(1.0, 1.0, 1.0);\n\tSSSModel POLY_SSSModel = SSSModel(/*isActive*/false,/*color*/vec3(1.0, 1.0, 1.0), /*thickness*/0.1, /*power*/2.0, /*scale*/16.0, /*distortion*/0.1,/*ambient*/0.4,/*attenuation*/0.8 );\n\n\n\n\n\t#if DEPTH_PACKING == 3200\n\n\t\tdiffuseColor.a = opacity;\n\n\t#endif\n\n\t#include <map_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\n\t#include <logdepthbuf_fragment>\n\n\t// Higher precision equivalent of gl_FragCoord.z. This assumes depthRange has been left to its default values.\n\tfloat fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;\n\n\t#if DEPTH_PACKING == 3200\n\n\t\tgl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );\n\n\t#elif DEPTH_PACKING == 3201\n\n\t\tgl_FragColor = packDepthToRGBA( fragCoordZ );\n\n\t#endif\n\n}\n","shadowSide":null,"lights":false},"customDepthDOFMaterial":{"metadata":{"version":4.5,"type":"Material","generator":"Material.toJSON"},"uuid":"/text/MAT/meshStandardBuilder_RED-customDepthDOFMaterial","type":"ShaderMaterial","name":"customDepthDOFMaterial","depthFunc":3,"depthTest":true,"depthWrite":true,"colorWrite":true,"stencilWrite":false,"stencilWriteMask":255,"stencilFunc":519,"stencilRef":0,"stencilFuncMask":255,"stencilFail":7680,"stencilZFail":7680,"stencilZPass":7680,"glslVersion":null,"uniforms":{"mNear":{"value":0},"mFar":{"value":10}},"vertexShader":"#include <common>\n\nvarying float vViewZDepth;\n\n// INSERT DEFINES\n\n\n\nvoid main() {\n\n\t// INSERT BODY\n\n\n\n\t// /text/MAT/meshStandardBuilder_RED/output1\n\tvec3 transformed = position;\n\tvec3 objectNormal = normal;\n\t#ifdef USE_TANGENT\n\t\tvec3 objectTangent = vec3( tangent.xyz );\n\t#endif\n\n\n\n\n\n\t#include <project_vertex>\n\n\tvViewZDepth = - mvPosition.z;\n}","fragmentShader":"uniform float mNear;\nuniform float mFar;\n\nvarying float vViewZDepth;\n\nstruct SSSModel {\n\tbool isActive;\n\tvec3 color;\n\tfloat thickness;\n\tfloat power;\n\tfloat scale;\n\tfloat distortion;\n\tfloat ambient;\n\tfloat attenuation;\n};\n\nvoid RE_Direct_Scattering(\n\tconst in IncidentLight directLight,\n\tconst in GeometricContext geometry,\n\tconst in SSSModel sssModel,\n\tinout ReflectedLight reflectedLight\n\t){\n\tvec3 scatteringHalf = normalize(directLight.direction + (geometry.normal * sssModel.distortion));\n\tfloat scatteringDot = pow(saturate(dot(geometry.viewDir, -scatteringHalf)), sssModel.power) * sssModel.scale;\n\tvec3 scatteringIllu = (scatteringDot + sssModel.ambient) * (sssModel.color * (1.0-sssModel.thickness));\n\treflectedLight.directDiffuse += scatteringIllu * sssModel.attenuation * directLight.color;\n}\n\nvoid main() {\n\n\tfloat color = 1.0 - smoothstep( mNear, mFar, vViewZDepth );\n\tgl_FragColor = vec4( vec3( color ), 1.0 );\n\n}\n","shadowSide":null,"lights":false}}}}},"selection":["meshStandardBuilder_RED"]},"material1":{"type":"material","params":{"material":"../MAT/meshStandardBuilder_BOX"},"inputs":["box1"]},"merge1":{"type":"merge","params":{"inputsCount":11},"maxInputsCount":11,"inputs":["transform_ANIM_A_2","transform_ANIM_B_2","transform_ANIM_C_2","transform_ANIM_D_2","transform_ANIM_E_2","transform_ANIM_F_2","transform_ANIM_G_2","transform_ANIM_H_2","transform_ANIM_I_2","transform_ANIM_J_2","transform_ANIM_K_2"],"cloned_state_overriden":true},"material2":{"type":"material","params":{"material":"../MAT/meshStandardBuilder_RED"},"inputs":["transform_top_center"]},"merge2":{"type":"merge","inputs":["merge1","boolean14"],"flags":{"display":true},"cloned_state_overriden":true},"ANIM":{"type":"animationsNetwork","nodes":{"target1":{"type":"target","params":{"type":1,"nodePath":"../../transform_ANIM_A_1"},"inputs":["propertyName1"]},"propertyName1":{"type":"propertyName","params":{"name":"t"},"inputs":["easing1"]},"propertyValue1":{"type":"propertyValue","inputs":["target1"]},"PLAY":{"type":"null","inputs":["merge6"]},"propertyValue2":{"type":"propertyValue","params":{"value3":[-0.7000000000000001,0,0]},"inputs":["target1"]},"RESET":{"type":"null","inputs":["merge5"]},"easing1":{"type":"easing","params":{"name":3,"inOut":2},"inputs":["duration1"]},"duration1":{"type":"duration"},"target2":{"type":"target","params":{"type":1,"nodePath":"../../transform_ANIM_A_2"},"inputs":["propertyName1"]},"propertyValue3":{"type":"propertyValue","params":{"value3":[0,0,-0.8]},"inputs":["target2"]},"propertyValue4":{"type":"propertyValue","inputs":["target2"]},"merge1":{"type":"merge","inputs":["propertyValue2","propertyValue4"]},"merge2":{"type":"merge","params":{"mode":1},"inputs":["propertyValue1","propertyValue3"]},"target3":{"type":"target","params":{"type":1,"nodePath":"../../transform_ANIM_B_1"},"inputs":["propertyName1"]},"propertyValue5":{"type":"propertyValue","inputs":["target3"]},"propertyValue6":{"type":"propertyValue","params":{"value3":[-0.8,0,0]},"inputs":["target3"]},"target4":{"type":"target","params":{"type":1,"nodePath":"../../transform_ANIM_B_2"},"inputs":["propertyName1"]},"propertyValue7":{"type":"propertyValue","params":{"value3":[0,0,1]},"inputs":["target4"]},"propertyValue8":{"type":"propertyValue","inputs":["target4"]},"merge3":{"type":"merge","inputs":["propertyValue6","propertyValue8"]},"merge4":{"type":"merge","params":{"mode":1},"inputs":["propertyValue5","propertyValue7"]},"merge5":{"type":"merge","params":{"inputsCount":11},"maxInputsCount":11,"inputs":["merge1","merge3","merge7","merge9","merge11","merge13","merge15","merge17","merge19","merge21","merge23"]},"merge6":{"type":"merge","params":{"mode":1,"inputsCount":11},"maxInputsCount":11,"inputs":["merge2","merge4","merge8","merge10","merge12","merge14","merge16","merge18","merge20","merge22","merge24"]},"target5":{"type":"target","params":{"type":1,"nodePath":"../../transform_ANIM_C_1"},"inputs":["propertyName1"]},"propertyValue9":{"type":"propertyValue","inputs":["target5"]},"propertyValue10":{"type":"propertyValue","params":{"value3":[0.8,0,0]},"inputs":["target5"]},"target6":{"type":"target","params":{"type":1,"nodePath":"../../transform_ANIM_C_2"},"inputs":["propertyName1"]},"propertyValue11":{"type":"propertyValue","params":{"value3":[0,0,-1.4]},"inputs":["target6"]},"propertyValue12":{"type":"propertyValue","inputs":["target6"]},"merge7":{"type":"merge","inputs":["propertyValue10","propertyValue12"]},"merge8":{"type":"merge","params":{"mode":1},"inputs":["propertyValue9","propertyValue11"]},"target7":{"type":"target","params":{"type":1,"nodePath":"../../transform_ANIM_D_1"},"inputs":["propertyName1"]},"propertyValue13":{"type":"propertyValue","inputs":["target7"]},"propertyValue14":{"type":"propertyValue","params":{"value3":[1.2,0,0]},"inputs":["target7"]},"target8":{"type":"target","params":{"type":1,"nodePath":"../../transform_ANIM_D_2"},"inputs":["propertyName1"]},"propertyValue15":{"type":"propertyValue","params":{"value3":[0,0,-1.8]},"inputs":["target8"]},"propertyValue16":{"type":"propertyValue","inputs":["target8"]},"merge9":{"type":"merge","inputs":["propertyValue14","propertyValue16"]},"merge10":{"type":"merge","params":{"mode":1},"inputs":["propertyValue13","propertyValue15"]},"target9":{"type":"target","params":{"type":1,"nodePath":"../../transform_ANIM_E_1"},"inputs":["propertyName1"]},"propertyValue17":{"type":"propertyValue","inputs":["target9"]},"propertyValue18":{"type":"propertyValue","params":{"value3":[0,0.7999999999999999,0]},"inputs":["target9"]},"target10":{"type":"target","params":{"type":1,"nodePath":"../../transform_ANIM_E_2"},"inputs":["propertyName1"]},"propertyValue19":{"type":"propertyValue","params":{"value3":[0,0,1]},"inputs":["target10"]},"propertyValue20":{"type":"propertyValue","inputs":["target10"]},"merge11":{"type":"merge","inputs":["propertyValue18","propertyValue20"]},"merge12":{"type":"merge","params":{"mode":1},"inputs":["propertyValue17","propertyValue19"]},"target11":{"type":"target","params":{"type":1,"nodePath":"../../transform_ANIM_F_1"},"inputs":["propertyName1"]},"propertyValue21":{"type":"propertyValue","inputs":["target11"]},"propertyValue22":{"type":"propertyValue","params":{"value3":[0,-0.9,0]},"inputs":["target11"]},"target12":{"type":"target","params":{"type":1,"nodePath":"../../transform_ANIM_F_2"},"inputs":["propertyName1"]},"propertyValue23":{"type":"propertyValue","params":{"value3":[0,0,1]},"inputs":["target12"]},"propertyValue24":{"type":"propertyValue","inputs":["target12"]},"merge13":{"type":"merge","inputs":["propertyValue22","propertyValue24"]},"merge14":{"type":"merge","params":{"mode":1},"inputs":["propertyValue21","propertyValue23"]},"target13":{"type":"target","params":{"type":1,"nodePath":"../../transform_ANIM_G_1"},"inputs":["propertyName1"]},"propertyValue25":{"type":"propertyValue","inputs":["target13"]},"propertyValue26":{"type":"propertyValue","params":{"value3":[-2.1,0,0]},"inputs":["target13"]},"target14":{"type":"target","params":{"type":1,"nodePath":"../../transform_ANIM_G_2"},"inputs":["propertyName1"]},"propertyValue27":{"type":"propertyValue","params":{"value3":[0,0,-2]},"inputs":["target14"]},"propertyValue28":{"type":"propertyValue","inputs":["target14"]},"merge15":{"type":"merge","inputs":["propertyValue26","propertyValue28"]},"merge16":{"type":"merge","params":{"mode":1},"inputs":["propertyValue25","propertyValue27"]},"target15":{"type":"target","params":{"type":1,"nodePath":"../../transform_ANIM_H_1"},"inputs":["propertyName1"]},"propertyValue29":{"type":"propertyValue","inputs":["target15"]},"propertyValue30":{"type":"propertyValue","params":{"value3":[-1.8,0,0]},"inputs":["target15"]},"target16":{"type":"target","params":{"type":1,"nodePath":"../../transform_ANIM_H_2"},"inputs":["propertyName1"]},"propertyValue31":{"type":"propertyValue","params":{"value3":[0,0,-2.5]},"inputs":["target16"]},"propertyValue32":{"type":"propertyValue","inputs":["target16"]},"merge17":{"type":"merge","inputs":["propertyValue30","propertyValue32"]},"merge18":{"type":"merge","params":{"mode":1},"inputs":["propertyValue29","propertyValue31"]},"target17":{"type":"target","params":{"type":1,"nodePath":"../../transform_ANIM_I_1"},"inputs":["propertyName1"]},"propertyValue33":{"type":"propertyValue","inputs":["target17"]},"propertyValue34":{"type":"propertyValue","params":{"value3":[1.4999999999999998,0,0]},"inputs":["target17"]},"target18":{"type":"target","params":{"type":1,"nodePath":"../../transform_ANIM_I_2"},"inputs":["propertyName1"]},"propertyValue35":{"type":"propertyValue","params":{"value3":[0,0,-2]},"inputs":["target18"]},"propertyValue36":{"type":"propertyValue","inputs":["target18"]},"merge19":{"type":"merge","inputs":["propertyValue34","propertyValue36"]},"merge20":{"type":"merge","params":{"mode":1},"inputs":["propertyValue33","propertyValue35"]},"target19":{"type":"target","params":{"type":1,"nodePath":"../../transform_ANIM_J_1"},"inputs":["propertyName1"]},"propertyValue37":{"type":"propertyValue","inputs":["target19"]},"propertyValue38":{"type":"propertyValue","params":{"value3":[1.3,0,0]},"inputs":["target19"]},"target20":{"type":"target","params":{"type":1,"nodePath":"../../transform_ANIM_J_2"},"inputs":["propertyName1"]},"propertyValue39":{"type":"propertyValue","params":{"value3":[0,0,-2.1]},"inputs":["target20"]},"propertyValue40":{"type":"propertyValue","inputs":["target20"]},"merge21":{"type":"merge","inputs":["propertyValue38","propertyValue40"]},"merge22":{"type":"merge","params":{"mode":1},"inputs":["propertyValue37","propertyValue39"]},"target21":{"type":"target","params":{"type":1,"nodePath":"../../transform_ANIM_K_1"},"inputs":["propertyName1"]},"propertyValue41":{"type":"propertyValue","inputs":["target21"]},"propertyValue42":{"type":"propertyValue","params":{"value3":[1.4999999999999998,0,0]},"inputs":["target21"]},"target22":{"type":"target","params":{"type":1,"nodePath":"../../transform_ANIM_K_2"},"inputs":["propertyName1"]},"propertyValue43":{"type":"propertyValue","params":{"value3":[0,0,-3]},"inputs":["target22"]},"propertyValue44":{"type":"propertyValue","inputs":["target22"]},"merge23":{"type":"merge","inputs":["propertyValue42","propertyValue44"]},"merge24":{"type":"merge","params":{"mode":1},"inputs":["propertyValue41","propertyValue43"]}},"selection":["duration1"]},"transform_ANIM_A_1":{"type":"transform","params":{"t":[-0.7,0,0]},"inputs":["material2"]},"transform_ANIM_A_2":{"type":"transform","params":{"applyOn":1},"inputs":["transform_ANIM_A_1"]},"transform_ANIM_B_1":{"type":"transform","params":{"t":[-0.8,0,0]},"inputs":["material3"]},"transform_ANIM_B_2":{"type":"transform","params":{"applyOn":1},"inputs":["transform_ANIM_B_1"]},"material3":{"type":"material","params":{"material":"../MAT/meshStandardBuilder_RED"},"inputs":["transform_bottom_center"]},"transform_ANIM_C_1":{"type":"transform","params":{"t":[0.8,0,0]},"inputs":["transform10"]},"transform_ANIM_C_2":{"type":"transform","params":{"applyOn":1},"inputs":["transform_ANIM_C_1"]},"material4":{"type":"material","params":{"material":"../MAT/meshStandardBuilder_RED"},"inputs":["boolean6"]},"transform_ANIM_D_1":{"type":"transform","params":{"t":[1.2,0,0]},"inputs":["transform13"]},"transform_ANIM_D_2":{"type":"transform","params":{"applyOn":1},"inputs":["transform_ANIM_D_1"]},"material5":{"type":"material","params":{"material":"../MAT/meshStandardBuilder_RED"},"inputs":["box2"]},"transform_ANIM_E_1":{"type":"transform","params":{"t":[0,0.8,0]},"inputs":["transform14"]},"transform_ANIM_E_2":{"type":"transform","params":{"applyOn":1},"inputs":["transform_ANIM_E_1"]},"transform_ANIM_F_1":{"type":"transform","params":{"t":[0,-0.9,0]},"inputs":["transform15"]},"transform_ANIM_F_2":{"type":"transform","params":{"applyOn":1},"inputs":["transform_ANIM_F_1"]},"material6":{"type":"material","params":{"material":"../MAT/meshStandardBuilder_RED"},"inputs":["box4"]},"transform_ANIM_G_1":{"type":"transform","params":{"t":[-2.1,0,0]},"inputs":["transform4"]},"transform_ANIM_G_2":{"type":"transform","params":{"applyOn":1},"inputs":["transform_ANIM_G_1"]},"transform_ANIM_H_1":{"type":"transform","params":{"t":[-1.8,0,0]},"inputs":["transform5"]},"transform_ANIM_H_2":{"type":"transform","params":{"applyOn":1},"inputs":["transform_ANIM_H_1"]},"material7":{"type":"material","params":{"material":"../MAT/meshStandardBuilder_RED"},"inputs":["box5"]},"transform_ANIM_I_1":{"type":"transform","params":{"t":[1.5,0,0]},"inputs":["transform1"]},"transform_ANIM_I_2":{"type":"transform","params":{"applyOn":1},"inputs":["transform_ANIM_I_1"]},"transform_ANIM_J_1":{"type":"transform","params":{"t":[1.3,0,0]},"inputs":["transform2"]},"transform_ANIM_J_2":{"type":"transform","params":{"applyOn":1},"inputs":["transform_ANIM_J_1"]},"transform_ANIM_K_1":{"type":"transform","params":{"t":[1.5,0,0]},"inputs":["transform6"]},"transform_ANIM_K_2":{"type":"transform","params":{"applyOn":1},"inputs":["transform_ANIM_K_1"]},"EVENTS":{"type":"eventsNetwork","nodes":{"keyboard1":{"type":"keyboard","params":{"keydown":0,"keypress":1,"keyCodes":"Digit1"}},"animation_RESET":{"type":"animation","params":{"animation":"../../ANIM/RESET"},"inputs":[{"index":0,"node":"keyboard1","output":"keypress"}]},"keyboard2":{"type":"keyboard","params":{"keydown":0,"keypress":1,"keyCodes":"Digit2"}},"animation_PLAY":{"type":"animation","params":{"animation":"../../ANIM/PLAY"},"inputs":[{"index":0,"node":"keyboard2","output":"keypress"}]}}}},"flags":{"display":true},"selection":["ANIM"]},"polarTransform1":{"type":"polarTransform","params":{"center":[0,0.4,0],"longitude":334.8,"latitude":39.6,"depth":1.3},"flags":{"display":false}},"areaLight1":{"type":"areaLight","params":{"color":[0.9529411764705882,0.6078431372549019,0.6078431372549019],"intensity":1.2,"width":1.9,"showHelper":1},"inputs":["polarTransform2"],"flags":{"display":true}},"polarTransform2":{"type":"polarTransform","params":{"longitude":115.2,"latitude":21.6,"depth":2.1},"flags":{"display":false}}},"params":{"backgroundMode":1}},"ui":{"nodes":{"hemisphereLight1":{"pos":[150,100]},"perspectiveCamera1":{"pos":[-200,100],"nodes":{"events1":{"pos":[-200,50],"nodes":{"cameraOrbitControls1":{"pos":[150,50]}}}}},"spotLight1":{"pos":[300,250]},"COP":{"pos":[-200,200],"nodes":{"imageEnv":{"pos":[50,100]},"imageUv":{"pos":[-100,100]},"envMap":{"pos":[50,200]}}},"ground":{"pos":[-50,-50],"nodes":{"plane1":{"pos":[0,-50]},"reflector1":{"pos":[0,200]},"transform1":{"pos":[0,100]},"transform2":{"pos":[200,100]}}},"text":{"pos":[0,-300],"comment":"The objects are animated via the anim nodes, which are inside this text node. So dive inside to see how it's set up.\\n\\nOr you can simply do the following to start the anim:\\n1 - click on the 3D viewer.\\n2 - press \"2\"\\n\\nAnd if you want to reset the animation:\\n1 - click on the 3D viewer.\\n2 - press \"1\"\\n","nodes":{"box1":{"pos":[-400,-300]},"transform3":{"pos":[-400,-50]},"tube1":{"pos":[50,-450]},"boolean1":{"pos":[-200,250]},"boolean2":{"pos":[-50,350]},"boolean3":{"pos":[500,950]},"tube2":{"pos":[1150,-300]},"transform7":{"pos":[1250,-200]},"boolean4":{"pos":[1150,-100]},"transform8":{"pos":[850,500]},"box3":{"pos":[1400,-100]},"boolean5":{"pos":[1250,100]},"transform9":{"pos":[1400,0]},"transform10":{"pos":[850,600]},"boolean6":{"pos":[1350,250]},"transform11":{"pos":[1500,100]},"transform_ROTATE_180":{"pos":[1350,500]},"transform12":{"pos":[1150,650]},"transform13":{"pos":[1150,750]},"boolean7":{"pos":[750,1150]},"box2":{"pos":[1650,550]},"transform14":{"pos":[1550,900]},"boolean8":{"pos":[1000,1350]},"transform_ROTATE_181":{"pos":[1750,800]},"transform15":{"pos":[1750,1000]},"boolean9":{"pos":[1300,1500]},"transform_top_center":{"pos":[-100,-300]},"transform_bottom_center":{"pos":[150,-300]},"box4":{"pos":[2100,1000]},"transform4":{"pos":[2050,1250]},"boolean10":{"pos":[1550,1650]},"transform5":{"pos":[2250,1250]},"boolean11":{"pos":[1800,1800]},"box5":{"pos":[2400,1650]},"transform1":{"pos":[2200,1850]},"boolean12":{"pos":[2050,2250]},"transform2":{"pos":[2400,1850]},"boolean13":{"pos":[2200,2350]},"boolean14":{"pos":[2300,2450]},"transform6":{"pos":[2600,1850]},"MAT":{"pos":[-800,50],"nodes":{"meshStandardBuilder_BOX":{"pos":[-650,50],"nodes":{"globals1":{"pos":[-200,0]},"output1":{"pos":[200,0]}}},"meshStandardBuilder_RED":{"pos":[-650,150],"nodes":{"globals1":{"pos":[-200,0]},"output1":{"pos":[200,0]}}}}},"material1":{"pos":[-400,-150]},"merge1":{"pos":[1450,2650]},"material2":{"pos":[-100,-200]},"merge2":{"pos":[2250,2800]},"ANIM":{"pos":[-800,250],"nodes":{"target1":{"pos":[-600,450]},"propertyName1":{"pos":[-350,150]},"propertyValue1":{"pos":[-600,700]},"PLAY":{"pos":[4550,1700]},"propertyValue2":{"pos":[-900,700]},"RESET":{"pos":[3700,1700]},"easing1":{"pos":[-350,50]},"duration1":{"pos":[-350,-50]},"target2":{"pos":[-350,450]},"propertyValue3":{"pos":[-350,700]},"propertyValue4":{"pos":[-750,700]},"merge1":{"pos":[-850,850]},"merge2":{"pos":[-500,850]},"target3":{"pos":[150,450]},"propertyValue5":{"pos":[150,700]},"propertyValue6":{"pos":[-150,700]},"target4":{"pos":[400,450]},"propertyValue7":{"pos":[400,700]},"propertyValue8":{"pos":[0,700]},"merge3":{"pos":[-50,850]},"merge4":{"pos":[300,850]},"merge5":{"pos":[3700,1550]},"merge6":{"pos":[4550,1550]},"target5":{"pos":[900,450]},"propertyValue9":{"pos":[900,700]},"propertyValue10":{"pos":[600,700]},"target6":{"pos":[1150,450]},"propertyValue11":{"pos":[1150,700]},"propertyValue12":{"pos":[750,700]},"merge7":{"pos":[700,850]},"merge8":{"pos":[1050,850]},"target7":{"pos":[1700,450]},"propertyValue13":{"pos":[1700,700]},"propertyValue14":{"pos":[1400,700]},"target8":{"pos":[1950,450]},"propertyValue15":{"pos":[1950,700]},"propertyValue16":{"pos":[1550,700]},"merge9":{"pos":[1500,850]},"merge10":{"pos":[1850,850]},"target9":{"pos":[2500,450]},"propertyValue17":{"pos":[2500,700]},"propertyValue18":{"pos":[2200,700]},"target10":{"pos":[2750,450]},"propertyValue19":{"pos":[2750,700]},"propertyValue20":{"pos":[2350,700]},"merge11":{"pos":[2300,850]},"merge12":{"pos":[2650,850]},"target11":{"pos":[3300,450]},"propertyValue21":{"pos":[3300,700]},"propertyValue22":{"pos":[3000,700]},"target12":{"pos":[3550,450]},"propertyValue23":{"pos":[3550,700]},"propertyValue24":{"pos":[3150,700]},"merge13":{"pos":[3100,850]},"merge14":{"pos":[3450,850]},"target13":{"pos":[4100,450]},"propertyValue25":{"pos":[4100,700]},"propertyValue26":{"pos":[3800,700]},"target14":{"pos":[4350,450]},"propertyValue27":{"pos":[4350,700]},"propertyValue28":{"pos":[3950,700]},"merge15":{"pos":[3900,850]},"merge16":{"pos":[4250,850]},"target15":{"pos":[4950,450]},"propertyValue29":{"pos":[4950,700]},"propertyValue30":{"pos":[4650,700]},"target16":{"pos":[5200,450]},"propertyValue31":{"pos":[5200,700]},"propertyValue32":{"pos":[4800,700]},"merge17":{"pos":[4750,850]},"merge18":{"pos":[5100,850]},"target17":{"pos":[5750,450]},"propertyValue33":{"pos":[5750,700]},"propertyValue34":{"pos":[5450,700]},"target18":{"pos":[6000,450]},"propertyValue35":{"pos":[6000,700]},"propertyValue36":{"pos":[5600,700]},"merge19":{"pos":[5550,850]},"merge20":{"pos":[5900,850]},"target19":{"pos":[6550,450]},"propertyValue37":{"pos":[6550,700]},"propertyValue38":{"pos":[6250,700]},"target20":{"pos":[6800,450]},"propertyValue39":{"pos":[6800,700]},"propertyValue40":{"pos":[6400,700]},"merge21":{"pos":[6350,850]},"merge22":{"pos":[6700,850]},"target21":{"pos":[7350,450]},"propertyValue41":{"pos":[7350,700]},"propertyValue42":{"pos":[7050,700]},"target22":{"pos":[7600,450]},"propertyValue43":{"pos":[7600,700]},"propertyValue44":{"pos":[7200,700]},"merge23":{"pos":[7150,850]},"merge24":{"pos":[7500,850]}}},"transform_ANIM_A_1":{"pos":[-100,-100]},"transform_ANIM_A_2":{"pos":[-100,0]},"transform_ANIM_B_1":{"pos":[150,-100]},"transform_ANIM_B_2":{"pos":[150,0]},"material3":{"pos":[150,-200]},"transform_ANIM_C_1":{"pos":[850,700]},"transform_ANIM_C_2":{"pos":[850,800]},"material4":{"pos":[1350,350]},"transform_ANIM_D_1":{"pos":[1150,900]},"transform_ANIM_D_2":{"pos":[1150,1000]},"material5":{"pos":[1650,650]},"transform_ANIM_E_1":{"pos":[1550,1000]},"transform_ANIM_E_2":{"pos":[1550,1100]},"transform_ANIM_F_1":{"pos":[1750,1100]},"transform_ANIM_F_2":{"pos":[1750,1200]},"material6":{"pos":[2100,1100]},"transform_ANIM_G_1":{"pos":[2050,1350]},"transform_ANIM_G_2":{"pos":[2050,1450]},"transform_ANIM_H_1":{"pos":[2250,1350]},"transform_ANIM_H_2":{"pos":[2250,1450]},"material7":{"pos":[2400,1750]},"transform_ANIM_I_1":{"pos":[2200,1950]},"transform_ANIM_I_2":{"pos":[2200,2050]},"transform_ANIM_J_1":{"pos":[2400,1950]},"transform_ANIM_J_2":{"pos":[2400,2050]},"transform_ANIM_K_1":{"pos":[2600,1950]},"transform_ANIM_K_2":{"pos":[2600,2050]},"EVENTS":{"pos":[-800,150],"nodes":{"keyboard1":{"pos":[-850,50]},"animation_RESET":{"pos":[-600,50]},"keyboard2":{"pos":[-850,200]},"animation_PLAY":{"pos":[-600,200]}}}}},"polarTransform1":{"pos":[300,50]},"areaLight1":{"pos":[450,350]},"polarTransform2":{"pos":[450,150]}}}}
Code editor
{"multiple_panel":{"split_ratio":0.5,"split_panel0":{"split_ratio":0.5,"split_panel0":{"panel_types":["viewer"],"current_panel_index":0,"panel_data":{"camera":"/perspectiveCamera1"}},"split_panel1":{"panel_types":["params"],"current_panel_index":0,"panel_data":{"active_folder":172}},"split_mode":"vertical"},"split_panel1":{"panel_types":["network","params","viewer"],"current_panel_index":0,"panel_data":{"camera":{"position":{"x":-141.91428655627485,"y":37.05488295824468},"zoom":0.7280000000000002},"history":{"2":{"position":{"x":-141.91428655627485,"y":37.05488295824468},"zoom":0.7280000000000002},"3":{"position":{"x":-48,"y":-22},"zoom":0.5},"6":{"position":{"x":11.339999999999996,"y":-96.49999999999999},"zoom":0.6172839506172841},"9":{"position":{"x":-32,"y":-88},"zoom":0.5},"131":{"position":{"x":-59.04899999999998,"y":-65.1854},"zoom":0.8467543904215146},"166":{"position":{"x":437.4725175476456,"y":-247.05632427023056},"zoom":0.6630000000000001}}}},"split_mode":"horizontal"},"current_node":"/","fullscreen_panel_id":null}
Used nodes
anim/duration;anim/easing;anim/merge;anim/null;anim/propertyName;anim/propertyValue;anim/target;cop/envMap;cop/image;event/animation;event/cameraOrbitControls;event/keyboard;mat/meshStandardBuilder;obj/areaLight;obj/copNetwork;obj/geo;obj/hemisphereLight;obj/perspectiveCamera;obj/polarTransform;obj/spotLight;sop/animationsNetwork;sop/boolean;sop/box;sop/eventsNetwork;sop/material;sop/materialsNetwork;sop/merge;sop/plane;sop/reflector;sop/transform;sop/tube
Used operations
Used modules
EXRLoader
Used assemblers
GL_MESH_STANDARD
Used integrations
[]
Used assets
Nodes map
{"/hemisphereLight1":"obj/hemisphereLight","/perspectiveCamera1":"obj/perspectiveCamera","/perspectiveCamera1/events1":"sop/eventsNetwork","/perspectiveCamera1/events1/cameraOrbitControls1":"event/cameraOrbitControls","/spotLight1":"obj/spotLight","/COP":"obj/copNetwork","/COP/imageEnv":"cop/image","/COP/imageUv":"cop/image","/COP/envMap":"cop/envMap","/ground":"obj/geo","/ground/plane1":"sop/plane","/ground/reflector1":"sop/reflector","/ground/transform1":"sop/transform","/ground/transform2":"sop/transform","/text":"obj/geo","/text/box1":"sop/box","/text/transform3":"sop/transform","/text/tube1":"sop/tube","/text/boolean1":"sop/boolean","/text/boolean2":"sop/boolean","/text/boolean3":"sop/boolean","/text/tube2":"sop/tube","/text/transform7":"sop/transform","/text/boolean4":"sop/boolean","/text/transform8":"sop/transform","/text/box3":"sop/box","/text/boolean5":"sop/boolean","/text/transform9":"sop/transform","/text/transform10":"sop/transform","/text/boolean6":"sop/boolean","/text/transform11":"sop/transform","/text/transform_ROTATE_180":"sop/transform","/text/transform12":"sop/transform","/text/transform13":"sop/transform","/text/boolean7":"sop/boolean","/text/box2":"sop/box","/text/transform14":"sop/transform","/text/boolean8":"sop/boolean","/text/transform_ROTATE_181":"sop/transform","/text/transform15":"sop/transform","/text/boolean9":"sop/boolean","/text/transform_top_center":"sop/transform","/text/transform_bottom_center":"sop/transform","/text/box4":"sop/box","/text/transform4":"sop/transform","/text/boolean10":"sop/boolean","/text/transform5":"sop/transform","/text/boolean11":"sop/boolean","/text/box5":"sop/box","/text/transform1":"sop/transform","/text/boolean12":"sop/boolean","/text/transform2":"sop/transform","/text/boolean13":"sop/boolean","/text/boolean14":"sop/boolean","/text/transform6":"sop/transform","/text/MAT":"sop/materialsNetwork","/text/MAT/meshStandardBuilder_BOX":"mat/meshStandardBuilder","/text/MAT/meshStandardBuilder_RED":"mat/meshStandardBuilder","/text/material1":"sop/material","/text/merge1":"sop/merge","/text/material2":"sop/material","/text/merge2":"sop/merge","/text/ANIM":"sop/animationsNetwork","/text/ANIM/target1":"anim/target","/text/ANIM/propertyName1":"anim/propertyName","/text/ANIM/propertyValue1":"anim/propertyValue","/text/ANIM/PLAY":"anim/null","/text/ANIM/propertyValue2":"anim/propertyValue","/text/ANIM/RESET":"anim/null","/text/ANIM/easing1":"anim/easing","/text/ANIM/duration1":"anim/duration","/text/ANIM/target2":"anim/target","/text/ANIM/propertyValue3":"anim/propertyValue","/text/ANIM/propertyValue4":"anim/propertyValue","/text/ANIM/merge1":"anim/merge","/text/ANIM/merge2":"anim/merge","/text/ANIM/target3":"anim/target","/text/ANIM/propertyValue5":"anim/propertyValue","/text/ANIM/propertyValue6":"anim/propertyValue","/text/ANIM/target4":"anim/target","/text/ANIM/propertyValue7":"anim/propertyValue","/text/ANIM/propertyValue8":"anim/propertyValue","/text/ANIM/merge3":"anim/merge","/text/ANIM/merge4":"anim/merge","/text/ANIM/merge5":"anim/merge","/text/ANIM/merge6":"anim/merge","/text/ANIM/target5":"anim/target","/text/ANIM/propertyValue9":"anim/propertyValue","/text/ANIM/propertyValue10":"anim/propertyValue","/text/ANIM/target6":"anim/target","/text/ANIM/propertyValue11":"anim/propertyValue","/text/ANIM/propertyValue12":"anim/propertyValue","/text/ANIM/merge7":"anim/merge","/text/ANIM/merge8":"anim/merge","/text/ANIM/target7":"anim/target","/text/ANIM/propertyValue13":"anim/propertyValue","/text/ANIM/propertyValue14":"anim/propertyValue","/text/ANIM/target8":"anim/target","/text/ANIM/propertyValue15":"anim/propertyValue","/text/ANIM/propertyValue16":"anim/propertyValue","/text/ANIM/merge9":"anim/merge","/text/ANIM/merge10":"anim/merge","/text/ANIM/target9":"anim/target","/text/ANIM/propertyValue17":"anim/propertyValue","/text/ANIM/propertyValue18":"anim/propertyValue","/text/ANIM/target10":"anim/target","/text/ANIM/propertyValue19":"anim/propertyValue","/text/ANIM/propertyValue20":"anim/propertyValue","/text/ANIM/merge11":"anim/merge","/text/ANIM/merge12":"anim/merge","/text/ANIM/target11":"anim/target","/text/ANIM/propertyValue21":"anim/propertyValue","/text/ANIM/propertyValue22":"anim/propertyValue","/text/ANIM/target12":"anim/target","/text/ANIM/propertyValue23":"anim/propertyValue","/text/ANIM/propertyValue24":"anim/propertyValue","/text/ANIM/merge13":"anim/merge","/text/ANIM/merge14":"anim/merge","/text/ANIM/target13":"anim/target","/text/ANIM/propertyValue25":"anim/propertyValue","/text/ANIM/propertyValue26":"anim/propertyValue","/text/ANIM/target14":"anim/target","/text/ANIM/propertyValue27":"anim/propertyValue","/text/ANIM/propertyValue28":"anim/propertyValue","/text/ANIM/merge15":"anim/merge","/text/ANIM/merge16":"anim/merge","/text/ANIM/target15":"anim/target","/text/ANIM/propertyValue29":"anim/propertyValue","/text/ANIM/propertyValue30":"anim/propertyValue","/text/ANIM/target16":"anim/target","/text/ANIM/propertyValue31":"anim/propertyValue","/text/ANIM/propertyValue32":"anim/propertyValue","/text/ANIM/merge17":"anim/merge","/text/ANIM/merge18":"anim/merge","/text/ANIM/target17":"anim/target","/text/ANIM/propertyValue33":"anim/propertyValue","/text/ANIM/propertyValue34":"anim/propertyValue","/text/ANIM/target18":"anim/target","/text/ANIM/propertyValue35":"anim/propertyValue","/text/ANIM/propertyValue36":"anim/propertyValue","/text/ANIM/merge19":"anim/merge","/text/ANIM/merge20":"anim/merge","/text/ANIM/target19":"anim/target","/text/ANIM/propertyValue37":"anim/propertyValue","/text/ANIM/propertyValue38":"anim/propertyValue","/text/ANIM/target20":"anim/target","/text/ANIM/propertyValue39":"anim/propertyValue","/text/ANIM/propertyValue40":"anim/propertyValue","/text/ANIM/merge21":"anim/merge","/text/ANIM/merge22":"anim/merge","/text/ANIM/target21":"anim/target","/text/ANIM/propertyValue41":"anim/propertyValue","/text/ANIM/propertyValue42":"anim/propertyValue","/text/ANIM/target22":"anim/target","/text/ANIM/propertyValue43":"anim/propertyValue","/text/ANIM/propertyValue44":"anim/propertyValue","/text/ANIM/merge23":"anim/merge","/text/ANIM/merge24":"anim/merge","/text/transform_ANIM_A_1":"sop/transform","/text/transform_ANIM_A_2":"sop/transform","/text/transform_ANIM_B_1":"sop/transform","/text/transform_ANIM_B_2":"sop/transform","/text/material3":"sop/material","/text/transform_ANIM_C_1":"sop/transform","/text/transform_ANIM_C_2":"sop/transform","/text/material4":"sop/material","/text/transform_ANIM_D_1":"sop/transform","/text/transform_ANIM_D_2":"sop/transform","/text/material5":"sop/material","/text/transform_ANIM_E_1":"sop/transform","/text/transform_ANIM_E_2":"sop/transform","/text/transform_ANIM_F_1":"sop/transform","/text/transform_ANIM_F_2":"sop/transform","/text/material6":"sop/material","/text/transform_ANIM_G_1":"sop/transform","/text/transform_ANIM_G_2":"sop/transform","/text/transform_ANIM_H_1":"sop/transform","/text/transform_ANIM_H_2":"sop/transform","/text/material7":"sop/material","/text/transform_ANIM_I_1":"sop/transform","/text/transform_ANIM_I_2":"sop/transform","/text/transform_ANIM_J_1":"sop/transform","/text/transform_ANIM_J_2":"sop/transform","/text/transform_ANIM_K_1":"sop/transform","/text/transform_ANIM_K_2":"sop/transform","/text/EVENTS":"sop/eventsNetwork","/text/EVENTS/keyboard1":"event/keyboard","/text/EVENTS/animation_RESET":"event/animation","/text/EVENTS/keyboard2":"event/keyboard","/text/EVENTS/animation_PLAY":"event/animation","/polarTransform1":"obj/polarTransform","/areaLight1":"obj/areaLight","/polarTransform2":"obj/polarTransform"}
Js version
Editor version
Engine version
Name
*
Code
{"properties":{"frame":0,"maxFrame":600,"maxFrameLocked":false,"realtimeState":true,"masterCameraNodePath":"/perspectiveCamera1","versions":{"polygonjs":"1.1.131"}},"root":{"type":"obj","nodes":{"hemisphereLight1":{"type":"hemisphereLight","params":{"skyColor":[0.2,0.6980392156862745,1],"groundColor":[0.09803921568627451,0.09803921568627451,0.24705882352941178]},"flags":{"display":true}},"perspectiveCamera1":{"type":"perspectiveCamera","nodes":{"events1":{"type":"eventsNetwork","nodes":{"cameraOrbitControls1":{"type":"cameraOrbitControls","params":{"target":[0.007756875539104444,0.7982663715017727,0.07774279157645479]}}},"selection":["cameraOrbitControls1"]}},"params":{"t":[1.5213465648197058,0.6993442394152822,2.660845303651476],"r":[2.193119444810336,30.35020353486505,-1.1085512292109307],"controls":"./events1/cameraOrbitControls1","near":0.1,"far":10},"flags":{"display":true}},"spotLight1":{"type":"spotLight","params":{"r":[90,0,0],"color":[0.7490196078431373,0.8627450980392157,0.9098039215686274],"distance":7.6,"castShadow":0,"tvolumetric":1,"volAttenuation":2.7,"volAnglePower":18.4},"inputs":["polarTransform1"],"flags":{"display":true}},"COP":{"type":"copNetwork","nodes":{"imageEnv":{"type":"image","params":{"url":"https://raw.githubusercontent.com/polygonjs/polygonjs-assets/master/textures/piz_compressed.exr"}},"imageUv":{"type":"image","params":{"url":"https://raw.githubusercontent.com/polygonjs/polygonjs-assets/master/textures/uv.jpg","tflipY":true}},"envMap":{"type":"envMap","inputs":["imageEnv"]}}},"ground":{"type":"geo","nodes":{"plane1":{"type":"plane","params":{"size":[6,6],"direction":[0,0,1]}},"reflector1":{"type":"reflector","params":{"tblur":1,"blur":0.25,"verticalBlurMult":4.5,"tblur2":1,"blur2":0.04},"inputs":["transform1"],"flags":{"display":true}},"transform1":{"type":"transform","params":{"applyOn":1,"t":[0,0.020000000000000018,0],"r":[-90,0,0]},"inputs":["plane1"]},"transform2":{"type":"transform","params":{"applyOn":1,"r":[-90,0,0]},"inputs":["plane1"]}},"flags":{"display":true},"selection":["transform1"]},"text":{"type":"geo","nodes":{"box1":{"type":"box","params":{"center":[0,0.5,0]}},"transform3":{"type":"transform","params":{"t":[0.08600000000000001,0,0],"s":[0.56,1,0.1]},"inputs":["material1"]},"tube1":{"type":"tube","params":{"height":1.2,"segmentsRadial":20}},"boolean1":{"type":"boolean","params":{"operation":1,"useBothMaterials":0},"inputs":["transform3","transform_ANIM_A_1"]},"boolean2":{"type":"boolean","params":{"operation":1,"useBothMaterials":0},"inputs":["boolean1","transform_ANIM_B_1"]},"boolean3":{"type":"boolean","params":{"operation":1},"inputs":["boolean2","transform_ANIM_C_1"]},"tube2":{"type":"tube","params":{"segmentsRadial":40}},"transform7":{"type":"transform","params":{"s":[1,1,4.2],"scale":0.47},"inputs":["tube2"]},"boolean4":{"type":"boolean","params":{"operation":1},"inputs":["tube2","transform7"]},"transform8":{"type":"transform","params":{"t":[0,"-bbox(0, 'min').y",0]},"inputs":["material4"]},"box3":{"type":"box","params":{"center":[-0.5,0,0]}},"boolean5":{"type":"boolean","params":{"operation":1},"inputs":["boolean4","transform9"]},"transform9":{"type":"transform","params":{"s":[1,2.1,1]},"inputs":["box3"]},"transform10":{"type":"transform","params":{"t":[0,0.5,0],"scale":0.4},"inputs":["transform8"]},"boolean6":{"type":"boolean","params":{"operation":1},"inputs":["boolean5","transform11"]},"transform11":{"type":"transform","params":{"t":[1,-1.53,0],"s":[1,2.1,1]},"inputs":["box3"]},"transform_ROTATE_180":{"type":"transform","params":{"r":[180,0,0]},"inputs":["material4"]},"transform12":{"type":"transform","params":{"t":[0,"-bbox(0, 'max').y",0]},"inputs":["transform_ROTATE_180"]},"transform13":{"type":"transform","params":{"t":[0.06,0.5,0],"scale":0.4},"inputs":["transform12"]},"boolean7":{"type":"boolean","params":{"operation":1},"inputs":["boolean3","transform_ANIM_D_1"]},"box2":{"type":"box","params":{"center":[0,0.5,0]}},"transform14":{"type":"transform","params":{"t":[0,0.88,0],"scale":0.4},"inputs":["material5"]},"boolean8":{"type":"boolean","params":{"operation":1},"inputs":["boolean7","transform_ANIM_E_1"]},"transform_ROTATE_181":{"type":"transform","params":{"r":[180,0,0]},"inputs":["material5"]},"transform15":{"type":"transform","params":{"t":[0,"1-ch(\"../transform14/ty\")",0],"scale":0.4},"inputs":["transform_ROTATE_181"]},"boolean9":{"type":"boolean","params":{"operation":1},"inputs":["boolean8","transform_ANIM_F_1"]},"transform_top_center":{"type":"transform","params":{"t":[0,0.6900000000000001,0],"s":[1,1,5.1],"scale":0.093},"inputs":["tube1"]},"transform_bottom_center":{"type":"transform","params":{"t":[0.04,"1 - ch(\"../transform_top_center/ty\")",0],"s":[1,1,5.1],"scale":"ch(\"../transform_top_center/scale\")"},"inputs":["tube1"]},"box4":{"type":"box","params":{"size":2,"center":[-0.5,0,0]}},"transform4":{"type":"transform","params":{"t":[-0.022,"ch(\"../transform_top_center/ty\")",0],"s":[0.6000000000000001,1,1.27],"scale":"ch(\"../transform_top_center/scale\")"},"inputs":["material6"]},"boolean10":{"type":"boolean","params":{"operation":1},"inputs":["boolean9","transform_ANIM_G_1"]},"transform5":{"type":"transform","params":{"t":["-0.022+ch(\"../transform_bottom_center/tx\")","ch(\"../transform_bottom_center/ty\")",0],"s":[0.8800000000000001,1,1.27],"scale":"ch(\"../transform_top_center/scale\")"},"inputs":["material6"]},"boolean11":{"type":"boolean","params":{"operation":1},"inputs":["boolean10","transform_ANIM_H_1"]},"box5":{"type":"box"},"transform1":{"type":"transform","params":{"t":[0.3256592459977054,0.9426476823676182,0],"s":[0.22833544271916356,0.24409158047343557,0.6428867151950228]},"inputs":["material7"]},"boolean12":{"type":"boolean","params":{"operation":1},"inputs":["boolean11","transform_ANIM_I_1"]},"transform2":{"type":"transform","params":{"t":[0.3256592459977054,0.5225047199433819,0],"s":[0.22833544271916356,0.24409158047343557,0.6428867151950228],"scale":0.8},"inputs":["material7"]},"boolean13":{"type":"boolean","params":{"operation":1},"inputs":["boolean12","transform_ANIM_J_1"]},"boolean14":{"type":"boolean","params":{"operation":1},"inputs":["boolean13","transform_ANIM_K_1"]},"transform6":{"type":"transform","params":{"t":[0.3256592459977054,0.056596670405528016,0],"s":[0.22833544271916356,0.24409158047343557,0.6428867151950228]},"inputs":["material7"]},"MAT":{"type":"materialsNetwork","nodes":{"meshStandardBuilder_BOX":{"type":"meshStandardBuilder","nodes":{"globals1":{"type":"globals"},"output1":{"type":"output"}},"persisted_config":{"material":{"metadata":{"version":4.5,"type":"Material","generator":"Material.toJSON"},"uuid":"/text/MAT/meshStandardBuilder_BOX-main","type":"ShaderMaterial","name":"/text/MAT/meshStandardBuilder_BOX","color":16777215,"depthFunc":3,"depthTest":true,"depthWrite":true,"colorWrite":true,"stencilWrite":false,"stencilWriteMask":255,"stencilFunc":519,"stencilRef":0,"stencilFuncMask":255,"stencilFail":7680,"stencilZFail":7680,"stencilZPass":7680,"glslVersion":null,"uniforms":{"diffuse":{"type":"c","value":15658734},"opacity":{"value":1},"map":{"value":null},"uvTransform":{"type":"m3","value":[1,0,0,0,1,0,0,0,1]},"uv2Transform":{"type":"m3","value":[1,0,0,0,1,0,0,0,1]},"alphaMap":{"value":null},"envMap":{"value":null},"flipEnvMap":{"value":-1},"reflectivity":{"value":1},"refractionRatio":{"value":0.98},"maxMipLevel":{"value":0},"aoMap":{"value":null},"aoMapIntensity":{"value":1},"lightMap":{"value":null},"lightMapIntensity":{"value":1},"emissiveMap":{"value":null},"bumpMap":{"value":null},"bumpScale":{"value":1},"normalMap":{"value":null},"normalScale":{"type":"v2","value":[1,1]},"displacementMap":{"value":null},"displacementScale":{"value":1},"displacementBias":{"value":0},"roughnessMap":{"value":null},"metalnessMap":{"value":null},"fogDensity":{"value":0.00025},"fogNear":{"value":1},"fogFar":{"value":2000},"fogColor":{"type":"c","value":16777215},"ambientLightColor":{"value":[0,0,0]},"lightProbe":{"value":[{"x":0,"y":0,"z":0},{"x":0,"y":0,"z":0},{"x":0,"y":0,"z":0},{"x":0,"y":0,"z":0},{"x":0,"y":0,"z":0},{"x":0,"y":0,"z":0},{"x":0,"y":0,"z":0},{"x":0,"y":0,"z":0},{"x":0,"y":0,"z":0}]},"directionalLights":{"value":[]},"directionalLightShadows":{"value":[]},"directionalShadowMap":{"value":[]},"directionalShadowMatrix":{"value":[]},"spotLights":{"value":[{"position":{"x":1.4290885201834054,"y":-2.592164491452121,"z":-1.9783367768998996},"direction":{"x":0.6355215542554208,"y":-0.6226892565651174,"z":0.45647611529537435},"color":8697549,"distance":7.6,"coneCos":0.7071067811865476,"penumbraCos":0.7604059656000309,"decay":0.1}]},"spotLightShadows":{"value":[]},"spotShadowMap":{"value":[]},"spotShadowMatrix":{"value":[]},"pointLights":{"value":[]},"pointLightShadows":{"value":[]},"pointShadowMap":{"value":[]},"pointShadowMatrix":{"value":[]},"hemisphereLights":{"value":[{"direction":{"x":-2.1510571102112403e-16,"y":-0.9994545812271671,"z":0.03302332605943759},"skyColor":553471,"groundColor":131596}]},"rectAreaLights":{"value":[{"color":17982564,"position":{"x":-1.9772027935142946,"y":-1.5270286735496543,"z":-2.8401137796516953},"halfWidth":{"x":-0.0855810146670085,"y":-0.031244602290939096,"z":-0.9456213114964395},"halfHeight":{"x":0.1833138893121967,"y":-0.46518225389321227,"z":-0.0012201016624419918}}]},"ltc_1":{"value":null},"ltc_2":{"value":null},"emissive":{"type":"c","value":0},"roughness":{"value":0.5},"metalness":{"value":1},"envMapIntensity":{"value":1}},"vertexShader":"\n#define STANDARD\n\nvarying vec3 vViewPosition;\n\n#ifndef FLAT_SHADED\n\n\tvarying vec3 vNormal;\n\n\t#ifdef USE_TANGENT\n\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\n\t#endif\n\n#endif\n\n#include <common>\n#include <uv_pars_vertex>\n#include <uv2_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <shadowmap_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\n\nvoid main() {\n\n\t#include <uv_vertex>\n\t#include <uv2_vertex>\n\t#include <color_vertex>\n\n\n\n\t// /text/MAT/meshStandardBuilder_BOX/output1\n\tvec3 transformed = position;\n\tvec3 objectNormal = normal;\n\t#ifdef USE_TANGENT\n\t\tvec3 objectTangent = vec3( tangent.xyz );\n\t#endif\n\n\n\n\n// removed:\n//\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\n#ifndef FLAT_SHADED // Normal computed with derivatives when FLAT_SHADED\n\n\tvNormal = normalize( transformedNormal );\n\n\t#ifdef USE_TANGENT\n\n\t\tvTangent = normalize( transformedTangent );\n\t\tvBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\n\n\t#endif\n\n#endif\n\n// removed:\n//\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\n\tvViewPosition = - mvPosition.xyz;\n\n\t#include <worldpos_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n\n}\n","fragmentShader":"\n#define STANDARD\n\n#ifdef PHYSICAL\n\t#define REFLECTIVITY\n\t#define CLEARCOAT\n\t#define TRANSMISSION\n#endif\n\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float roughness;\nuniform float metalness;\nuniform float opacity;\n\n#ifdef TRANSMISSION\n\tuniform float transmission;\n#endif\n\n#ifdef REFLECTIVITY\n\tuniform float reflectivity;\n#endif\n\n#ifdef CLEARCOAT\n\tuniform float clearcoat;\n\tuniform float clearcoatRoughness;\n#endif\n\n#ifdef USE_SHEEN\n\tuniform vec3 sheen;\n#endif\n\nvarying vec3 vViewPosition;\n\n#ifndef FLAT_SHADED\n\n\tvarying vec3 vNormal;\n\n\t#ifdef USE_TANGENT\n\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\n\t#endif\n\n#endif\n\n#include <common>\n#include <packing>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <uv2_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <emissivemap_pars_fragment>\n#include <transmissionmap_pars_fragment>\n#include <bsdfs>\n#include <cube_uv_reflection_fragment>\n#include <envmap_common_pars_fragment>\n#include <envmap_physical_pars_fragment>\n#include <fog_pars_fragment>\n#include <lights_pars_begin>\n#include <lights_physical_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <clearcoat_pars_fragment>\n#include <roughnessmap_pars_fragment>\n#include <metalnessmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\n\nstruct SSSModel {\n\tbool isActive;\n\tvec3 color;\n\tfloat thickness;\n\tfloat power;\n\tfloat scale;\n\tfloat distortion;\n\tfloat ambient;\n\tfloat attenuation;\n};\n\nvoid RE_Direct_Scattering(\n\tconst in IncidentLight directLight,\n\tconst in GeometricContext geometry,\n\tconst in SSSModel sssModel,\n\tinout ReflectedLight reflectedLight\n\t){\n\tvec3 scatteringHalf = normalize(directLight.direction + (geometry.normal * sssModel.distortion));\n\tfloat scatteringDot = pow(saturate(dot(geometry.viewDir, -scatteringHalf)), sssModel.power) * sssModel.scale;\n\tvec3 scatteringIllu = (scatteringDot + sssModel.ambient) * (sssModel.color * (1.0-sssModel.thickness));\n\treflectedLight.directDiffuse += scatteringIllu * sssModel.attenuation * directLight.color;\n}\n\nvoid main() {\n\n\t#include <clipping_planes_fragment>\n\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\n\n\n\t// /text/MAT/meshStandardBuilder_BOX/output1\n\tfloat POLY_metalness = 1.0;\n\tfloat POLY_roughness = 1.0;\n\tvec3 POLY_emissive = vec3(1.0, 1.0, 1.0);\n\tSSSModel POLY_SSSModel = SSSModel(/*isActive*/false,/*color*/vec3(1.0, 1.0, 1.0), /*thickness*/0.1, /*power*/2.0, /*scale*/16.0, /*distortion*/0.1,/*ambient*/0.4,/*attenuation*/0.8 );\n\n\n\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive * POLY_emissive;\n\n\t#ifdef TRANSMISSION\n\t\tfloat totalTransmission = transmission;\n\t#endif\n\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\tfloat roughnessFactor = roughness * POLY_roughness;\n\n#ifdef USE_ROUGHNESSMAP\n\n\tvec4 texelRoughness = texture2D( roughnessMap, vUv );\n\n\t// reads channel G, compatible with a combined OcclusionRoughnessMetallic (RGB) texture\n\troughnessFactor *= texelRoughness.g;\n\n#endif\n\n\tfloat metalnessFactor = metalness * POLY_metalness;\n\n#ifdef USE_METALNESSMAP\n\n\tvec4 texelMetalness = texture2D( metalnessMap, vUv );\n\n\t// reads channel B, compatible with a combined OcclusionRoughnessMetallic (RGB) texture\n\tmetalnessFactor *= texelMetalness.b;\n\n#endif\n\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\t#include <clearcoat_normal_fragment_begin>\n\t#include <clearcoat_normal_fragment_maps>\n\t#include <emissivemap_fragment>\n\t#include <transmissionmap_fragment>\n\n\t// accumulation\n\t#include <lights_physical_fragment>\n\t#include <lights_fragment_begin>\nif(POLY_SSSModel.isActive){\n\tRE_Direct_Scattering(directLight, geometry, POLY_SSSModel, reflectedLight);\n}\n\n\n\t#include <lights_fragment_maps>\n\t#include <lights_fragment_end>\n\n\t// modulation\n\t#include <aomap_fragment>\n\n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\n\n\t// this is a stub for the transmission model\n\t#ifdef TRANSMISSION\n\t\tdiffuseColor.a *= mix( saturate( 1. - totalTransmission + linearToRelativeLuminance( reflectedLight.directSpecular + reflectedLight.indirectSpecular ) ), 1.0, metalness );\n\t#endif\n\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n\n}\n","extensions":{"derivatives":true},"shadowSide":null,"lights":true},"uniforms_time_dependent":false,"uniforms_resolution_dependent":false,"param_uniform_pairs":[],"customMaterials":{"customDistanceMaterial":{"metadata":{"version":4.5,"type":"Material","generator":"Material.toJSON"},"uuid":"/text/MAT/meshStandardBuilder_BOX-customDistanceMaterial","type":"ShaderMaterial","name":"customDistanceMaterial","depthFunc":3,"depthTest":true,"depthWrite":true,"colorWrite":true,"stencilWrite":false,"stencilWriteMask":255,"stencilFunc":519,"stencilRef":0,"stencilFuncMask":255,"stencilFail":7680,"stencilZFail":7680,"stencilZPass":7680,"glslVersion":null,"uniforms":{"diffuse":{"type":"c","value":15658734},"opacity":{"value":1},"map":{"value":null},"uvTransform":{"type":"m3","value":[1,0,0,0,1,0,0,0,1]},"uv2Transform":{"type":"m3","value":[1,0,0,0,1,0,0,0,1]},"alphaMap":{"value":null},"displacementMap":{"value":null},"displacementScale":{"value":1},"displacementBias":{"value":0},"referencePosition":{"type":"v3","value":[0,0,0]},"nearDistance":{"value":1},"farDistance":{"value":1000}},"defines":{"DEPTH_PACKING":3201},"vertexShader":"\n#define DISTANCE\n\nvarying vec3 vWorldPosition;\n\n#include <common>\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <clipping_planes_pars_vertex>\n\nvoid main() {\n\n\t#include <uv_vertex>\n\n\t#include <skinbase_vertex>\n\n\t#ifdef USE_DISPLACEMENTMAP\n\n// removed:\n//\t\t#include <beginnormal_vertex>\n\t\t#include <morphnormal_vertex>\n\t\t#include <skinnormal_vertex>\n\n\t#endif\n\n// removed:\n//\t#include <begin_vertex>\n\n\n\n\t// /text/MAT/meshStandardBuilder_BOX/output1\n\tvec3 transformed = position;\n\tvec3 objectNormal = normal;\n\t#ifdef USE_TANGENT\n\t\tvec3 objectTangent = vec3( tangent.xyz );\n\t#endif\n\n\n\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <worldpos_vertex>\n\t#include <clipping_planes_vertex>\n\n\tvWorldPosition = worldPosition.xyz;\n\n}\n","fragmentShader":"\n#define DISTANCE\n\nuniform vec3 referencePosition;\nuniform float nearDistance;\nuniform float farDistance;\nvarying vec3 vWorldPosition;\n\n#include <common>\n#include <packing>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <clipping_planes_pars_fragment>\n\nstruct SSSModel {\n\tbool isActive;\n\tvec3 color;\n\tfloat thickness;\n\tfloat power;\n\tfloat scale;\n\tfloat distortion;\n\tfloat ambient;\n\tfloat attenuation;\n};\n\nvoid RE_Direct_Scattering(\n\tconst in IncidentLight directLight,\n\tconst in GeometricContext geometry,\n\tconst in SSSModel sssModel,\n\tinout ReflectedLight reflectedLight\n\t){\n\tvec3 scatteringHalf = normalize(directLight.direction + (geometry.normal * sssModel.distortion));\n\tfloat scatteringDot = pow(saturate(dot(geometry.viewDir, -scatteringHalf)), sssModel.power) * sssModel.scale;\n\tvec3 scatteringIllu = (scatteringDot + sssModel.ambient) * (sssModel.color * (1.0-sssModel.thickness));\n\treflectedLight.directDiffuse += scatteringIllu * sssModel.attenuation * directLight.color;\n}\n\nvoid main() {\n\n\t#include <clipping_planes_fragment>\n\n\tvec4 diffuseColor = vec4( 1.0 );\n\n\n\n\t// /text/MAT/meshStandardBuilder_BOX/output1\n\tfloat POLY_metalness = 1.0;\n\tfloat POLY_roughness = 1.0;\n\tvec3 POLY_emissive = vec3(1.0, 1.0, 1.0);\n\tSSSModel POLY_SSSModel = SSSModel(/*isActive*/false,/*color*/vec3(1.0, 1.0, 1.0), /*thickness*/0.1, /*power*/2.0, /*scale*/16.0, /*distortion*/0.1,/*ambient*/0.4,/*attenuation*/0.8 );\n\n\n\n\n\t#include <map_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\n\tfloat dist = length( vWorldPosition - referencePosition );\n\tdist = ( dist - nearDistance ) / ( farDistance - nearDistance );\n\tdist = saturate( dist ); // clamp to [ 0, 1 ]\n\n\tgl_FragColor = packDepthToRGBA( dist );\n\n}\n","shadowSide":null,"lights":false},"customDepthMaterial":{"metadata":{"version":4.5,"type":"Material","generator":"Material.toJSON"},"uuid":"/text/MAT/meshStandardBuilder_BOX-customDepthMaterial","type":"ShaderMaterial","name":"customDepthMaterial","depthFunc":3,"depthTest":true,"depthWrite":true,"colorWrite":true,"stencilWrite":false,"stencilWriteMask":255,"stencilFunc":519,"stencilRef":0,"stencilFuncMask":255,"stencilFail":7680,"stencilZFail":7680,"stencilZPass":7680,"glslVersion":null,"uniforms":{"diffuse":{"type":"c","value":15658734},"opacity":{"value":1},"map":{"value":null},"uvTransform":{"type":"m3","value":[1,0,0,0,1,0,0,0,1]},"uv2Transform":{"type":"m3","value":[1,0,0,0,1,0,0,0,1]},"alphaMap":{"value":null},"displacementMap":{"value":null},"displacementScale":{"value":1},"displacementBias":{"value":0}},"defines":{"DEPTH_PACKING":3201},"vertexShader":"\n#include <common>\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\n\n// This is used for computing an equivalent of gl_FragCoord.z that is as high precision as possible.\n// Some platforms compute gl_FragCoord at a lower precision which makes the manually computed value better for\n// depth-based postprocessing effects. Reproduced on iPad with A10 processor / iPadOS 13.3.1.\nvarying vec2 vHighPrecisionZW;\n\nvoid main() {\n\n\t#include <uv_vertex>\n\n\t#include <skinbase_vertex>\n\n\t#ifdef USE_DISPLACEMENTMAP\n\n// removed:\n//\t\t#include <beginnormal_vertex>\n\t\t#include <morphnormal_vertex>\n\t\t#include <skinnormal_vertex>\n\n\t#endif\n\n// removed:\n//\t#include <begin_vertex>\n\n\n\n\t// /text/MAT/meshStandardBuilder_BOX/output1\n\tvec3 transformed = position;\n\tvec3 objectNormal = normal;\n\t#ifdef USE_TANGENT\n\t\tvec3 objectTangent = vec3( tangent.xyz );\n\t#endif\n\n\n\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\n\tvHighPrecisionZW = gl_Position.zw;\n\n}\n","fragmentShader":"\n#if DEPTH_PACKING == 3200\n\n\tuniform float opacity;\n\n#endif\n\n#include <common>\n#include <packing>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\n\nvarying vec2 vHighPrecisionZW;\n\nstruct SSSModel {\n\tbool isActive;\n\tvec3 color;\n\tfloat thickness;\n\tfloat power;\n\tfloat scale;\n\tfloat distortion;\n\tfloat ambient;\n\tfloat attenuation;\n};\n\nvoid RE_Direct_Scattering(\n\tconst in IncidentLight directLight,\n\tconst in GeometricContext geometry,\n\tconst in SSSModel sssModel,\n\tinout ReflectedLight reflectedLight\n\t){\n\tvec3 scatteringHalf = normalize(directLight.direction + (geometry.normal * sssModel.distortion));\n\tfloat scatteringDot = pow(saturate(dot(geometry.viewDir, -scatteringHalf)), sssModel.power) * sssModel.scale;\n\tvec3 scatteringIllu = (scatteringDot + sssModel.ambient) * (sssModel.color * (1.0-sssModel.thickness));\n\treflectedLight.directDiffuse += scatteringIllu * sssModel.attenuation * directLight.color;\n}\n\nvoid main() {\n\n\t#include <clipping_planes_fragment>\n\n\tvec4 diffuseColor = vec4( 1.0 );\n\n\n\n\t// /text/MAT/meshStandardBuilder_BOX/output1\n\tfloat POLY_metalness = 1.0;\n\tfloat POLY_roughness = 1.0;\n\tvec3 POLY_emissive = vec3(1.0, 1.0, 1.0);\n\tSSSModel POLY_SSSModel = SSSModel(/*isActive*/false,/*color*/vec3(1.0, 1.0, 1.0), /*thickness*/0.1, /*power*/2.0, /*scale*/16.0, /*distortion*/0.1,/*ambient*/0.4,/*attenuation*/0.8 );\n\n\n\n\n\t#if DEPTH_PACKING == 3200\n\n\t\tdiffuseColor.a = opacity;\n\n\t#endif\n\n\t#include <map_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\n\t#include <logdepthbuf_fragment>\n\n\t// Higher precision equivalent of gl_FragCoord.z. This assumes depthRange has been left to its default values.\n\tfloat fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;\n\n\t#if DEPTH_PACKING == 3200\n\n\t\tgl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );\n\n\t#elif DEPTH_PACKING == 3201\n\n\t\tgl_FragColor = packDepthToRGBA( fragCoordZ );\n\n\t#endif\n\n}\n","shadowSide":null,"lights":false},"customDepthDOFMaterial":{"metadata":{"version":4.5,"type":"Material","generator":"Material.toJSON"},"uuid":"/text/MAT/meshStandardBuilder_BOX-customDepthDOFMaterial","type":"ShaderMaterial","name":"customDepthDOFMaterial","depthFunc":3,"depthTest":true,"depthWrite":true,"colorWrite":true,"stencilWrite":false,"stencilWriteMask":255,"stencilFunc":519,"stencilRef":0,"stencilFuncMask":255,"stencilFail":7680,"stencilZFail":7680,"stencilZPass":7680,"glslVersion":null,"uniforms":{"mNear":{"value":0},"mFar":{"value":10}},"vertexShader":"#include <common>\n\nvarying float vViewZDepth;\n\n// INSERT DEFINES\n\n\n\nvoid main() {\n\n\t// INSERT BODY\n\n\n\n\t// /text/MAT/meshStandardBuilder_BOX/output1\n\tvec3 transformed = position;\n\tvec3 objectNormal = normal;\n\t#ifdef USE_TANGENT\n\t\tvec3 objectTangent = vec3( tangent.xyz );\n\t#endif\n\n\n\n\n\n\t#include <project_vertex>\n\n\tvViewZDepth = - mvPosition.z;\n}","fragmentShader":"uniform float mNear;\nuniform float mFar;\n\nvarying float vViewZDepth;\n\nstruct SSSModel {\n\tbool isActive;\n\tvec3 color;\n\tfloat thickness;\n\tfloat power;\n\tfloat scale;\n\tfloat distortion;\n\tfloat ambient;\n\tfloat attenuation;\n};\n\nvoid RE_Direct_Scattering(\n\tconst in IncidentLight directLight,\n\tconst in GeometricContext geometry,\n\tconst in SSSModel sssModel,\n\tinout ReflectedLight reflectedLight\n\t){\n\tvec3 scatteringHalf = normalize(directLight.direction + (geometry.normal * sssModel.distortion));\n\tfloat scatteringDot = pow(saturate(dot(geometry.viewDir, -scatteringHalf)), sssModel.power) * sssModel.scale;\n\tvec3 scatteringIllu = (scatteringDot + sssModel.ambient) * (sssModel.color * (1.0-sssModel.thickness));\n\treflectedLight.directDiffuse += scatteringIllu * sssModel.attenuation * directLight.color;\n}\n\nvoid main() {\n\n\tfloat color = 1.0 - smoothstep( mNear, mFar, vViewZDepth );\n\tgl_FragColor = vec4( vec3( color ), 1.0 );\n\n}\n","shadowSide":null,"lights":false}}}},"meshStandardBuilder_RED":{"type":"meshStandardBuilder","nodes":{"globals1":{"type":"globals"},"output1":{"type":"output"}},"params":{"emissiveIntensity":0.43,"useEnvMap":1,"envMap":"../../../COP/envMap","roughness":0.09},"persisted_config":{"material":{"metadata":{"version":4.5,"type":"Material","generator":"Material.toJSON"},"uuid":"/text/MAT/meshStandardBuilder_RED-main","type":"ShaderMaterial","name":"/text/MAT/meshStandardBuilder_RED","color":16777215,"depthFunc":3,"depthTest":true,"depthWrite":true,"colorWrite":true,"stencilWrite":false,"stencilWriteMask":255,"stencilFunc":519,"stencilRef":0,"stencilFuncMask":255,"stencilFail":7680,"stencilZFail":7680,"stencilZPass":7680,"glslVersion":null,"uniforms":{"diffuse":{"type":"c","value":15658734},"opacity":{"value":1},"map":{"value":null},"uvTransform":{"type":"m3","value":[1,0,0,0,1,0,0,0,1]},"uv2Transform":{"type":"m3","value":[1,0,0,0,1,0,0,0,1]},"alphaMap":{"value":null},"envMap":{"value":null},"flipEnvMap":{"value":-1},"reflectivity":{"value":1},"refractionRatio":{"value":0.98},"maxMipLevel":{"value":0},"aoMap":{"value":null},"aoMapIntensity":{"value":1},"lightMap":{"value":null},"lightMapIntensity":{"value":1},"emissiveMap":{"value":null},"bumpMap":{"value":null},"bumpScale":{"value":1},"normalMap":{"value":null},"normalScale":{"type":"v2","value":[1,1]},"displacementMap":{"value":null},"displacementScale":{"value":1},"displacementBias":{"value":0},"roughnessMap":{"value":null},"metalnessMap":{"value":null},"fogDensity":{"value":0.00025},"fogNear":{"value":1},"fogFar":{"value":2000},"fogColor":{"type":"c","value":16777215},"ambientLightColor":{"value":[0,0,0]},"lightProbe":{"value":[{"x":0,"y":0,"z":0},{"x":0,"y":0,"z":0},{"x":0,"y":0,"z":0},{"x":0,"y":0,"z":0},{"x":0,"y":0,"z":0},{"x":0,"y":0,"z":0},{"x":0,"y":0,"z":0},{"x":0,"y":0,"z":0},{"x":0,"y":0,"z":0}]},"directionalLights":{"value":[]},"directionalLightShadows":{"value":[]},"directionalShadowMap":{"value":[]},"directionalShadowMatrix":{"value":[]},"spotLights":{"value":[{"position":{"x":1.4290885201834054,"y":-2.592164491452121,"z":-1.9783367768998996},"direction":{"x":0.6355215542554208,"y":-0.6226892565651174,"z":0.45647611529537435},"color":8697549,"distance":7.6,"coneCos":0.7071067811865476,"penumbraCos":0.7604059656000309,"decay":0.1}]},"spotLightShadows":{"value":[]},"spotShadowMap":{"value":[]},"spotShadowMatrix":{"value":[]},"pointLights":{"value":[]},"pointLightShadows":{"value":[]},"pointShadowMap":{"value":[]},"pointShadowMatrix":{"value":[]},"hemisphereLights":{"value":[{"direction":{"x":-2.1510571102112403e-16,"y":-0.9994545812271671,"z":0.03302332605943759},"skyColor":553471,"groundColor":131596}]},"rectAreaLights":{"value":[{"color":17982564,"position":{"x":-1.9772027935142946,"y":-1.5270286735496543,"z":-2.8401137796516953},"halfWidth":{"x":-0.0855810146670085,"y":-0.031244602290939096,"z":-0.9456213114964395},"halfHeight":{"x":0.1833138893121967,"y":-0.46518225389321227,"z":-0.0012201016624419918}}]},"ltc_1":{"value":null},"ltc_2":{"value":null},"emissive":{"type":"c","value":0},"roughness":{"value":0.09},"metalness":{"value":1},"envMapIntensity":{"value":1}},"vertexShader":"\n#define STANDARD\n\nvarying vec3 vViewPosition;\n\n#ifndef FLAT_SHADED\n\n\tvarying vec3 vNormal;\n\n\t#ifdef USE_TANGENT\n\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\n\t#endif\n\n#endif\n\n#include <common>\n#include <uv_pars_vertex>\n#include <uv2_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <shadowmap_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\n\nvoid main() {\n\n\t#include <uv_vertex>\n\t#include <uv2_vertex>\n\t#include <color_vertex>\n\n\n\n\t// /text/MAT/meshStandardBuilder_RED/output1\n\tvec3 transformed = position;\n\tvec3 objectNormal = normal;\n\t#ifdef USE_TANGENT\n\t\tvec3 objectTangent = vec3( tangent.xyz );\n\t#endif\n\n\n\n\n// removed:\n//\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\n#ifndef FLAT_SHADED // Normal computed with derivatives when FLAT_SHADED\n\n\tvNormal = normalize( transformedNormal );\n\n\t#ifdef USE_TANGENT\n\n\t\tvTangent = normalize( transformedTangent );\n\t\tvBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\n\n\t#endif\n\n#endif\n\n// removed:\n//\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\n\tvViewPosition = - mvPosition.xyz;\n\n\t#include <worldpos_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n\n}\n","fragmentShader":"\n#define STANDARD\n\n#ifdef PHYSICAL\n\t#define REFLECTIVITY\n\t#define CLEARCOAT\n\t#define TRANSMISSION\n#endif\n\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float roughness;\nuniform float metalness;\nuniform float opacity;\n\n#ifdef TRANSMISSION\n\tuniform float transmission;\n#endif\n\n#ifdef REFLECTIVITY\n\tuniform float reflectivity;\n#endif\n\n#ifdef CLEARCOAT\n\tuniform float clearcoat;\n\tuniform float clearcoatRoughness;\n#endif\n\n#ifdef USE_SHEEN\n\tuniform vec3 sheen;\n#endif\n\nvarying vec3 vViewPosition;\n\n#ifndef FLAT_SHADED\n\n\tvarying vec3 vNormal;\n\n\t#ifdef USE_TANGENT\n\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\n\t#endif\n\n#endif\n\n#include <common>\n#include <packing>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <uv2_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <emissivemap_pars_fragment>\n#include <transmissionmap_pars_fragment>\n#include <bsdfs>\n#include <cube_uv_reflection_fragment>\n#include <envmap_common_pars_fragment>\n#include <envmap_physical_pars_fragment>\n#include <fog_pars_fragment>\n#include <lights_pars_begin>\n#include <lights_physical_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <clearcoat_pars_fragment>\n#include <roughnessmap_pars_fragment>\n#include <metalnessmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\n\nstruct SSSModel {\n\tbool isActive;\n\tvec3 color;\n\tfloat thickness;\n\tfloat power;\n\tfloat scale;\n\tfloat distortion;\n\tfloat ambient;\n\tfloat attenuation;\n};\n\nvoid RE_Direct_Scattering(\n\tconst in IncidentLight directLight,\n\tconst in GeometricContext geometry,\n\tconst in SSSModel sssModel,\n\tinout ReflectedLight reflectedLight\n\t){\n\tvec3 scatteringHalf = normalize(directLight.direction + (geometry.normal * sssModel.distortion));\n\tfloat scatteringDot = pow(saturate(dot(geometry.viewDir, -scatteringHalf)), sssModel.power) * sssModel.scale;\n\tvec3 scatteringIllu = (scatteringDot + sssModel.ambient) * (sssModel.color * (1.0-sssModel.thickness));\n\treflectedLight.directDiffuse += scatteringIllu * sssModel.attenuation * directLight.color;\n}\n\nvoid main() {\n\n\t#include <clipping_planes_fragment>\n\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\n\n\n\t// /text/MAT/meshStandardBuilder_RED/output1\n\tfloat POLY_metalness = 1.0;\n\tfloat POLY_roughness = 1.0;\n\tvec3 POLY_emissive = vec3(1.0, 1.0, 1.0);\n\tSSSModel POLY_SSSModel = SSSModel(/*isActive*/false,/*color*/vec3(1.0, 1.0, 1.0), /*thickness*/0.1, /*power*/2.0, /*scale*/16.0, /*distortion*/0.1,/*ambient*/0.4,/*attenuation*/0.8 );\n\n\n\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive * POLY_emissive;\n\n\t#ifdef TRANSMISSION\n\t\tfloat totalTransmission = transmission;\n\t#endif\n\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\tfloat roughnessFactor = roughness * POLY_roughness;\n\n#ifdef USE_ROUGHNESSMAP\n\n\tvec4 texelRoughness = texture2D( roughnessMap, vUv );\n\n\t// reads channel G, compatible with a combined OcclusionRoughnessMetallic (RGB) texture\n\troughnessFactor *= texelRoughness.g;\n\n#endif\n\n\tfloat metalnessFactor = metalness * POLY_metalness;\n\n#ifdef USE_METALNESSMAP\n\n\tvec4 texelMetalness = texture2D( metalnessMap, vUv );\n\n\t// reads channel B, compatible with a combined OcclusionRoughnessMetallic (RGB) texture\n\tmetalnessFactor *= texelMetalness.b;\n\n#endif\n\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\t#include <clearcoat_normal_fragment_begin>\n\t#include <clearcoat_normal_fragment_maps>\n\t#include <emissivemap_fragment>\n\t#include <transmissionmap_fragment>\n\n\t// accumulation\n\t#include <lights_physical_fragment>\n\t#include <lights_fragment_begin>\nif(POLY_SSSModel.isActive){\n\tRE_Direct_Scattering(directLight, geometry, POLY_SSSModel, reflectedLight);\n}\n\n\n\t#include <lights_fragment_maps>\n\t#include <lights_fragment_end>\n\n\t// modulation\n\t#include <aomap_fragment>\n\n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\n\n\t// this is a stub for the transmission model\n\t#ifdef TRANSMISSION\n\t\tdiffuseColor.a *= mix( saturate( 1. - totalTransmission + linearToRelativeLuminance( reflectedLight.directSpecular + reflectedLight.indirectSpecular ) ), 1.0, metalness );\n\t#endif\n\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n\n}\n","extensions":{"derivatives":true},"shadowSide":null,"lights":true},"uniforms_time_dependent":false,"uniforms_resolution_dependent":false,"param_uniform_pairs":[],"customMaterials":{"customDistanceMaterial":{"metadata":{"version":4.5,"type":"Material","generator":"Material.toJSON"},"uuid":"/text/MAT/meshStandardBuilder_RED-customDistanceMaterial","type":"ShaderMaterial","name":"customDistanceMaterial","depthFunc":3,"depthTest":true,"depthWrite":true,"colorWrite":true,"stencilWrite":false,"stencilWriteMask":255,"stencilFunc":519,"stencilRef":0,"stencilFuncMask":255,"stencilFail":7680,"stencilZFail":7680,"stencilZPass":7680,"glslVersion":null,"uniforms":{"diffuse":{"type":"c","value":15658734},"opacity":{"value":1},"map":{"value":null},"uvTransform":{"type":"m3","value":[1,0,0,0,1,0,0,0,1]},"uv2Transform":{"type":"m3","value":[1,0,0,0,1,0,0,0,1]},"alphaMap":{"value":null},"displacementMap":{"value":null},"displacementScale":{"value":1},"displacementBias":{"value":0},"referencePosition":{"type":"v3","value":[0,0,0]},"nearDistance":{"value":1},"farDistance":{"value":1000}},"defines":{"DEPTH_PACKING":3201},"vertexShader":"\n#define DISTANCE\n\nvarying vec3 vWorldPosition;\n\n#include <common>\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <clipping_planes_pars_vertex>\n\nvoid main() {\n\n\t#include <uv_vertex>\n\n\t#include <skinbase_vertex>\n\n\t#ifdef USE_DISPLACEMENTMAP\n\n// removed:\n//\t\t#include <beginnormal_vertex>\n\t\t#include <morphnormal_vertex>\n\t\t#include <skinnormal_vertex>\n\n\t#endif\n\n// removed:\n//\t#include <begin_vertex>\n\n\n\n\t// /text/MAT/meshStandardBuilder_RED/output1\n\tvec3 transformed = position;\n\tvec3 objectNormal = normal;\n\t#ifdef USE_TANGENT\n\t\tvec3 objectTangent = vec3( tangent.xyz );\n\t#endif\n\n\n\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <worldpos_vertex>\n\t#include <clipping_planes_vertex>\n\n\tvWorldPosition = worldPosition.xyz;\n\n}\n","fragmentShader":"\n#define DISTANCE\n\nuniform vec3 referencePosition;\nuniform float nearDistance;\nuniform float farDistance;\nvarying vec3 vWorldPosition;\n\n#include <common>\n#include <packing>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <clipping_planes_pars_fragment>\n\nstruct SSSModel {\n\tbool isActive;\n\tvec3 color;\n\tfloat thickness;\n\tfloat power;\n\tfloat scale;\n\tfloat distortion;\n\tfloat ambient;\n\tfloat attenuation;\n};\n\nvoid RE_Direct_Scattering(\n\tconst in IncidentLight directLight,\n\tconst in GeometricContext geometry,\n\tconst in SSSModel sssModel,\n\tinout ReflectedLight reflectedLight\n\t){\n\tvec3 scatteringHalf = normalize(directLight.direction + (geometry.normal * sssModel.distortion));\n\tfloat scatteringDot = pow(saturate(dot(geometry.viewDir, -scatteringHalf)), sssModel.power) * sssModel.scale;\n\tvec3 scatteringIllu = (scatteringDot + sssModel.ambient) * (sssModel.color * (1.0-sssModel.thickness));\n\treflectedLight.directDiffuse += scatteringIllu * sssModel.attenuation * directLight.color;\n}\n\nvoid main() {\n\n\t#include <clipping_planes_fragment>\n\n\tvec4 diffuseColor = vec4( 1.0 );\n\n\n\n\t// /text/MAT/meshStandardBuilder_RED/output1\n\tfloat POLY_metalness = 1.0;\n\tfloat POLY_roughness = 1.0;\n\tvec3 POLY_emissive = vec3(1.0, 1.0, 1.0);\n\tSSSModel POLY_SSSModel = SSSModel(/*isActive*/false,/*color*/vec3(1.0, 1.0, 1.0), /*thickness*/0.1, /*power*/2.0, /*scale*/16.0, /*distortion*/0.1,/*ambient*/0.4,/*attenuation*/0.8 );\n\n\n\n\n\t#include <map_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\n\tfloat dist = length( vWorldPosition - referencePosition );\n\tdist = ( dist - nearDistance ) / ( farDistance - nearDistance );\n\tdist = saturate( dist ); // clamp to [ 0, 1 ]\n\n\tgl_FragColor = packDepthToRGBA( dist );\n\n}\n","shadowSide":null,"lights":false},"customDepthMaterial":{"metadata":{"version":4.5,"type":"Material","generator":"Material.toJSON"},"uuid":"/text/MAT/meshStandardBuilder_RED-customDepthMaterial","type":"ShaderMaterial","name":"customDepthMaterial","depthFunc":3,"depthTest":true,"depthWrite":true,"colorWrite":true,"stencilWrite":false,"stencilWriteMask":255,"stencilFunc":519,"stencilRef":0,"stencilFuncMask":255,"stencilFail":7680,"stencilZFail":7680,"stencilZPass":7680,"glslVersion":null,"uniforms":{"diffuse":{"type":"c","value":15658734},"opacity":{"value":1},"map":{"value":null},"uvTransform":{"type":"m3","value":[1,0,0,0,1,0,0,0,1]},"uv2Transform":{"type":"m3","value":[1,0,0,0,1,0,0,0,1]},"alphaMap":{"value":null},"displacementMap":{"value":null},"displacementScale":{"value":1},"displacementBias":{"value":0}},"defines":{"DEPTH_PACKING":3201},"vertexShader":"\n#include <common>\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\n\n// This is used for computing an equivalent of gl_FragCoord.z that is as high precision as possible.\n// Some platforms compute gl_FragCoord at a lower precision which makes the manually computed value better for\n// depth-based postprocessing effects. Reproduced on iPad with A10 processor / iPadOS 13.3.1.\nvarying vec2 vHighPrecisionZW;\n\nvoid main() {\n\n\t#include <uv_vertex>\n\n\t#include <skinbase_vertex>\n\n\t#ifdef USE_DISPLACEMENTMAP\n\n// removed:\n//\t\t#include <beginnormal_vertex>\n\t\t#include <morphnormal_vertex>\n\t\t#include <skinnormal_vertex>\n\n\t#endif\n\n// removed:\n//\t#include <begin_vertex>\n\n\n\n\t// /text/MAT/meshStandardBuilder_RED/output1\n\tvec3 transformed = position;\n\tvec3 objectNormal = normal;\n\t#ifdef USE_TANGENT\n\t\tvec3 objectTangent = vec3( tangent.xyz );\n\t#endif\n\n\n\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\n\tvHighPrecisionZW = gl_Position.zw;\n\n}\n","fragmentShader":"\n#if DEPTH_PACKING == 3200\n\n\tuniform float opacity;\n\n#endif\n\n#include <common>\n#include <packing>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\n\nvarying vec2 vHighPrecisionZW;\n\nstruct SSSModel {\n\tbool isActive;\n\tvec3 color;\n\tfloat thickness;\n\tfloat power;\n\tfloat scale;\n\tfloat distortion;\n\tfloat ambient;\n\tfloat attenuation;\n};\n\nvoid RE_Direct_Scattering(\n\tconst in IncidentLight directLight,\n\tconst in GeometricContext geometry,\n\tconst in SSSModel sssModel,\n\tinout ReflectedLight reflectedLight\n\t){\n\tvec3 scatteringHalf = normalize(directLight.direction + (geometry.normal * sssModel.distortion));\n\tfloat scatteringDot = pow(saturate(dot(geometry.viewDir, -scatteringHalf)), sssModel.power) * sssModel.scale;\n\tvec3 scatteringIllu = (scatteringDot + sssModel.ambient) * (sssModel.color * (1.0-sssModel.thickness));\n\treflectedLight.directDiffuse += scatteringIllu * sssModel.attenuation * directLight.color;\n}\n\nvoid main() {\n\n\t#include <clipping_planes_fragment>\n\n\tvec4 diffuseColor = vec4( 1.0 );\n\n\n\n\t// /text/MAT/meshStandardBuilder_RED/output1\n\tfloat POLY_metalness = 1.0;\n\tfloat POLY_roughness = 1.0;\n\tvec3 POLY_emissive = vec3(1.0, 1.0, 1.0);\n\tSSSModel POLY_SSSModel = SSSModel(/*isActive*/false,/*color*/vec3(1.0, 1.0, 1.0), /*thickness*/0.1, /*power*/2.0, /*scale*/16.0, /*distortion*/0.1,/*ambient*/0.4,/*attenuation*/0.8 );\n\n\n\n\n\t#if DEPTH_PACKING == 3200\n\n\t\tdiffuseColor.a = opacity;\n\n\t#endif\n\n\t#include <map_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\n\t#include <logdepthbuf_fragment>\n\n\t// Higher precision equivalent of gl_FragCoord.z. This assumes depthRange has been left to its default values.\n\tfloat fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;\n\n\t#if DEPTH_PACKING == 3200\n\n\t\tgl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );\n\n\t#elif DEPTH_PACKING == 3201\n\n\t\tgl_FragColor = packDepthToRGBA( fragCoordZ );\n\n\t#endif\n\n}\n","shadowSide":null,"lights":false},"customDepthDOFMaterial":{"metadata":{"version":4.5,"type":"Material","generator":"Material.toJSON"},"uuid":"/text/MAT/meshStandardBuilder_RED-customDepthDOFMaterial","type":"ShaderMaterial","name":"customDepthDOFMaterial","depthFunc":3,"depthTest":true,"depthWrite":true,"colorWrite":true,"stencilWrite":false,"stencilWriteMask":255,"stencilFunc":519,"stencilRef":0,"stencilFuncMask":255,"stencilFail":7680,"stencilZFail":7680,"stencilZPass":7680,"glslVersion":null,"uniforms":{"mNear":{"value":0},"mFar":{"value":10}},"vertexShader":"#include <common>\n\nvarying float vViewZDepth;\n\n// INSERT DEFINES\n\n\n\nvoid main() {\n\n\t// INSERT BODY\n\n\n\n\t// /text/MAT/meshStandardBuilder_RED/output1\n\tvec3 transformed = position;\n\tvec3 objectNormal = normal;\n\t#ifdef USE_TANGENT\n\t\tvec3 objectTangent = vec3( tangent.xyz );\n\t#endif\n\n\n\n\n\n\t#include <project_vertex>\n\n\tvViewZDepth = - mvPosition.z;\n}","fragmentShader":"uniform float mNear;\nuniform float mFar;\n\nvarying float vViewZDepth;\n\nstruct SSSModel {\n\tbool isActive;\n\tvec3 color;\n\tfloat thickness;\n\tfloat power;\n\tfloat scale;\n\tfloat distortion;\n\tfloat ambient;\n\tfloat attenuation;\n};\n\nvoid RE_Direct_Scattering(\n\tconst in IncidentLight directLight,\n\tconst in GeometricContext geometry,\n\tconst in SSSModel sssModel,\n\tinout ReflectedLight reflectedLight\n\t){\n\tvec3 scatteringHalf = normalize(directLight.direction + (geometry.normal * sssModel.distortion));\n\tfloat scatteringDot = pow(saturate(dot(geometry.viewDir, -scatteringHalf)), sssModel.power) * sssModel.scale;\n\tvec3 scatteringIllu = (scatteringDot + sssModel.ambient) * (sssModel.color * (1.0-sssModel.thickness));\n\treflectedLight.directDiffuse += scatteringIllu * sssModel.attenuation * directLight.color;\n}\n\nvoid main() {\n\n\tfloat color = 1.0 - smoothstep( mNear, mFar, vViewZDepth );\n\tgl_FragColor = vec4( vec3( color ), 1.0 );\n\n}\n","shadowSide":null,"lights":false}}}}},"selection":["meshStandardBuilder_RED"]},"material1":{"type":"material","params":{"material":"../MAT/meshStandardBuilder_BOX"},"inputs":["box1"]},"merge1":{"type":"merge","params":{"inputsCount":11},"maxInputsCount":11,"inputs":["transform_ANIM_A_2","transform_ANIM_B_2","transform_ANIM_C_2","transform_ANIM_D_2","transform_ANIM_E_2","transform_ANIM_F_2","transform_ANIM_G_2","transform_ANIM_H_2","transform_ANIM_I_2","transform_ANIM_J_2","transform_ANIM_K_2"],"cloned_state_overriden":true},"material2":{"type":"material","params":{"material":"../MAT/meshStandardBuilder_RED"},"inputs":["transform_top_center"]},"merge2":{"type":"merge","inputs":["merge1","boolean14"],"flags":{"display":true},"cloned_state_overriden":true},"ANIM":{"type":"animationsNetwork","nodes":{"target1":{"type":"target","params":{"type":1,"nodePath":"../../transform_ANIM_A_1"},"inputs":["propertyName1"]},"propertyName1":{"type":"propertyName","params":{"name":"t"},"inputs":["easing1"]},"propertyValue1":{"type":"propertyValue","inputs":["target1"]},"PLAY":{"type":"null","inputs":["merge6"]},"propertyValue2":{"type":"propertyValue","params":{"value3":[-0.7000000000000001,0,0]},"inputs":["target1"]},"RESET":{"type":"null","inputs":["merge5"]},"easing1":{"type":"easing","params":{"name":3,"inOut":2},"inputs":["duration1"]},"duration1":{"type":"duration"},"target2":{"type":"target","params":{"type":1,"nodePath":"../../transform_ANIM_A_2"},"inputs":["propertyName1"]},"propertyValue3":{"type":"propertyValue","params":{"value3":[0,0,-0.8]},"inputs":["target2"]},"propertyValue4":{"type":"propertyValue","inputs":["target2"]},"merge1":{"type":"merge","inputs":["propertyValue2","propertyValue4"]},"merge2":{"type":"merge","params":{"mode":1},"inputs":["propertyValue1","propertyValue3"]},"target3":{"type":"target","params":{"type":1,"nodePath":"../../transform_ANIM_B_1"},"inputs":["propertyName1"]},"propertyValue5":{"type":"propertyValue","inputs":["target3"]},"propertyValue6":{"type":"propertyValue","params":{"value3":[-0.8,0,0]},"inputs":["target3"]},"target4":{"type":"target","params":{"type":1,"nodePath":"../../transform_ANIM_B_2"},"inputs":["propertyName1"]},"propertyValue7":{"type":"propertyValue","params":{"value3":[0,0,1]},"inputs":["target4"]},"propertyValue8":{"type":"propertyValue","inputs":["target4"]},"merge3":{"type":"merge","inputs":["propertyValue6","propertyValue8"]},"merge4":{"type":"merge","params":{"mode":1},"inputs":["propertyValue5","propertyValue7"]},"merge5":{"type":"merge","params":{"inputsCount":11},"maxInputsCount":11,"inputs":["merge1","merge3","merge7","merge9","merge11","merge13","merge15","merge17","merge19","merge21","merge23"]},"merge6":{"type":"merge","params":{"mode":1,"inputsCount":11},"maxInputsCount":11,"inputs":["merge2","merge4","merge8","merge10","merge12","merge14","merge16","merge18","merge20","merge22","merge24"]},"target5":{"type":"target","params":{"type":1,"nodePath":"../../transform_ANIM_C_1"},"inputs":["propertyName1"]},"propertyValue9":{"type":"propertyValue","inputs":["target5"]},"propertyValue10":{"type":"propertyValue","params":{"value3":[0.8,0,0]},"inputs":["target5"]},"target6":{"type":"target","params":{"type":1,"nodePath":"../../transform_ANIM_C_2"},"inputs":["propertyName1"]},"propertyValue11":{"type":"propertyValue","params":{"value3":[0,0,-1.4]},"inputs":["target6"]},"propertyValue12":{"type":"propertyValue","inputs":["target6"]},"merge7":{"type":"merge","inputs":["propertyValue10","propertyValue12"]},"merge8":{"type":"merge","params":{"mode":1},"inputs":["propertyValue9","propertyValue11"]},"target7":{"type":"target","params":{"type":1,"nodePath":"../../transform_ANIM_D_1"},"inputs":["propertyName1"]},"propertyValue13":{"type":"propertyValue","inputs":["target7"]},"propertyValue14":{"type":"propertyValue","params":{"value3":[1.2,0,0]},"inputs":["target7"]},"target8":{"type":"target","params":{"type":1,"nodePath":"../../transform_ANIM_D_2"},"inputs":["propertyName1"]},"propertyValue15":{"type":"propertyValue","params":{"value3":[0,0,-1.8]},"inputs":["target8"]},"propertyValue16":{"type":"propertyValue","inputs":["target8"]},"merge9":{"type":"merge","inputs":["propertyValue14","propertyValue16"]},"merge10":{"type":"merge","params":{"mode":1},"inputs":["propertyValue13","propertyValue15"]},"target9":{"type":"target","params":{"type":1,"nodePath":"../../transform_ANIM_E_1"},"inputs":["propertyName1"]},"propertyValue17":{"type":"propertyValue","inputs":["target9"]},"propertyValue18":{"type":"propertyValue","params":{"value3":[0,0.7999999999999999,0]},"inputs":["target9"]},"target10":{"type":"target","params":{"type":1,"nodePath":"../../transform_ANIM_E_2"},"inputs":["propertyName1"]},"propertyValue19":{"type":"propertyValue","params":{"value3":[0,0,1]},"inputs":["target10"]},"propertyValue20":{"type":"propertyValue","inputs":["target10"]},"merge11":{"type":"merge","inputs":["propertyValue18","propertyValue20"]},"merge12":{"type":"merge","params":{"mode":1},"inputs":["propertyValue17","propertyValue19"]},"target11":{"type":"target","params":{"type":1,"nodePath":"../../transform_ANIM_F_1"},"inputs":["propertyName1"]},"propertyValue21":{"type":"propertyValue","inputs":["target11"]},"propertyValue22":{"type":"propertyValue","params":{"value3":[0,-0.9,0]},"inputs":["target11"]},"target12":{"type":"target","params":{"type":1,"nodePath":"../../transform_ANIM_F_2"},"inputs":["propertyName1"]},"propertyValue23":{"type":"propertyValue","params":{"value3":[0,0,1]},"inputs":["target12"]},"propertyValue24":{"type":"propertyValue","inputs":["target12"]},"merge13":{"type":"merge","inputs":["propertyValue22","propertyValue24"]},"merge14":{"type":"merge","params":{"mode":1},"inputs":["propertyValue21","propertyValue23"]},"target13":{"type":"target","params":{"type":1,"nodePath":"../../transform_ANIM_G_1"},"inputs":["propertyName1"]},"propertyValue25":{"type":"propertyValue","inputs":["target13"]},"propertyValue26":{"type":"propertyValue","params":{"value3":[-2.1,0,0]},"inputs":["target13"]},"target14":{"type":"target","params":{"type":1,"nodePath":"../../transform_ANIM_G_2"},"inputs":["propertyName1"]},"propertyValue27":{"type":"propertyValue","params":{"value3":[0,0,-2]},"inputs":["target14"]},"propertyValue28":{"type":"propertyValue","inputs":["target14"]},"merge15":{"type":"merge","inputs":["propertyValue26","propertyValue28"]},"merge16":{"type":"merge","params":{"mode":1},"inputs":["propertyValue25","propertyValue27"]},"target15":{"type":"target","params":{"type":1,"nodePath":"../../transform_ANIM_H_1"},"inputs":["propertyName1"]},"propertyValue29":{"type":"propertyValue","inputs":["target15"]},"propertyValue30":{"type":"propertyValue","params":{"value3":[-1.8,0,0]},"inputs":["target15"]},"target16":{"type":"target","params":{"type":1,"nodePath":"../../transform_ANIM_H_2"},"inputs":["propertyName1"]},"propertyValue31":{"type":"propertyValue","params":{"value3":[0,0,-2.5]},"inputs":["target16"]},"propertyValue32":{"type":"propertyValue","inputs":["target16"]},"merge17":{"type":"merge","inputs":["propertyValue30","propertyValue32"]},"merge18":{"type":"merge","params":{"mode":1},"inputs":["propertyValue29","propertyValue31"]},"target17":{"type":"target","params":{"type":1,"nodePath":"../../transform_ANIM_I_1"},"inputs":["propertyName1"]},"propertyValue33":{"type":"propertyValue","inputs":["target17"]},"propertyValue34":{"type":"propertyValue","params":{"value3":[1.4999999999999998,0,0]},"inputs":["target17"]},"target18":{"type":"target","params":{"type":1,"nodePath":"../../transform_ANIM_I_2"},"inputs":["propertyName1"]},"propertyValue35":{"type":"propertyValue","params":{"value3":[0,0,-2]},"inputs":["target18"]},"propertyValue36":{"type":"propertyValue","inputs":["target18"]},"merge19":{"type":"merge","inputs":["propertyValue34","propertyValue36"]},"merge20":{"type":"merge","params":{"mode":1},"inputs":["propertyValue33","propertyValue35"]},"target19":{"type":"target","params":{"type":1,"nodePath":"../../transform_ANIM_J_1"},"inputs":["propertyName1"]},"propertyValue37":{"type":"propertyValue","inputs":["target19"]},"propertyValue38":{"type":"propertyValue","params":{"value3":[1.3,0,0]},"inputs":["target19"]},"target20":{"type":"target","params":{"type":1,"nodePath":"../../transform_ANIM_J_2"},"inputs":["propertyName1"]},"propertyValue39":{"type":"propertyValue","params":{"value3":[0,0,-2.1]},"inputs":["target20"]},"propertyValue40":{"type":"propertyValue","inputs":["target20"]},"merge21":{"type":"merge","inputs":["propertyValue38","propertyValue40"]},"merge22":{"type":"merge","params":{"mode":1},"inputs":["propertyValue37","propertyValue39"]},"target21":{"type":"target","params":{"type":1,"nodePath":"../../transform_ANIM_K_1"},"inputs":["propertyName1"]},"propertyValue41":{"type":"propertyValue","inputs":["target21"]},"propertyValue42":{"type":"propertyValue","params":{"value3":[1.4999999999999998,0,0]},"inputs":["target21"]},"target22":{"type":"target","params":{"type":1,"nodePath":"../../transform_ANIM_K_2"},"inputs":["propertyName1"]},"propertyValue43":{"type":"propertyValue","params":{"value3":[0,0,-3]},"inputs":["target22"]},"propertyValue44":{"type":"propertyValue","inputs":["target22"]},"merge23":{"type":"merge","inputs":["propertyValue42","propertyValue44"]},"merge24":{"type":"merge","params":{"mode":1},"inputs":["propertyValue41","propertyValue43"]}},"selection":["duration1"]},"transform_ANIM_A_1":{"type":"transform","params":{"t":[-0.7,0,0]},"inputs":["material2"]},"transform_ANIM_A_2":{"type":"transform","params":{"applyOn":1},"inputs":["transform_ANIM_A_1"]},"transform_ANIM_B_1":{"type":"transform","params":{"t":[-0.8,0,0]},"inputs":["material3"]},"transform_ANIM_B_2":{"type":"transform","params":{"applyOn":1},"inputs":["transform_ANIM_B_1"]},"material3":{"type":"material","params":{"material":"../MAT/meshStandardBuilder_RED"},"inputs":["transform_bottom_center"]},"transform_ANIM_C_1":{"type":"transform","params":{"t":[0.8,0,0]},"inputs":["transform10"]},"transform_ANIM_C_2":{"type":"transform","params":{"applyOn":1},"inputs":["transform_ANIM_C_1"]},"material4":{"type":"material","params":{"material":"../MAT/meshStandardBuilder_RED"},"inputs":["boolean6"]},"transform_ANIM_D_1":{"type":"transform","params":{"t":[1.2,0,0]},"inputs":["transform13"]},"transform_ANIM_D_2":{"type":"transform","params":{"applyOn":1},"inputs":["transform_ANIM_D_1"]},"material5":{"type":"material","params":{"material":"../MAT/meshStandardBuilder_RED"},"inputs":["box2"]},"transform_ANIM_E_1":{"type":"transform","params":{"t":[0,0.8,0]},"inputs":["transform14"]},"transform_ANIM_E_2":{"type":"transform","params":{"applyOn":1},"inputs":["transform_ANIM_E_1"]},"transform_ANIM_F_1":{"type":"transform","params":{"t":[0,-0.9,0]},"inputs":["transform15"]},"transform_ANIM_F_2":{"type":"transform","params":{"applyOn":1},"inputs":["transform_ANIM_F_1"]},"material6":{"type":"material","params":{"material":"../MAT/meshStandardBuilder_RED"},"inputs":["box4"]},"transform_ANIM_G_1":{"type":"transform","params":{"t":[-2.1,0,0]},"inputs":["transform4"]},"transform_ANIM_G_2":{"type":"transform","params":{"applyOn":1},"inputs":["transform_ANIM_G_1"]},"transform_ANIM_H_1":{"type":"transform","params":{"t":[-1.8,0,0]},"inputs":["transform5"]},"transform_ANIM_H_2":{"type":"transform","params":{"applyOn":1},"inputs":["transform_ANIM_H_1"]},"material7":{"type":"material","params":{"material":"../MAT/meshStandardBuilder_RED"},"inputs":["box5"]},"transform_ANIM_I_1":{"type":"transform","params":{"t":[1.5,0,0]},"inputs":["transform1"]},"transform_ANIM_I_2":{"type":"transform","params":{"applyOn":1},"inputs":["transform_ANIM_I_1"]},"transform_ANIM_J_1":{"type":"transform","params":{"t":[1.3,0,0]},"inputs":["transform2"]},"transform_ANIM_J_2":{"type":"transform","params":{"applyOn":1},"inputs":["transform_ANIM_J_1"]},"transform_ANIM_K_1":{"type":"transform","params":{"t":[1.5,0,0]},"inputs":["transform6"]},"transform_ANIM_K_2":{"type":"transform","params":{"applyOn":1},"inputs":["transform_ANIM_K_1"]},"EVENTS":{"type":"eventsNetwork","nodes":{"keyboard1":{"type":"keyboard","params":{"keydown":0,"keypress":1,"keyCodes":"Digit1"}},"animation_RESET":{"type":"animation","params":{"animation":"../../ANIM/RESET"},"inputs":[{"index":0,"node":"keyboard1","output":"keypress"}]},"keyboard2":{"type":"keyboard","params":{"keydown":0,"keypress":1,"keyCodes":"Digit2"}},"animation_PLAY":{"type":"animation","params":{"animation":"../../ANIM/PLAY"},"inputs":[{"index":0,"node":"keyboard2","output":"keypress"}]}}}},"flags":{"display":true},"selection":["ANIM"]},"polarTransform1":{"type":"polarTransform","params":{"center":[0,0.4,0],"longitude":334.8,"latitude":39.6,"depth":1.3},"flags":{"display":false}},"areaLight1":{"type":"areaLight","params":{"color":[0.9529411764705882,0.6078431372549019,0.6078431372549019],"intensity":1.2,"width":1.9,"showHelper":1},"inputs":["polarTransform2"],"flags":{"display":true}},"polarTransform2":{"type":"polarTransform","params":{"longitude":115.2,"latitude":21.6,"depth":2.1},"flags":{"display":false}}},"params":{"backgroundMode":1}},"ui":{"nodes":{"hemisphereLight1":{"pos":[150,100]},"perspectiveCamera1":{"pos":[-200,100],"nodes":{"events1":{"pos":[-200,50],"nodes":{"cameraOrbitControls1":{"pos":[150,50]}}}}},"spotLight1":{"pos":[300,250]},"COP":{"pos":[-200,200],"nodes":{"imageEnv":{"pos":[50,100]},"imageUv":{"pos":[-100,100]},"envMap":{"pos":[50,200]}}},"ground":{"pos":[-50,-50],"nodes":{"plane1":{"pos":[0,-50]},"reflector1":{"pos":[0,200]},"transform1":{"pos":[0,100]},"transform2":{"pos":[200,100]}}},"text":{"pos":[0,-300],"comment":"The objects are animated via the anim nodes, which are inside this text node. So dive inside to see how it's set up.\\n\\nOr you can simply do the following to start the anim:\\n1 - click on the 3D viewer.\\n2 - press \"2\"\\n\\nAnd if you want to reset the animation:\\n1 - click on the 3D viewer.\\n2 - press \"1\"\\n","nodes":{"box1":{"pos":[-400,-300]},"transform3":{"pos":[-400,-50]},"tube1":{"pos":[50,-450]},"boolean1":{"pos":[-200,250]},"boolean2":{"pos":[-50,350]},"boolean3":{"pos":[500,950]},"tube2":{"pos":[1150,-300]},"transform7":{"pos":[1250,-200]},"boolean4":{"pos":[1150,-100]},"transform8":{"pos":[850,500]},"box3":{"pos":[1400,-100]},"boolean5":{"pos":[1250,100]},"transform9":{"pos":[1400,0]},"transform10":{"pos":[850,600]},"boolean6":{"pos":[1350,250]},"transform11":{"pos":[1500,100]},"transform_ROTATE_180":{"pos":[1350,500]},"transform12":{"pos":[1150,650]},"transform13":{"pos":[1150,750]},"boolean7":{"pos":[750,1150]},"box2":{"pos":[1650,550]},"transform14":{"pos":[1550,900]},"boolean8":{"pos":[1000,1350]},"transform_ROTATE_181":{"pos":[1750,800]},"transform15":{"pos":[1750,1000]},"boolean9":{"pos":[1300,1500]},"transform_top_center":{"pos":[-100,-300]},"transform_bottom_center":{"pos":[150,-300]},"box4":{"pos":[2100,1000]},"transform4":{"pos":[2050,1250]},"boolean10":{"pos":[1550,1650]},"transform5":{"pos":[2250,1250]},"boolean11":{"pos":[1800,1800]},"box5":{"pos":[2400,1650]},"transform1":{"pos":[2200,1850]},"boolean12":{"pos":[2050,2250]},"transform2":{"pos":[2400,1850]},"boolean13":{"pos":[2200,2350]},"boolean14":{"pos":[2300,2450]},"transform6":{"pos":[2600,1850]},"MAT":{"pos":[-800,50],"nodes":{"meshStandardBuilder_BOX":{"pos":[-650,50],"nodes":{"globals1":{"pos":[-200,0]},"output1":{"pos":[200,0]}}},"meshStandardBuilder_RED":{"pos":[-650,150],"nodes":{"globals1":{"pos":[-200,0]},"output1":{"pos":[200,0]}}}}},"material1":{"pos":[-400,-150]},"merge1":{"pos":[1450,2650]},"material2":{"pos":[-100,-200]},"merge2":{"pos":[2250,2800]},"ANIM":{"pos":[-800,250],"nodes":{"target1":{"pos":[-600,450]},"propertyName1":{"pos":[-350,150]},"propertyValue1":{"pos":[-600,700]},"PLAY":{"pos":[4550,1700]},"propertyValue2":{"pos":[-900,700]},"RESET":{"pos":[3700,1700]},"easing1":{"pos":[-350,50]},"duration1":{"pos":[-350,-50]},"target2":{"pos":[-350,450]},"propertyValue3":{"pos":[-350,700]},"propertyValue4":{"pos":[-750,700]},"merge1":{"pos":[-850,850]},"merge2":{"pos":[-500,850]},"target3":{"pos":[150,450]},"propertyValue5":{"pos":[150,700]},"propertyValue6":{"pos":[-150,700]},"target4":{"pos":[400,450]},"propertyValue7":{"pos":[400,700]},"propertyValue8":{"pos":[0,700]},"merge3":{"pos":[-50,850]},"merge4":{"pos":[300,850]},"merge5":{"pos":[3700,1550]},"merge6":{"pos":[4550,1550]},"target5":{"pos":[900,450]},"propertyValue9":{"pos":[900,700]},"propertyValue10":{"pos":[600,700]},"target6":{"pos":[1150,450]},"propertyValue11":{"pos":[1150,700]},"propertyValue12":{"pos":[750,700]},"merge7":{"pos":[700,850]},"merge8":{"pos":[1050,850]},"target7":{"pos":[1700,450]},"propertyValue13":{"pos":[1700,700]},"propertyValue14":{"pos":[1400,700]},"target8":{"pos":[1950,450]},"propertyValue15":{"pos":[1950,700]},"propertyValue16":{"pos":[1550,700]},"merge9":{"pos":[1500,850]},"merge10":{"pos":[1850,850]},"target9":{"pos":[2500,450]},"propertyValue17":{"pos":[2500,700]},"propertyValue18":{"pos":[2200,700]},"target10":{"pos":[2750,450]},"propertyValue19":{"pos":[2750,700]},"propertyValue20":{"pos":[2350,700]},"merge11":{"pos":[2300,850]},"merge12":{"pos":[2650,850]},"target11":{"pos":[3300,450]},"propertyValue21":{"pos":[3300,700]},"propertyValue22":{"pos":[3000,700]},"target12":{"pos":[3550,450]},"propertyValue23":{"pos":[3550,700]},"propertyValue24":{"pos":[3150,700]},"merge13":{"pos":[3100,850]},"merge14":{"pos":[3450,850]},"target13":{"pos":[4100,450]},"propertyValue25":{"pos":[4100,700]},"propertyValue26":{"pos":[3800,700]},"target14":{"pos":[4350,450]},"propertyValue27":{"pos":[4350,700]},"propertyValue28":{"pos":[3950,700]},"merge15":{"pos":[3900,850]},"merge16":{"pos":[4250,850]},"target15":{"pos":[4950,450]},"propertyValue29":{"pos":[4950,700]},"propertyValue30":{"pos":[4650,700]},"target16":{"pos":[5200,450]},"propertyValue31":{"pos":[5200,700]},"propertyValue32":{"pos":[4800,700]},"merge17":{"pos":[4750,850]},"merge18":{"pos":[5100,850]},"target17":{"pos":[5750,450]},"propertyValue33":{"pos":[5750,700]},"propertyValue34":{"pos":[5450,700]},"target18":{"pos":[6000,450]},"propertyValue35":{"pos":[6000,700]},"propertyValue36":{"pos":[5600,700]},"merge19":{"pos":[5550,850]},"merge20":{"pos":[5900,850]},"target19":{"pos":[6550,450]},"propertyValue37":{"pos":[6550,700]},"propertyValue38":{"pos":[6250,700]},"target20":{"pos":[6800,450]},"propertyValue39":{"pos":[6800,700]},"propertyValue40":{"pos":[6400,700]},"merge21":{"pos":[6350,850]},"merge22":{"pos":[6700,850]},"target21":{"pos":[7350,450]},"propertyValue41":{"pos":[7350,700]},"propertyValue42":{"pos":[7050,700]},"target22":{"pos":[7600,450]},"propertyValue43":{"pos":[7600,700]},"propertyValue44":{"pos":[7200,700]},"merge23":{"pos":[7150,850]},"merge24":{"pos":[7500,850]}}},"transform_ANIM_A_1":{"pos":[-100,-100]},"transform_ANIM_A_2":{"pos":[-100,0]},"transform_ANIM_B_1":{"pos":[150,-100]},"transform_ANIM_B_2":{"pos":[150,0]},"material3":{"pos":[150,-200]},"transform_ANIM_C_1":{"pos":[850,700]},"transform_ANIM_C_2":{"pos":[850,800]},"material4":{"pos":[1350,350]},"transform_ANIM_D_1":{"pos":[1150,900]},"transform_ANIM_D_2":{"pos":[1150,1000]},"material5":{"pos":[1650,650]},"transform_ANIM_E_1":{"pos":[1550,1000]},"transform_ANIM_E_2":{"pos":[1550,1100]},"transform_ANIM_F_1":{"pos":[1750,1100]},"transform_ANIM_F_2":{"pos":[1750,1200]},"material6":{"pos":[2100,1100]},"transform_ANIM_G_1":{"pos":[2050,1350]},"transform_ANIM_G_2":{"pos":[2050,1450]},"transform_ANIM_H_1":{"pos":[2250,1350]},"transform_ANIM_H_2":{"pos":[2250,1450]},"material7":{"pos":[2400,1750]},"transform_ANIM_I_1":{"pos":[2200,1950]},"transform_ANIM_I_2":{"pos":[2200,2050]},"transform_ANIM_J_1":{"pos":[2400,1950]},"transform_ANIM_J_2":{"pos":[2400,2050]},"transform_ANIM_K_1":{"pos":[2600,1950]},"transform_ANIM_K_2":{"pos":[2600,2050]},"EVENTS":{"pos":[-800,150],"nodes":{"keyboard1":{"pos":[-850,50]},"animation_RESET":{"pos":[-600,50]},"keyboard2":{"pos":[-850,200]},"animation_PLAY":{"pos":[-600,200]}}}}},"polarTransform1":{"pos":[300,50]},"areaLight1":{"pos":[450,350]},"polarTransform2":{"pos":[450,150]}}}}
Code editor
{"multiple_panel":{"split_ratio":0.5,"split_panel0":{"split_ratio":0.5,"split_panel0":{"panel_types":["viewer"],"current_panel_index":0,"panel_data":{"camera":"/perspectiveCamera1"}},"split_panel1":{"panel_types":["params"],"current_panel_index":0,"panel_data":{"active_folder":172}},"split_mode":"vertical"},"split_panel1":{"panel_types":["network","params","viewer"],"current_panel_index":0,"panel_data":{"camera":{"position":{"x":-141.91428655627485,"y":37.05488295824468},"zoom":0.7280000000000002},"history":{"2":{"position":{"x":-141.91428655627485,"y":37.05488295824468},"zoom":0.7280000000000002},"3":{"position":{"x":-48,"y":-22},"zoom":0.5},"6":{"position":{"x":11.339999999999996,"y":-96.49999999999999},"zoom":0.6172839506172841},"9":{"position":{"x":-32,"y":-88},"zoom":0.5},"131":{"position":{"x":-59.04899999999998,"y":-65.1854},"zoom":0.8467543904215146},"166":{"position":{"x":437.4725175476456,"y":-247.05632427023056},"zoom":0.6630000000000001}}}},"split_mode":"horizontal"},"current_node":"/","fullscreen_panel_id":null}
Used nodes
anim/duration;anim/easing;anim/merge;anim/null;anim/propertyName;anim/propertyValue;anim/target;cop/envMap;cop/image;event/animation;event/cameraOrbitControls;event/keyboard;mat/meshStandardBuilder;obj/areaLight;obj/copNetwork;obj/geo;obj/hemisphereLight;obj/perspectiveCamera;obj/polarTransform;obj/spotLight;sop/animationsNetwork;sop/boolean;sop/box;sop/eventsNetwork;sop/material;sop/materialsNetwork;sop/merge;sop/plane;sop/reflector;sop/transform;sop/tube
Used operations
Used modules
EXRLoader
Used assemblers
GL_MESH_STANDARD
Used integrations
[]
Used assets
Nodes map
{"/hemisphereLight1":"obj/hemisphereLight","/perspectiveCamera1":"obj/perspectiveCamera","/perspectiveCamera1/events1":"sop/eventsNetwork","/perspectiveCamera1/events1/cameraOrbitControls1":"event/cameraOrbitControls","/spotLight1":"obj/spotLight","/COP":"obj/copNetwork","/COP/imageEnv":"cop/image","/COP/imageUv":"cop/image","/COP/envMap":"cop/envMap","/ground":"obj/geo","/ground/plane1":"sop/plane","/ground/reflector1":"sop/reflector","/ground/transform1":"sop/transform","/ground/transform2":"sop/transform","/text":"obj/geo","/text/box1":"sop/box","/text/transform3":"sop/transform","/text/tube1":"sop/tube","/text/boolean1":"sop/boolean","/text/boolean2":"sop/boolean","/text/boolean3":"sop/boolean","/text/tube2":"sop/tube","/text/transform7":"sop/transform","/text/boolean4":"sop/boolean","/text/transform8":"sop/transform","/text/box3":"sop/box","/text/boolean5":"sop/boolean","/text/transform9":"sop/transform","/text/transform10":"sop/transform","/text/boolean6":"sop/boolean","/text/transform11":"sop/transform","/text/transform_ROTATE_180":"sop/transform","/text/transform12":"sop/transform","/text/transform13":"sop/transform","/text/boolean7":"sop/boolean","/text/box2":"sop/box","/text/transform14":"sop/transform","/text/boolean8":"sop/boolean","/text/transform_ROTATE_181":"sop/transform","/text/transform15":"sop/transform","/text/boolean9":"sop/boolean","/text/transform_top_center":"sop/transform","/text/transform_bottom_center":"sop/transform","/text/box4":"sop/box","/text/transform4":"sop/transform","/text/boolean10":"sop/boolean","/text/transform5":"sop/transform","/text/boolean11":"sop/boolean","/text/box5":"sop/box","/text/transform1":"sop/transform","/text/boolean12":"sop/boolean","/text/transform2":"sop/transform","/text/boolean13":"sop/boolean","/text/boolean14":"sop/boolean","/text/transform6":"sop/transform","/text/MAT":"sop/materialsNetwork","/text/MAT/meshStandardBuilder_BOX":"mat/meshStandardBuilder","/text/MAT/meshStandardBuilder_RED":"mat/meshStandardBuilder","/text/material1":"sop/material","/text/merge1":"sop/merge","/text/material2":"sop/material","/text/merge2":"sop/merge","/text/ANIM":"sop/animationsNetwork","/text/ANIM/target1":"anim/target","/text/ANIM/propertyName1":"anim/propertyName","/text/ANIM/propertyValue1":"anim/propertyValue","/text/ANIM/PLAY":"anim/null","/text/ANIM/propertyValue2":"anim/propertyValue","/text/ANIM/RESET":"anim/null","/text/ANIM/easing1":"anim/easing","/text/ANIM/duration1":"anim/duration","/text/ANIM/target2":"anim/target","/text/ANIM/propertyValue3":"anim/propertyValue","/text/ANIM/propertyValue4":"anim/propertyValue","/text/ANIM/merge1":"anim/merge","/text/ANIM/merge2":"anim/merge","/text/ANIM/target3":"anim/target","/text/ANIM/propertyValue5":"anim/propertyValue","/text/ANIM/propertyValue6":"anim/propertyValue","/text/ANIM/target4":"anim/target","/text/ANIM/propertyValue7":"anim/propertyValue","/text/ANIM/propertyValue8":"anim/propertyValue","/text/ANIM/merge3":"anim/merge","/text/ANIM/merge4":"anim/merge","/text/ANIM/merge5":"anim/merge","/text/ANIM/merge6":"anim/merge","/text/ANIM/target5":"anim/target","/text/ANIM/propertyValue9":"anim/propertyValue","/text/ANIM/propertyValue10":"anim/propertyValue","/text/ANIM/target6":"anim/target","/text/ANIM/propertyValue11":"anim/propertyValue","/text/ANIM/propertyValue12":"anim/propertyValue","/text/ANIM/merge7":"anim/merge","/text/ANIM/merge8":"anim/merge","/text/ANIM/target7":"anim/target","/text/ANIM/propertyValue13":"anim/propertyValue","/text/ANIM/propertyValue14":"anim/propertyValue","/text/ANIM/target8":"anim/target","/text/ANIM/propertyValue15":"anim/propertyValue","/text/ANIM/propertyValue16":"anim/propertyValue","/text/ANIM/merge9":"anim/merge","/text/ANIM/merge10":"anim/merge","/text/ANIM/target9":"anim/target","/text/ANIM/propertyValue17":"anim/propertyValue","/text/ANIM/propertyValue18":"anim/propertyValue","/text/ANIM/target10":"anim/target","/text/ANIM/propertyValue19":"anim/propertyValue","/text/ANIM/propertyValue20":"anim/propertyValue","/text/ANIM/merge11":"anim/merge","/text/ANIM/merge12":"anim/merge","/text/ANIM/target11":"anim/target","/text/ANIM/propertyValue21":"anim/propertyValue","/text/ANIM/propertyValue22":"anim/propertyValue","/text/ANIM/target12":"anim/target","/text/ANIM/propertyValue23":"anim/propertyValue","/text/ANIM/propertyValue24":"anim/propertyValue","/text/ANIM/merge13":"anim/merge","/text/ANIM/merge14":"anim/merge","/text/ANIM/target13":"anim/target","/text/ANIM/propertyValue25":"anim/propertyValue","/text/ANIM/propertyValue26":"anim/propertyValue","/text/ANIM/target14":"anim/target","/text/ANIM/propertyValue27":"anim/propertyValue","/text/ANIM/propertyValue28":"anim/propertyValue","/text/ANIM/merge15":"anim/merge","/text/ANIM/merge16":"anim/merge","/text/ANIM/target15":"anim/target","/text/ANIM/propertyValue29":"anim/propertyValue","/text/ANIM/propertyValue30":"anim/propertyValue","/text/ANIM/target16":"anim/target","/text/ANIM/propertyValue31":"anim/propertyValue","/text/ANIM/propertyValue32":"anim/propertyValue","/text/ANIM/merge17":"anim/merge","/text/ANIM/merge18":"anim/merge","/text/ANIM/target17":"anim/target","/text/ANIM/propertyValue33":"anim/propertyValue","/text/ANIM/propertyValue34":"anim/propertyValue","/text/ANIM/target18":"anim/target","/text/ANIM/propertyValue35":"anim/propertyValue","/text/ANIM/propertyValue36":"anim/propertyValue","/text/ANIM/merge19":"anim/merge","/text/ANIM/merge20":"anim/merge","/text/ANIM/target19":"anim/target","/text/ANIM/propertyValue37":"anim/propertyValue","/text/ANIM/propertyValue38":"anim/propertyValue","/text/ANIM/target20":"anim/target","/text/ANIM/propertyValue39":"anim/propertyValue","/text/ANIM/propertyValue40":"anim/propertyValue","/text/ANIM/merge21":"anim/merge","/text/ANIM/merge22":"anim/merge","/text/ANIM/target21":"anim/target","/text/ANIM/propertyValue41":"anim/propertyValue","/text/ANIM/propertyValue42":"anim/propertyValue","/text/ANIM/target22":"anim/target","/text/ANIM/propertyValue43":"anim/propertyValue","/text/ANIM/propertyValue44":"anim/propertyValue","/text/ANIM/merge23":"anim/merge","/text/ANIM/merge24":"anim/merge","/text/transform_ANIM_A_1":"sop/transform","/text/transform_ANIM_A_2":"sop/transform","/text/transform_ANIM_B_1":"sop/transform","/text/transform_ANIM_B_2":"sop/transform","/text/material3":"sop/material","/text/transform_ANIM_C_1":"sop/transform","/text/transform_ANIM_C_2":"sop/transform","/text/material4":"sop/material","/text/transform_ANIM_D_1":"sop/transform","/text/transform_ANIM_D_2":"sop/transform","/text/material5":"sop/material","/text/transform_ANIM_E_1":"sop/transform","/text/transform_ANIM_E_2":"sop/transform","/text/transform_ANIM_F_1":"sop/transform","/text/transform_ANIM_F_2":"sop/transform","/text/material6":"sop/material","/text/transform_ANIM_G_1":"sop/transform","/text/transform_ANIM_G_2":"sop/transform","/text/transform_ANIM_H_1":"sop/transform","/text/transform_ANIM_H_2":"sop/transform","/text/material7":"sop/material","/text/transform_ANIM_I_1":"sop/transform","/text/transform_ANIM_I_2":"sop/transform","/text/transform_ANIM_J_1":"sop/transform","/text/transform_ANIM_J_2":"sop/transform","/text/transform_ANIM_K_1":"sop/transform","/text/transform_ANIM_K_2":"sop/transform","/text/EVENTS":"sop/eventsNetwork","/text/EVENTS/keyboard1":"event/keyboard","/text/EVENTS/animation_RESET":"event/animation","/text/EVENTS/keyboard2":"event/keyboard","/text/EVENTS/animation_PLAY":"event/animation","/polarTransform1":"obj/polarTransform","/areaLight1":"obj/areaLight","/polarTransform2":"obj/polarTransform"}
Js version
Editor version
Engine version
Logout
0%
There was a problem displaying your scene:
view scene source