Name
*
Code
{"properties":{"frame":4928,"maxFrame":600,"maxFrameLocked":false,"realtimeState":true,"mainCameraPath":"/perspectiveCamera1","versions":{"polygonjs":"1.2.74"}},"root":{"type":"root","nodes":{"geo1":{"type":"geo","nodes":{"COP":{"type":"copNetwork","nodes":{"builder1":{"type":"builder","nodes":{"floatToVec3_1":{"type":"floatToVec3","params":{"x":{"overriden_options":{}},"y":{"overriden_options":{}},"z":{"overriden_options":{}}},"inputs":[{"index":0,"inputName":"x","node":"noise1","output":"noise"},{"index":1,"inputName":"y","node":"noise1","output":"noise"},{"index":2,"inputName":"z","node":"noise1","output":"noise"}]},"floatToVec3_2":{"type":"floatToVec3","params":{"x":{"overriden_options":{}},"y":{"overriden_options":{}},"z":{"overriden_options":{}}},"inputs":[null,{"index":1,"inputName":"y","node":"multAdd1","output":"val"},{"index":2,"inputName":"z","node":"multAdd1","output":"val"}]},"floatToVec3_4":{"type":"floatToVec3","params":{"x":{"raw_input":1,"overriden_options":{}},"y":{"overriden_options":{}},"z":{"overriden_options":{}}},"inputs":[null,{"index":1,"inputName":"y","node":"vec2ToFloat2","output":"y"},{"index":2,"inputName":"z","node":"vec2ToFloat2","output":"x"}]},"globals1":{"type":"globals"},"globals2":{"type":"globals"},"multAdd1":{"type":"multAdd","params":{"value":{"type":"float","default_value":0,"options":{"spare":true,"editable":false}},"preAdd":{"type":"float","default_value":0,"options":{"spare":true,"editable":true}},"mult":{"type":"float","default_value":1,"options":{"spare":true,"editable":true},"raw_input":0.31},"postAdd":{"type":"float","default_value":0,"options":{"spare":true,"editable":true}}},"inputs":[{"index":0,"inputName":"value","node":"globals2","output":"time"}],"connection_points":{"in":[{"name":"value","type":"float"},{"name":"preAdd","type":"float"},{"name":"mult","type":"float"},{"name":"postAdd","type":"float"}],"out":[{"name":"val","type":"float"}]}},"multAdd4":{"type":"multAdd","params":{"value":{"type":"vector2","default_value":[0,0],"options":{"spare":true,"editable":false}},"preAdd":{"type":"vector2","default_value":[0,0],"options":{"spare":true,"editable":true}},"mult":{"type":"vector2","default_value":[1,1],"options":{"spare":true,"editable":true},"raw_input":[6.283185307179586,3.141592653589793]},"postAdd":{"type":"vector2","default_value":[0,0],"options":{"spare":true,"editable":true}}},"inputs":[{"index":0,"inputName":"value","node":"globals1","output":"uv"}],"connection_points":{"in":[{"name":"value","type":"vec2"},{"name":"preAdd","type":"vec2"},{"name":"mult","type":"vec2"},{"name":"postAdd","type":"vec2"}],"out":[{"name":"val","type":"vec2"}]}},"noise1":{"type":"noise","params":{"outputType":1,"amp":{"type":"float","default_value":1,"options":{"spare":true,"editable":true},"raw_input":1.6},"position":{"type":"vector3","default_value":[0,0,0],"options":{"spare":true,"editable":false},"overriden_options":{}},"freq":{"type":"vector3","default_value":[1,1,1],"options":{"spare":true,"editable":true},"raw_input":[0.39999999999999997,0.39999999999999997,0.39999999999999997]},"offset":{"type":"vector3","default_value":[0,0,0],"options":{"spare":true,"editable":false},"overriden_options":{}}},"maxInputsCount":4,"inputs":[null,{"index":1,"inputName":"position","node":"polarToCartesian3","output":"xyz"},null,{"index":3,"inputName":"offset","node":"floatToVec3_2","output":"vec3"}],"connection_points":{"in":[{"name":"amp","type":"float"},{"name":"position","type":"vec3"},{"name":"freq","type":"vec3"},{"name":"offset","type":"vec3"}],"out":[{"name":"noise","type":"float"}]}},"output1":{"type":"output","inputs":[{"index":0,"inputName":"color","node":"floatToVec3_1","output":"vec3"}]},"polarToCartesian3":{"type":"polarToCartesian","params":{"polar":{"overriden_options":{}}},"inputs":[{"index":0,"inputName":"polar","node":"floatToVec3_4","output":"vec3"}]},"vec2ToFloat2":{"type":"vec2ToFloat","params":{"vec":{"overriden_options":{}}},"inputs":[{"index":0,"inputName":"vec","node":"multAdd4","output":"val"}]}},"params":{"resolution":[512,512],"tencoding":true,"tminFilter":true,"tmagFilter":true},"persisted_config":{"uniforms":{"time":{"value":85.54470000010731},"resolution":{"value":{"x":512,"y":512}}},"param_uniform_pairs":[],"uniforms_time_dependent":true,"uniforms_resolution_dependent":false}}}},"MAT":{"type":"materialsNetwork","nodes":{"meshPhysicalBuilder_SPHERE":{"type":"meshPhysicalBuilder","nodes":{"constant1":{"type":"constant","params":{"type":4,"color":[0.38823529411764707,0.3215686274509804,0.6549019607843137],"asColor":true},"connection_points":{"in":[],"out":[{"name":"val","type":"vec3"}]}},"globals1":{"type":"globals"},"output1":{"type":"output","inputs":[null,null,{"index":2,"inputName":"color","node":"constant1","output":"val"}]}},"params":{"useDisplacementMap":true,"displacementMap":"../../COP/builder1","displacementScale":0.18,"useEnvMap":true,"envMap":"../../../COP/envMap","envMapIntensity":0.11,"roughness":0.01,"transmission":1,"thickness":2.4,"attenuationDistance":6.9,"attenuationColor":[0.023529411764705882,0.23529411764705882,0.5764705882352941]},"persisted_config":{"material":{"metadata":{"version":4.5,"type":"Material","generator":"Material.toJSON"},"uuid":"/geo1/MAT/meshPhysicalBuilder_SPHERE-main","type":"MeshPhysicalMaterial","name":"/geo1/MAT/meshPhysicalBuilder_SPHERE","color":16777215,"roughness":0.01,"metalness":0,"sheen":0,"sheenColor":0,"sheenRoughness":1,"emissive":0,"specularIntensity":1,"specularColor":16777215,"clearcoat":0,"clearcoatRoughness":0,"iridescence":0,"iridescenceIOR":1.3,"iridescenceThicknessRange":[100,400],"envMapIntensity":0.11,"reflectivity":0.49999999999999983,"transmission":1,"thickness":2.4,"attenuationDistance":6.9,"attenuationColor":408723,"depthFunc":3,"depthTest":true,"depthWrite":true,"colorWrite":true,"stencilWrite":false,"stencilWriteMask":255,"stencilFunc":519,"stencilRef":0,"stencilFuncMask":255,"stencilFail":7680,"stencilZFail":7680,"stencilZPass":7680,"fog":false},"onBeforeCompileDataJSONWithoutShaders":{"paramConfigs":[],"timeDependent":false,"resolutionDependent":false,"raymarchingLightsWorldCoordsDependent":false},"customMaterials":{"customDepthMaterial":{"material":{"metadata":{"version":4.5,"type":"Material","generator":"Material.toJSON"},"uuid":"/geo1/MAT/meshPhysicalBuilder_SPHERE-customDepthMaterial","type":"MeshDepthMaterial","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,"depthPacking":3201},"onBeforeCompileDataJSONWithoutShaders":{"paramConfigs":[],"timeDependent":false,"resolutionDependent":false,"raymarchingLightsWorldCoordsDependent":false}},"customDistanceMaterial":{"material":{"metadata":{"version":4.5,"type":"Material","generator":"Material.toJSON"},"uuid":"/geo1/MAT/meshPhysicalBuilder_SPHERE-customDistanceMaterial","type":"MeshDistanceMaterial","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},"onBeforeCompileDataJSONWithoutShaders":{"paramConfigs":[],"timeDependent":false,"resolutionDependent":false,"raymarchingLightsWorldCoordsDependent":false}},"customDepthDOFMaterial":{"material":{"metadata":{"version":4.5,"type":"Material","generator":"Material.toJSON"},"uuid":"/geo1/MAT/meshPhysicalBuilder_SPHERE-customDepthDOFMaterial","type":"MeshDepthMaterial","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,"depthPacking":3200},"onBeforeCompileDataJSONWithoutShaders":{"paramConfigs":[],"timeDependent":false,"resolutionDependent":false,"raymarchingLightsWorldCoordsDependent":false}}}}},"meshPhysical_BG":{"type":"meshPhysical","params":{"color":[2.0705882352941174,2.368627450980392,2.349019607843137],"useMap":true,"map":"../../../COP/imageUv"}},"meshBasicBuilder_DEBUG":{"type":"meshBasicBuilder","nodes":{"add1":{"type":"add","params":{"add0":{"type":"vector3","default_value":[0,0,0],"options":{"spare":true,"editable":false}},"add1":{"type":"vector3","default_value":[0,0,0],"options":{"spare":true,"editable":false}},"add2":{"type":"vector3","default_value":[0,0,0],"options":{"spare":true,"editable":true}}},"maxInputsCount":3,"inputs":[{"index":0,"inputName":"add0","node":"globals1","output":"position"},{"index":1,"inputName":"add1","node":"noise1","output":"noise"}],"connection_points":{"in":[{"name":"add0","type":"vec3"},{"name":"add1","type":"vec3"},{"name":"add2","type":"vec3"}],"out":[{"name":"sum","type":"vec3"}]}},"add2":{"type":"add","params":{"add0":{"type":"vector3","default_value":[0,0,0],"options":{"spare":true,"editable":false}},"add1":{"type":"vector3","default_value":[0,0,0],"options":{"spare":true,"editable":false}},"add2":{"type":"vector3","default_value":[0,0,0],"options":{"spare":true,"editable":true}}},"maxInputsCount":3,"inputs":[{"index":0,"inputName":"add0","node":"globals2","output":"position"},{"index":1,"inputName":"add1","node":"floatToVec3_5","output":"vec3"}],"connection_points":{"in":[{"name":"add0","type":"vec3"},{"name":"add1","type":"vec3"},{"name":"add2","type":"vec3"}],"out":[{"name":"sum","type":"vec3"}]}},"cartesianToPolar1":{"type":"cartesianToPolar","params":{"xyz":{"overriden_options":{}}},"inputs":[{"index":0,"inputName":"xyz","node":"globals1","output":"position"}]},"constant1":{"type":"constant","params":{"float":"2*3.141592653589793"},"maxInputsCount":0,"connection_points":{"in":[],"out":[{"name":"val","type":"float"}]}},"constant2":{"type":"constant","params":{"float":"1*3.141592653589793"},"maxInputsCount":0,"connection_points":{"in":[],"out":[{"name":"val","type":"float"}]}},"cycle1":{"type":"cycle","params":{"in":{"type":"float","default_value":0,"options":{"spare":true,"editable":false}},"min":{"type":"float","default_value":0,"options":{"spare":true,"editable":true}},"max":{"type":"float","default_value":1,"options":{"spare":true,"editable":true}}},"inputs":[{"index":0,"inputName":"in","node":"vec3ToFloat2","output":"x"}],"connection_points":{"in":[{"name":"in","type":"float"},{"name":"min","type":"float"},{"name":"max","type":"float"}],"out":[{"name":"val","type":"float"}]}},"cycle2":{"type":"cycle","params":{"in":{"type":"float","default_value":0,"options":{"spare":true,"editable":false}},"min":{"type":"float","default_value":0,"options":{"spare":true,"editable":true}},"max":{"type":"float","default_value":1,"options":{"spare":true,"editable":true}}},"inputs":[{"index":0,"inputName":"in","node":"vec3ToFloat2","output":"y"}],"connection_points":{"in":[{"name":"in","type":"float"},{"name":"min","type":"float"},{"name":"max","type":"float"}],"out":[{"name":"val","type":"float"}]}},"cycle3":{"type":"cycle","params":{"in":{"type":"float","default_value":0,"options":{"spare":true,"editable":false}},"min":{"type":"float","default_value":0,"options":{"spare":true,"editable":true}},"max":{"type":"float","default_value":1,"options":{"spare":true,"editable":true}}},"inputs":[{"index":0,"inputName":"in","node":"vec3ToFloat2","output":"z"}],"connection_points":{"in":[{"name":"in","type":"float"},{"name":"min","type":"float"},{"name":"max","type":"float"}],"out":[{"name":"val","type":"float"}]}},"cycle4":{"type":"cycle","params":{"in":{"type":"float","default_value":0,"options":{"spare":true,"editable":false}},"min":{"type":"float","default_value":0,"options":{"spare":true,"editable":true}},"max":{"type":"float","default_value":1,"options":{"spare":true,"editable":true},"raw_input":0.5}},"inputs":[{"index":0,"inputName":"in","node":"multAdd2","output":"val"}],"connection_points":{"in":[{"name":"in","type":"float"},{"name":"min","type":"float"},{"name":"max","type":"float"}],"out":[{"name":"val","type":"float"}]}},"divide1":{"type":"divide","params":{"div0":{"type":"float","default_value":1,"options":{"spare":true,"editable":false}},"div1":{"type":"float","default_value":1,"options":{"spare":true,"editable":false}},"div2":{"type":"float","default_value":1,"options":{"spare":true,"editable":true}}},"maxInputsCount":3,"inputs":[{"index":0,"inputName":"div0","node":"vec3ToFloat1","output":"z"},{"index":1,"inputName":"div1","node":"constant1","output":"val"}],"connection_points":{"in":[{"name":"div0","type":"float"},{"name":"div1","type":"float"},{"name":"div2","type":"float"}],"out":[{"name":"divide","type":"float"}]}},"divide2":{"type":"divide","params":{"div0":{"type":"float","default_value":1,"options":{"spare":true,"editable":false}},"div1":{"type":"float","default_value":1,"options":{"spare":true,"editable":false},"raw_input":2},"div2":{"type":"float","default_value":1,"options":{"spare":true,"editable":true}}},"maxInputsCount":3,"inputs":[{"index":0,"inputName":"div0","node":"vec3ToFloat1","output":"y"},{"index":1,"inputName":"div1","node":"constant2","output":"val"}],"connection_points":{"in":[{"name":"div0","type":"float"},{"name":"div1","type":"float"},{"name":"div2","type":"float"}],"out":[{"name":"divide","type":"float"}]}},"floatToVec3_1":{"type":"floatToVec3","params":{"x":{"overriden_options":{}},"y":{"overriden_options":{}},"z":{"overriden_options":{}}},"inputs":[null,{"index":1,"inputName":"y","node":"multAdd1","output":"val"}]},"floatToVec3_2":{"type":"floatToVec3","params":{"x":{"overriden_options":{}},"y":{"overriden_options":{}},"z":{"overriden_options":{}}},"inputs":[null,null,{"index":2,"inputName":"z","node":"cycle4","output":"val"}]},"floatToVec3_3":{"type":"floatToVec3","params":{"x":{"raw_input":1,"overriden_options":{}},"y":{"overriden_options":{}},"z":{"overriden_options":{}}},"inputs":[null,{"index":1,"inputName":"y","node":"vec2ToFloat1","output":"y"},{"index":2,"inputName":"z","node":"vec2ToFloat1","output":"x"}]},"floatToVec3_4":{"type":"floatToVec3","params":{"x":{"overriden_options":{}},"y":{"overriden_options":{}},"z":{"overriden_options":{}}},"inputs":[{"index":0,"inputName":"x","node":"cycle1","output":"val"},{"index":1,"inputName":"y","node":"cycle2","output":"val"},{"index":2,"inputName":"z","node":"cycle3","output":"val"}]},"floatToVec3_5":{"type":"floatToVec3","params":{"x":{"overriden_options":{}},"y":{"overriden_options":{}},"z":{"overriden_options":{}}},"inputs":[null,{"index":1,"inputName":"y","node":"multAdd2","output":"val"}]},"globals1":{"type":"globals"},"globals2":{"type":"globals"},"mod1":{"type":"mod","params":{"in0":{"type":"float","default_value":0,"options":{"spare":true,"editable":false}},"in1":{"type":"float","default_value":1,"options":{"spare":true,"editable":true},"raw_input":6.5}},"inputs":[{"index":0,"inputName":"in0","node":"vec3ToFloat1","output":"z"}],"connection_points":{"in":[{"name":"in0","type":"float"},{"name":"in1","type":"float"}],"out":[{"name":"val","type":"float"}]}},"mult1":{"type":"mult","params":{"mult0":{"type":"vector3","default_value":[1,1,1],"options":{"spare":true,"editable":false}},"mult1":{"type":"vector3","default_value":[1,1,1],"options":{"spare":true,"editable":true},"raw_input":[1,1,"1/$PI"]}},"inputs":[{"index":0,"inputName":"mult0","node":"cartesianToPolar1","output":"polar"}],"connection_points":{"in":[{"name":"mult0","type":"vec3"},{"name":"mult1","type":"vec3"}],"out":[{"name":"product","type":"vec3"}]}},"multAdd1":{"type":"multAdd","params":{"value":{"type":"float","default_value":0,"options":{"spare":true,"editable":false}},"preAdd":{"type":"float","default_value":0,"options":{"spare":true,"editable":true}},"mult":{"type":"float","default_value":1,"options":{"spare":true,"editable":true}},"postAdd":{"type":"float","default_value":0,"options":{"spare":true,"editable":true}}},"inputs":[{"index":0,"inputName":"value","node":"globals1","output":"time"}],"connection_points":{"in":[{"name":"value","type":"float"},{"name":"preAdd","type":"float"},{"name":"mult","type":"float"},{"name":"postAdd","type":"float"}],"out":[{"name":"val","type":"float"}]}},"multAdd2":{"type":"multAdd","params":{"value":{"type":"float","default_value":0,"options":{"spare":true,"editable":false}},"preAdd":{"type":"float","default_value":0,"options":{"spare":true,"editable":true},"raw_input":0.5},"mult":{"type":"float","default_value":1,"options":{"spare":true,"editable":true}},"postAdd":{"type":"float","default_value":0,"options":{"spare":true,"editable":true}}},"inputs":[{"index":0,"inputName":"value","node":"divide1","output":"divide"}],"connection_points":{"in":[{"name":"value","type":"float"},{"name":"preAdd","type":"float"},{"name":"mult","type":"float"},{"name":"postAdd","type":"float"}],"out":[{"name":"val","type":"float"}]}},"multAdd3":{"type":"multAdd","params":{"value":{"type":"vector2","default_value":[0,0],"options":{"spare":true,"editable":false}},"preAdd":{"type":"vector2","default_value":[0,0],"options":{"spare":true,"editable":true}},"mult":{"type":"vector2","default_value":[1,1],"options":{"spare":true,"editable":true},"raw_input":[6.283185307179586,3.141592653589793]},"postAdd":{"type":"vector2","default_value":[0,0],"options":{"spare":true,"editable":true}}},"inputs":[{"index":0,"inputName":"value","node":"globals1","output":"uv"}],"connection_points":{"in":[{"name":"value","type":"vec2"},{"name":"preAdd","type":"vec2"},{"name":"mult","type":"vec2"},{"name":"postAdd","type":"vec2"}],"out":[{"name":"val","type":"vec2"}]}},"noise1":{"type":"noise","params":{"amp":{"type":"vector3","default_value":[1,1,1],"options":{"spare":true,"editable":true},"raw_input":[0.07999999999999997,0.07999999999999997,0.07999999999999997]},"position":{"type":"vector3","default_value":[0,0,0],"options":{"spare":true,"editable":false}},"freq":{"type":"vector3","default_value":[1,1,1],"options":{"spare":true,"editable":true}},"offset":{"type":"vector3","default_value":[0,0,0],"options":{"spare":true,"editable":false}}},"maxInputsCount":4,"inputs":[null,{"index":1,"inputName":"position","node":"cartesianToPolar1","output":"polar"},null,{"index":3,"inputName":"offset","node":"floatToVec3_1","output":"vec3"}],"connection_points":{"in":[{"name":"amp","type":"vec3"},{"name":"position","type":"vec3"},{"name":"freq","type":"vec3"},{"name":"offset","type":"vec3"}],"out":[{"name":"noise","type":"vec3"}]}},"output1":{"type":"output","inputs":[{"index":0,"inputName":"position","node":"polarToCartesian2","output":"xyz"}]},"polarToCartesian1":{"type":"polarToCartesian","params":{"polar":{"overriden_options":{}}},"inputs":[{"index":0,"inputName":"polar","node":"cartesianToPolar1","output":"polar"}]},"polarToCartesian2":{"type":"polarToCartesian","params":{"polar":{"overriden_options":{}}},"inputs":[{"index":0,"inputName":"polar","node":"floatToVec3_3","output":"vec3"}]},"vec2ToFloat1":{"type":"vec2ToFloat","params":{"vec":{"overriden_options":{}}},"inputs":[{"index":0,"inputName":"vec","node":"multAdd3","output":"val"}]},"vec3ToFloat1":{"type":"vec3ToFloat","params":{"vec":{"overriden_options":{}}},"inputs":[{"index":0,"inputName":"vec","node":"cartesianToPolar1","output":"polar"}]},"vec3ToFloat2":{"type":"vec3ToFloat","params":{"vec":{"overriden_options":{}}},"inputs":[{"index":0,"inputName":"vec","node":"polarToCartesian2","output":"xyz"}]}},"persisted_config":{"material":{"metadata":{"version":4.5,"type":"Material","generator":"Material.toJSON"},"uuid":"/geo1/MAT/meshBasicBuilder_DEBUG-main","type":"MeshBasicMaterial","name":"/geo1/MAT/meshBasicBuilder_DEBUG","color":16777215,"reflectivity":1,"refractionRatio":0.98,"depthFunc":3,"depthTest":true,"depthWrite":true,"colorWrite":true,"stencilWrite":false,"stencilWriteMask":255,"stencilFunc":519,"stencilRef":0,"stencilFuncMask":255,"stencilFail":7680,"stencilZFail":7680,"stencilZPass":7680,"fog":false},"onBeforeCompileDataJSONWithoutShaders":{"paramConfigs":[],"timeDependent":true,"resolutionDependent":false,"raymarchingLightsWorldCoordsDependent":false},"customMaterials":{"customDepthMaterial":{"material":{"metadata":{"version":4.5,"type":"Material","generator":"Material.toJSON"},"uuid":"/geo1/MAT/meshBasicBuilder_DEBUG-customDepthMaterial","type":"MeshDepthMaterial","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,"depthPacking":3201},"onBeforeCompileDataJSONWithoutShaders":{"paramConfigs":[],"timeDependent":true,"resolutionDependent":false,"raymarchingLightsWorldCoordsDependent":false}},"customDistanceMaterial":{"material":{"metadata":{"version":4.5,"type":"Material","generator":"Material.toJSON"},"uuid":"/geo1/MAT/meshBasicBuilder_DEBUG-customDistanceMaterial","type":"MeshDistanceMaterial","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},"onBeforeCompileDataJSONWithoutShaders":{"paramConfigs":[],"timeDependent":true,"resolutionDependent":false,"raymarchingLightsWorldCoordsDependent":false}},"customDepthDOFMaterial":{"material":{"metadata":{"version":4.5,"type":"Material","generator":"Material.toJSON"},"uuid":"/geo1/MAT/meshBasicBuilder_DEBUG-customDepthDOFMaterial","type":"MeshDepthMaterial","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,"depthPacking":3200},"onBeforeCompileDataJSONWithoutShaders":{"paramConfigs":[],"timeDependent":true,"resolutionDependent":false,"raymarchingLightsWorldCoordsDependent":false}}}}}}},"material3":{"type":"material","params":{"material":"../MAT/meshPhysicalBuilder_SPHERE"},"inputs":["sphere2"]},"material4":{"type":"material","params":{"material":"../MAT/meshPhysical_BG"},"inputs":["plane1"]},"merge2":{"type":"merge","inputs":["material3","material4"],"flags":{"display":true}},"plane1":{"type":"plane","params":{"size":[16,16],"direction":[0,0,1],"center":[0,0,-2]}},"sphere2":{"type":"sphere","params":{"resolution":[80,80],"detail":100}}},"flags":{"display":true}},"perspectiveCamera1":{"type":"perspectiveCamera","nodes":{"events1":{"type":"eventsNetwork","nodes":{"cameraOrbitControls1":{"type":"cameraOrbitControls","params":{"target":[0.09873420203120861,0.020818448783575912,-0.10770153630558416]}}}}},"params":{"t":[0.15791936851546773,0.04359540872872922,4.180515432931118],"r":[-0.3043249471764122,0.7907242456656788,0.004199816115973924],"controls":"./events1/cameraOrbitControls1"},"flags":{"display":true}},"COP":{"type":"copNetwork","nodes":{"envMap":{"type":"envMap","inputs":["imageEnv"]},"imageEnv":{"type":"imageEXR","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}}}},"lights":{"type":"geo","nodes":{"areaLight1":{"type":"areaLight"},"areaLight2":{"type":"areaLight","params":{"width":5.4}},"hemisphereLight1":{"type":"hemisphereLight","params":{"intensity":0.58}},"merge1":{"type":"merge","inputs":["polarTransform1","polarTransform2","hemisphereLight1"],"flags":{"display":true}},"polarTransform1":{"type":"polarTransform","params":{"longitude":-115.2,"latitude":54,"depth":1.7},"inputs":["areaLight1"]},"polarTransform2":{"type":"polarTransform","params":{"longitude":-309.6,"latitude":14.4,"depth":1.7},"inputs":["areaLight2"]}},"flags":{"display":true}}},"params":{"mainCameraPath":"/perspectiveCamera1"}},"ui":{"nodes":{"geo1":{"pos":[250,-150],"nodes":{"COP":{"pos":[-250,250],"nodes":{"builder1":{"pos":[-250,0],"nodes":{"floatToVec3_1":{"pos":[500,250]},"floatToVec3_2":{"pos":[150,500]},"floatToVec3_4":{"pos":[-50,250]},"globals1":{"pos":[-500,200]},"globals2":{"pos":[-200,500]},"multAdd1":{"pos":[0,500]},"multAdd4":{"pos":[-300,250]},"noise1":{"pos":[300,250]},"output1":{"pos":[600,200]},"polarToCartesian3":{"pos":[100,250]},"vec2ToFloat2":{"pos":[-200,250]}}}}},"MAT":{"pos":[-250,150],"nodes":{"meshPhysicalBuilder_SPHERE":{"pos":[0,500],"selection":["constant1"],"nodes":{"constant1":{"pos":[-50,-200]},"globals1":{"pos":[-400,0]},"output1":{"pos":[200,0]}}},"meshPhysical_BG":{"pos":[0,650]},"meshBasicBuilder_DEBUG":{"pos":[0,300],"selection":["floatToVec3_3","multAdd3","polarToCartesian2","vec2ToFloat1"],"nodes":{"add1":{"pos":[-50,0]},"add2":{"pos":[600,-400]},"cartesianToPolar1":{"pos":[-550,100]},"constant1":{"pos":[-400,-100]},"constant2":{"pos":[-400,-200]},"cycle1":{"pos":[450,300]},"cycle2":{"pos":[450,450]},"cycle3":{"pos":[450,600]},"cycle4":{"pos":[150,-150]},"divide1":{"pos":[-150,-200]},"divide2":{"pos":[-150,-300]},"floatToVec3_1":{"pos":[-450,350]},"floatToVec3_2":{"pos":[250,-350]},"floatToVec3_3":{"pos":[0,400]},"floatToVec3_4":{"pos":[650,400]},"floatToVec3_5":{"pos":[300,-500]},"globals1":{"pos":[-750,0]},"globals2":{"pos":[450,-450]},"mod1":{"pos":[-50,-400]},"mult1":{"pos":[-700,-250]},"multAdd1":{"pos":[-600,350]},"multAdd2":{"pos":[0,-250]},"multAdd3":{"pos":[-250,400]},"noise1":{"pos":[-200,150]},"output1":{"pos":[800,0]},"polarToCartesian1":{"pos":[-700,-150]},"polarToCartesian2":{"pos":[150,400]},"vec2ToFloat1":{"pos":[-150,400]},"vec3ToFloat1":{"pos":[-450,-350]},"vec3ToFloat2":{"pos":[300,400]}}}}},"material3":{"pos":[-50,200]},"material4":{"pos":[250,150]},"merge2":{"pos":[100,350]},"plane1":{"pos":[250,0]},"sphere2":{"pos":[-50,0]}}},"perspectiveCamera1":{"pos":[100,100],"nodes":{"events1":{"pos":[-200,50],"nodes":{"cameraOrbitControls1":{"pos":[150,50]}}}}},"COP":{"pos":[100,200],"nodes":{"envMap":{"pos":[50,200]},"imageEnv":{"pos":[50,100]},"imageUv":{"pos":[-100,100]}}},"lights":{"pos":[250,-50],"nodes":{"areaLight1":{"pos":[50,-100]},"areaLight2":{"pos":[350,-100]},"hemisphereLight1":{"pos":[600,50]},"merge1":{"pos":[200,300]},"polarTransform1":{"pos":[50,50]},"polarTransform2":{"pos":[350,50]}}}}},"shaders":{"/geo1/COP/builder1":{"fragment":"#include <common>\n\nuniform vec2 resolution;\n\n// removed:\n//// INSERT DEFINE\n\n\n\n// /geo1/COP/builder1/polarToCartesian3\nvec3 cartesianToPolar(vec3 w){\n\tfloat wr = sqrt(dot(w,w));\n\tfloat wo = acos(w.y/wr);\n\tfloat wi = atan(w.x,w.z);\n\treturn vec3(wr,wo,wi);\n}\nvec3 polarToCartesian(vec3 p){\n\tfloat x = p.x * sin(p.y)*sin(p.z);\n\tfloat y = p.x * cos(p.y);\n\tfloat z = p.x * sin(p.y)*cos(p.z);\n\treturn vec3(x,y,z);\n}\n\n// /geo1/COP/builder1/noise1\n// Modulo 289 without a division (only multiplications)\nfloat mod289(float x) {\n return x - floor(x * (1.0 / 289.0)) * 289.0;\n}\nvec2 mod289(vec2 x) {\n return x - floor(x * (1.0 / 289.0)) * 289.0;\n}\nvec3 mod289(vec3 x) {\n return x - floor(x * (1.0 / 289.0)) * 289.0;\n}\nvec4 mod289(vec4 x) {\n return x - floor(x * (1.0 / 289.0)) * 289.0;\n}\n// Modulo 7 without a division\nvec3 mod7(vec3 x) {\n return x - floor(x * (1.0 / 7.0)) * 7.0;\n}\n\n// Permutation polynomial: (34x^2 + x) mod 289\nfloat permute(float x) {\n return mod289(((x*34.0)+1.0)*x);\n}\nvec3 permute(vec3 x) {\n return mod289((34.0 * x + 1.0) * x);\n}\nvec4 permute(vec4 x) {\n return mod289(((x*34.0)+1.0)*x);\n}\n\nfloat taylorInvSqrt(float r)\n{\n return 1.79284291400159 - 0.85373472095314 * r;\n}\nvec4 taylorInvSqrt(vec4 r)\n{\n return 1.79284291400159 - 0.85373472095314 * r;\n}\n\nvec2 fade(vec2 t) {\n return t*t*t*(t*(t*6.0-15.0)+10.0);\n}\nvec3 fade(vec3 t) {\n return t*t*t*(t*(t*6.0-15.0)+10.0);\n}\nvec4 fade(vec4 t) {\n return t*t*t*(t*(t*6.0-15.0)+10.0);\n}\n//\n// Description : Array and textureless GLSL 2D/3D/4D simplex \n// noise functions.\n// Author : Ian McEwan, Ashima Arts.\n// Maintainer : stegu\n// Lastmod : 20110822 (ijm)\n// License : Copyright (C) 2011 Ashima Arts. All rights reserved.\n// Distributed under the MIT License. See LICENSE file.\n// https://github.com/ashima/webgl-noise\n// https://github.com/stegu/webgl-noise\n// \n\n\n\nfloat snoise(vec3 v)\n { \n const vec2 C = vec2(1.0/6.0, 1.0/3.0) ;\n const vec4 D = vec4(0.0, 0.5, 1.0, 2.0);\n\n// First corner\n vec3 i = floor(v + dot(v, C.yyy) );\n vec3 x0 = v - i + dot(i, C.xxx) ;\n\n// Other corners\n vec3 g = step(x0.yzx, x0.xyz);\n vec3 l = 1.0 - g;\n vec3 i1 = min( g.xyz, l.zxy );\n vec3 i2 = max( g.xyz, l.zxy );\n\n // x0 = x0 - 0.0 + 0.0 * C.xxx;\n // x1 = x0 - i1 + 1.0 * C.xxx;\n // x2 = x0 - i2 + 2.0 * C.xxx;\n // x3 = x0 - 1.0 + 3.0 * C.xxx;\n vec3 x1 = x0 - i1 + C.xxx;\n vec3 x2 = x0 - i2 + C.yyy; // 2.0*C.x = 1/3 = C.y\n vec3 x3 = x0 - D.yyy; // -1.0+3.0*C.x = -0.5 = -D.y\n\n// Permutations\n i = mod289(i); \n vec4 p = permute( permute( permute( \n i.z + vec4(0.0, i1.z, i2.z, 1.0 ))\n + i.y + vec4(0.0, i1.y, i2.y, 1.0 )) \n + i.x + vec4(0.0, i1.x, i2.x, 1.0 ));\n\n// Gradients: 7x7 points over a square, mapped onto an octahedron.\n// The ring size 17*17 = 289 is close to a multiple of 49 (49*6 = 294)\n float n_ = 0.142857142857; // 1.0/7.0\n vec3 ns = n_ * D.wyz - D.xzx;\n\n vec4 j = p - 49.0 * floor(p * ns.z * ns.z); // mod(p,7*7)\n\n vec4 x_ = floor(j * ns.z);\n vec4 y_ = floor(j - 7.0 * x_ ); // mod(j,N)\n\n vec4 x = x_ *ns.x + ns.yyyy;\n vec4 y = y_ *ns.x + ns.yyyy;\n vec4 h = 1.0 - abs(x) - abs(y);\n\n vec4 b0 = vec4( x.xy, y.xy );\n vec4 b1 = vec4( x.zw, y.zw );\n\n //vec4 s0 = vec4(lessThan(b0,0.0))*2.0 - 1.0;\n //vec4 s1 = vec4(lessThan(b1,0.0))*2.0 - 1.0;\n vec4 s0 = floor(b0)*2.0 + 1.0;\n vec4 s1 = floor(b1)*2.0 + 1.0;\n vec4 sh = -step(h, vec4(0.0));\n\n vec4 a0 = b0.xzyw + s0.xzyw*sh.xxyy ;\n vec4 a1 = b1.xzyw + s1.xzyw*sh.zzww ;\n\n vec3 p0 = vec3(a0.xy,h.x);\n vec3 p1 = vec3(a0.zw,h.y);\n vec3 p2 = vec3(a1.xy,h.z);\n vec3 p3 = vec3(a1.zw,h.w);\n\n//Normalise gradients\n vec4 norm = taylorInvSqrt(vec4(dot(p0,p0), dot(p1,p1), dot(p2, p2), dot(p3,p3)));\n p0 *= norm.x;\n p1 *= norm.y;\n p2 *= norm.z;\n p3 *= norm.w;\n\n// Mix final noise value\n vec4 m = max(0.6 - vec4(dot(x0,x0), dot(x1,x1), dot(x2,x2), dot(x3,x3)), 0.0);\n m = m * m;\n return 42.0 * dot( m*m, vec4( dot(p0,x0), dot(p1,x1), \n dot(p2,x2), dot(p3,x3) ) );\n }\n\n\nfloat fbm_snoise_geo1_COP_builder1_noise1(in vec3 st) {\n\tfloat value = 0.0;\n\tfloat amplitude = 1.0;\n\tfor (int i = 0; i < 3; i++) {\n\t\tvalue += amplitude * snoise(st);\n\t\tst *= 2.0;\n\t\tamplitude *= 0.5;\n\t}\n\treturn value;\n}\n\n\n\n\n\n\n\n\n// /geo1/COP/builder1/globals2\nuniform float time;\n\n\n\n\n\nvoid main() {\n\n\tvec4 diffuseColor = vec4(0.0,0.0,0.0,1.0);\n\n\n// removed:\n//\t// INSERT BODY\n\n\n\n\t// /geo1/COP/builder1/globals1\n\tvec2 v_POLY_globals1_uv = vec2(gl_FragCoord.x / (resolution.x-1.), gl_FragCoord.y / (resolution.y-1.));\n\t\n\t// /geo1/COP/builder1/globals2\n\tfloat v_POLY_globals2_time = time;\n\t\n\t// /geo1/COP/builder1/multAdd4\n\tvec2 v_POLY_multAdd4_val = (vec2(6.283185307179586, 3.141592653589793)*(v_POLY_globals1_uv + vec2(0.0, 0.0))) + vec2(0.0, 0.0);\n\t\n\t// /geo1/COP/builder1/multAdd1\n\tfloat v_POLY_multAdd1_val = (0.31*(v_POLY_globals2_time + 0.0)) + 0.0;\n\t\n\t// /geo1/COP/builder1/vec2ToFloat2\n\tfloat v_POLY_vec2ToFloat2_y = v_POLY_multAdd4_val.y;\n\tfloat v_POLY_vec2ToFloat2_x = v_POLY_multAdd4_val.x;\n\t\n\t// /geo1/COP/builder1/floatToVec3_2\n\tvec3 v_POLY_floatToVec3_2_vec3 = vec3(0.0, v_POLY_multAdd1_val, v_POLY_multAdd1_val);\n\t\n\t// /geo1/COP/builder1/floatToVec3_4\n\tvec3 v_POLY_floatToVec3_4_vec3 = vec3(1.0, v_POLY_vec2ToFloat2_y, v_POLY_vec2ToFloat2_x);\n\t\n\t// /geo1/COP/builder1/polarToCartesian3\n\tvec3 v_POLY_polarToCartesian3_xyz = polarToCartesian(v_POLY_floatToVec3_4_vec3);\n\t\n\t// /geo1/COP/builder1/noise1\n\tfloat v_POLY_noise1_noise = 1.6*fbm_snoise_geo1_COP_builder1_noise1((v_POLY_polarToCartesian3_xyz*vec3(0.39999999999999997, 0.39999999999999997, 0.39999999999999997))+v_POLY_floatToVec3_2_vec3);\n\t\n\t// /geo1/COP/builder1/floatToVec3_1\n\tvec3 v_POLY_floatToVec3_1_vec3 = vec3(v_POLY_noise1_noise, v_POLY_noise1_noise, v_POLY_noise1_noise);\n\t\n\t// /geo1/COP/builder1/output1\n\tdiffuseColor.xyz = v_POLY_floatToVec3_1_vec3;\n\n\n\n\n\tgl_FragColor = vec4( diffuseColor );\n}"},"/geo1/MAT/meshPhysicalBuilder_SPHERE":{"vertex":"#define STANDARD\nvarying vec3 vViewPosition;\n#ifdef USE_TRANSMISSION\n\tvarying vec3 vWorldPosition;\n#endif\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 <normal_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>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <uv2_vertex>\n\t#include <color_vertex>\n\n\n\n\t// /geo1/MAT/meshPhysicalBuilder_SPHERE/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 <morphcolor_vertex>\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\t#include <normal_vertex>\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\tvViewPosition = - mvPosition.xyz;\n\t#include <worldpos_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n#ifdef USE_TRANSMISSION\n\tvWorldPosition = worldPosition.xyz;\n#endif\n}","fragment":"#define STANDARD\n#ifdef PHYSICAL\n\t#define IOR\n\t#define SPECULAR\n#endif\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float roughness;\nuniform float metalness;\nuniform float opacity;\n#ifdef IOR\n\tuniform float ior;\n#endif\n#ifdef SPECULAR\n\tuniform float specularIntensity;\n\tuniform vec3 specularColor;\n\t#ifdef USE_SPECULARINTENSITYMAP\n\t\tuniform sampler2D specularIntensityMap;\n\t#endif\n\t#ifdef USE_SPECULARCOLORMAP\n\t\tuniform sampler2D specularColorMap;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT\n\tuniform float clearcoat;\n\tuniform float clearcoatRoughness;\n#endif\n#ifdef USE_IRIDESCENCE\n\tuniform float iridescence;\n\tuniform float iridescenceIOR;\n\tuniform float iridescenceThicknessMinimum;\n\tuniform float iridescenceThicknessMaximum;\n#endif\n#ifdef USE_SHEEN\n\tuniform vec3 sheenColor;\n\tuniform float sheenRoughness;\n\t#ifdef USE_SHEENCOLORMAP\n\t\tuniform sampler2D sheenColorMap;\n\t#endif\n\t#ifdef USE_SHEENROUGHNESSMAP\n\t\tuniform sampler2D sheenRoughnessMap;\n\t#endif\n#endif\nvarying vec3 vViewPosition;\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 <alphatest_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <emissivemap_pars_fragment>\n#include <bsdfs>\n#include <iridescence_fragment>\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 <normal_pars_fragment>\n#include <lights_physical_pars_fragment>\n#include <transmission_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <clearcoat_pars_fragment>\n#include <iridescence_pars_fragment>\n#include <roughnessmap_pars_fragment>\n#include <metalnessmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\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\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\n\n\n\t// /geo1/MAT/meshPhysicalBuilder_SPHERE/constant1\n\tvec3 v_POLY_constant1_val = vec3(0.38823529411764707, 0.3215686274509804, 0.6549019607843137);\n\t\n\t// /geo1/MAT/meshPhysicalBuilder_SPHERE/output1\n\tdiffuseColor.xyz = v_POLY_constant1_val;\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\tfloat POLY_transmission = 1.0;\n\tfloat POLY_thickness = 1.0;\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\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 <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\t#include <aomap_fragment>\n\tvec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;\n\tvec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;\n\t\n#ifdef USE_TRANSMISSION\n\n\tmaterial.transmission = transmission * POLY_transmission;\n\tmaterial.transmissionAlpha = 1.0;\n\tmaterial.thickness = thickness * POLY_thickness;\n\tmaterial.attenuationDistance = attenuationDistance;\n\tmaterial.attenuationColor = attenuationColor;\n\n\t#ifdef USE_TRANSMISSIONMAP\n\n\t\tmaterial.transmission *= texture2D( transmissionMap, vUv ).r;\n\n\t#endif\n\n\t#ifdef USE_THICKNESSMAP\n\n\t\tmaterial.thickness *= texture2D( thicknessMap, vUv ).g;\n\n\t#endif\n\n\tvec3 pos = vWorldPosition;\n\tvec3 v = normalize( cameraPosition - pos );\n\tvec3 n = inverseTransformDirection( normal, viewMatrix );\n\n\tvec4 transmission = getIBLVolumeRefraction(\n\t\tn, v, material.roughness, material.diffuseColor, material.specularColor, material.specularF90,\n\t\tpos, modelMatrix, viewMatrix, projectionMatrix, material.ior, material.thickness,\n\t\tmaterial.attenuationColor, material.attenuationDistance );\n\n\tmaterial.transmissionAlpha = mix( material.transmissionAlpha, transmission.a, material.transmission );\n\n\ttotalDiffuse = mix( totalDiffuse, transmission.rgb, material.transmission );\n\n#endif\n\n\tvec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance;\n\t#ifdef USE_SHEEN\n\t\tfloat sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor );\n\t\toutgoingLight = outgoingLight * sheenEnergyComp + sheenSpecular;\n\t#endif\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNVcc = saturate( dot( geometry.clearcoatNormal, geometry.viewDir ) );\n\t\tvec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc );\n\t\toutgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + clearcoatSpecular * material.clearcoat;\n\t#endif\n\t#include <output_fragment>\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}","customDepthMaterial.vertex":"#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>\nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\t#include <uv_vertex>\n\t#include <skinbase_vertex>\n\t#ifdef USE_DISPLACEMENTMAP\n// removed:\n//\t\t#include <beginnormal_vertex>\n\t\t#include <morphnormal_vertex>\n\t\t#include <skinnormal_vertex>\n\t#endif\n// removed:\n//\t#include <begin_vertex>\n\n\n\n\t// /geo1/MAT/meshPhysicalBuilder_SPHERE/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\tvHighPrecisionZW = gl_Position.zw;\n}","customDepthMaterial.fragment":"\n// INSERT DEFINES\n\n\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 <alphatest_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\t#if DEPTH_PACKING == 3200\n\n\t\tdiffuseColor.a = opacity;\n\n\t#endif\n\n\n\t#include <map_fragment>\n\t#include <alphamap_fragment>\n\n\n\n\t// /geo1/MAT/meshPhysicalBuilder_SPHERE/constant1\n\tvec3 v_POLY_constant1_val = vec3(0.38823529411764707, 0.3215686274509804, 0.6549019607843137);\n\t\n\t// /geo1/MAT/meshPhysicalBuilder_SPHERE/output1\n\tdiffuseColor.xyz = v_POLY_constant1_val;\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\tfloat POLY_transmission = 1.0;\n\tfloat POLY_thickness = 1.0;\n\n\n\n\n\t// INSERT BODY\n\t// the new body lines should be added before the alphatest_fragment\n\t// so that alpha is set before (which is really how it would be set if the alphamap_fragment above was used by the material node parameters)\n\n\t#include <alphatest_fragment>\n\n\t#include <logdepthbuf_fragment>\n\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 ), diffuseColor.a );\n\n\t#elif DEPTH_PACKING == 3201\n\n\t\tgl_FragColor = packDepthToRGBA( fragCoordZ );\n\n\t#endif\n\n}\n","customDistanceMaterial.vertex":"#define DISTANCE\nvarying vec3 vWorldPosition;\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>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <skinbase_vertex>\n\t#ifdef USE_DISPLACEMENTMAP\n// removed:\n//\t\t#include <beginnormal_vertex>\n\t\t#include <morphnormal_vertex>\n\t\t#include <skinnormal_vertex>\n\t#endif\n// removed:\n//\t#include <begin_vertex>\n\n\n\n\t// /geo1/MAT/meshPhysicalBuilder_SPHERE/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\tvWorldPosition = worldPosition.xyz;\n}","customDistanceMaterial.fragment":"\n// INSERT DEFINES\n\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 <alphatest_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\t#include <map_fragment>\n\t#include <alphamap_fragment>\n\n\n\n\t// /geo1/MAT/meshPhysicalBuilder_SPHERE/constant1\n\tvec3 v_POLY_constant1_val = vec3(0.38823529411764707, 0.3215686274509804, 0.6549019607843137);\n\t\n\t// /geo1/MAT/meshPhysicalBuilder_SPHERE/output1\n\tdiffuseColor.xyz = v_POLY_constant1_val;\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\tfloat POLY_transmission = 1.0;\n\tfloat POLY_thickness = 1.0;\n\n\n\n\n\t// INSERT BODY\n\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","customDepthDOFMaterial.vertex":"#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>\nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\t#include <uv_vertex>\n\t#include <skinbase_vertex>\n\t#ifdef USE_DISPLACEMENTMAP\n// removed:\n//\t\t#include <beginnormal_vertex>\n\t\t#include <morphnormal_vertex>\n\t\t#include <skinnormal_vertex>\n\t#endif\n// removed:\n//\t#include <begin_vertex>\n\n\n\n\t// /geo1/MAT/meshPhysicalBuilder_SPHERE/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\tvHighPrecisionZW = gl_Position.zw;\n}","customDepthDOFMaterial.fragment":"\n// INSERT DEFINES\n\n\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 <alphatest_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\t#if DEPTH_PACKING == 3200\n\n\t\tdiffuseColor.a = opacity;\n\n\t#endif\n\n\n\t#include <map_fragment>\n\t#include <alphamap_fragment>\n\n\n\n\t// /geo1/MAT/meshPhysicalBuilder_SPHERE/constant1\n\tvec3 v_POLY_constant1_val = vec3(0.38823529411764707, 0.3215686274509804, 0.6549019607843137);\n\t\n\t// /geo1/MAT/meshPhysicalBuilder_SPHERE/output1\n\tdiffuseColor.xyz = v_POLY_constant1_val;\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\tfloat POLY_transmission = 1.0;\n\tfloat POLY_thickness = 1.0;\n\n\n\n\n\t// INSERT BODY\n\t// the new body lines should be added before the alphatest_fragment\n\t// so that alpha is set before (which is really how it would be set if the alphamap_fragment above was used by the material node parameters)\n\n\t#include <alphatest_fragment>\n\n\t#include <logdepthbuf_fragment>\n\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 ), diffuseColor.a );\n\n\t#elif DEPTH_PACKING == 3201\n\n\t\tgl_FragColor = packDepthToRGBA( fragCoordZ );\n\n\t#endif\n\n}\n"},"/geo1/MAT/meshBasicBuilder_DEBUG":{"vertex":"#include <common>\n\n\n\n// /geo1/MAT/meshBasicBuilder1/polarToCartesian2\nvec3 cartesianToPolar(vec3 w){\n\tfloat wr = sqrt(dot(w,w));\n\tfloat wo = acos(w.y/wr);\n\tfloat wi = atan(w.x,w.z);\n\treturn vec3(wr,wo,wi);\n}\nvec3 polarToCartesian(vec3 p){\n\tfloat x = p.x * sin(p.y)*sin(p.z);\n\tfloat y = p.x * cos(p.y);\n\tfloat z = p.x * sin(p.y)*cos(p.z);\n\treturn vec3(x,y,z);\n}\n\n\n\n\n\n\n\n// /geo1/MAT/meshBasicBuilder1/globals1\nuniform float time;\n\n// /geo1/MAT/meshBasicBuilder1/globals1\nvarying vec3 v_POLY_globals1_position;\nvarying vec2 v_POLY_globals1_uv;\n\n\n\n\n#include <uv_pars_vertex>\n#include <uv2_pars_vertex>\n#include <envmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <uv2_vertex>\n\t#include <color_vertex>\n\n\n\n\t// /geo1/MAT/meshBasicBuilder1/globals1\n\tv_POLY_globals1_position = vec3(position);\n\tv_POLY_globals1_uv = vec2(uv);\n\tfloat v_POLY_globals1_time = time;\n\t\n\t// /geo1/MAT/meshBasicBuilder1/multAdd3\n\tvec2 v_POLY_multAdd3_val = (vec2(6.283185307179586, 3.141592653589793)*(v_POLY_globals1_uv + vec2(0.0, 0.0))) + vec2(0.0, 0.0);\n\t\n\t// /geo1/MAT/meshBasicBuilder1/vec2ToFloat1\n\tfloat v_POLY_vec2ToFloat1_y = v_POLY_multAdd3_val.y;\n\tfloat v_POLY_vec2ToFloat1_x = v_POLY_multAdd3_val.x;\n\t\n\t// /geo1/MAT/meshBasicBuilder1/floatToVec3_3\n\tvec3 v_POLY_floatToVec3_3_vec3 = vec3(1.0, v_POLY_vec2ToFloat1_y, v_POLY_vec2ToFloat1_x);\n\t\n\t// /geo1/MAT/meshBasicBuilder1/polarToCartesian2\n\tvec3 v_POLY_polarToCartesian2_xyz = polarToCartesian(v_POLY_floatToVec3_3_vec3);\n\t\n\t// /geo1/MAT/meshBasicBuilder1/output1\n\tvec3 transformed = v_POLY_polarToCartesian2_xyz;\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 <morphcolor_vertex>\n\t#if defined ( USE_ENVMAP ) || defined ( USE_SKINNING )\n// removed:\n//\t\t#include <beginnormal_vertex>\n\t\t#include <morphnormal_vertex>\n\t\t#include <skinbase_vertex>\n\t\t#include <skinnormal_vertex>\n\t\t#include <defaultnormal_vertex>\n\t#endif\n// removed:\n//\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <worldpos_vertex>\n\t#include <envmap_vertex>\n\t#include <fog_vertex>\n}","fragment":"uniform vec3 diffuse;\nuniform float opacity;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include <common>\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 <alphatest_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <envmap_common_pars_fragment>\n#include <envmap_pars_fragment>\n#include <fog_pars_fragment>\n#include <specularmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( diffuse, opacity );\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\t#include <specularmap_fragment>\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel = texture2D( lightMap, vUv2 );\n\t\treflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity * RECIPROCAL_PI;\n\t#else\n\t\treflectedLight.indirectDiffuse += vec3( 1.0 );\n\t#endif\n\t#include <aomap_fragment>\n\treflectedLight.indirectDiffuse *= diffuseColor.rgb;\n\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\n\t#include <envmap_fragment>\n\t#include <output_fragment>\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}","customDepthMaterial.vertex":"#include <common>\n\n\n\n// /geo1/MAT/meshBasicBuilder1/polarToCartesian2\nvec3 cartesianToPolar(vec3 w){\n\tfloat wr = sqrt(dot(w,w));\n\tfloat wo = acos(w.y/wr);\n\tfloat wi = atan(w.x,w.z);\n\treturn vec3(wr,wo,wi);\n}\nvec3 polarToCartesian(vec3 p){\n\tfloat x = p.x * sin(p.y)*sin(p.z);\n\tfloat y = p.x * cos(p.y);\n\tfloat z = p.x * sin(p.y)*cos(p.z);\n\treturn vec3(x,y,z);\n}\n\n\n\n\n\n\n\n// /geo1/MAT/meshBasicBuilder1/globals1\nuniform float time;\n\n// /geo1/MAT/meshBasicBuilder1/globals1\nvarying vec3 v_POLY_globals1_position;\nvarying vec2 v_POLY_globals1_uv;\n\n\n\n\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>\nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\t#include <uv_vertex>\n\t#include <skinbase_vertex>\n\t#ifdef USE_DISPLACEMENTMAP\n// removed:\n//\t\t#include <beginnormal_vertex>\n\t\t#include <morphnormal_vertex>\n\t\t#include <skinnormal_vertex>\n\t#endif\n// removed:\n//\t#include <begin_vertex>\n\n\n\n\t// /geo1/MAT/meshBasicBuilder1/globals1\n\tv_POLY_globals1_position = vec3(position);\n\tv_POLY_globals1_uv = vec2(uv);\n\tfloat v_POLY_globals1_time = time;\n\t\n\t// /geo1/MAT/meshBasicBuilder1/multAdd3\n\tvec2 v_POLY_multAdd3_val = (vec2(6.283185307179586, 3.141592653589793)*(v_POLY_globals1_uv + vec2(0.0, 0.0))) + vec2(0.0, 0.0);\n\t\n\t// /geo1/MAT/meshBasicBuilder1/vec2ToFloat1\n\tfloat v_POLY_vec2ToFloat1_y = v_POLY_multAdd3_val.y;\n\tfloat v_POLY_vec2ToFloat1_x = v_POLY_multAdd3_val.x;\n\t\n\t// /geo1/MAT/meshBasicBuilder1/floatToVec3_3\n\tvec3 v_POLY_floatToVec3_3_vec3 = vec3(1.0, v_POLY_vec2ToFloat1_y, v_POLY_vec2ToFloat1_x);\n\t\n\t// /geo1/MAT/meshBasicBuilder1/polarToCartesian2\n\tvec3 v_POLY_polarToCartesian2_xyz = polarToCartesian(v_POLY_floatToVec3_3_vec3);\n\t\n\t// /geo1/MAT/meshBasicBuilder1/output1\n\tvec3 transformed = v_POLY_polarToCartesian2_xyz;\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\tvHighPrecisionZW = gl_Position.zw;\n}","customDepthMaterial.fragment":"\n// INSERT DEFINES\n\n\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 <alphatest_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\n\nvarying vec2 vHighPrecisionZW;\n\nvoid main() {\n\n\t#include <clipping_planes_fragment>\n\n\tvec4 diffuseColor = vec4( 1.0 );\n\n\t#if DEPTH_PACKING == 3200\n\n\t\tdiffuseColor.a = opacity;\n\n\t#endif\n\n\n\t#include <map_fragment>\n\t#include <alphamap_fragment>\n\n\t// INSERT BODY\n\t// the new body lines should be added before the alphatest_fragment\n\t// so that alpha is set before (which is really how it would be set if the alphamap_fragment above was used by the material node parameters)\n\n\t#include <alphatest_fragment>\n\n\t#include <logdepthbuf_fragment>\n\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 ), diffuseColor.a );\n\n\t#elif DEPTH_PACKING == 3201\n\n\t\tgl_FragColor = packDepthToRGBA( fragCoordZ );\n\n\t#endif\n\n}\n","customDistanceMaterial.vertex":"#define DISTANCE\nvarying vec3 vWorldPosition;\n#include <common>\n\n\n\n// /geo1/MAT/meshBasicBuilder1/polarToCartesian2\nvec3 cartesianToPolar(vec3 w){\n\tfloat wr = sqrt(dot(w,w));\n\tfloat wo = acos(w.y/wr);\n\tfloat wi = atan(w.x,w.z);\n\treturn vec3(wr,wo,wi);\n}\nvec3 polarToCartesian(vec3 p){\n\tfloat x = p.x * sin(p.y)*sin(p.z);\n\tfloat y = p.x * cos(p.y);\n\tfloat z = p.x * sin(p.y)*cos(p.z);\n\treturn vec3(x,y,z);\n}\n\n\n\n\n\n\n\n// /geo1/MAT/meshBasicBuilder1/globals1\nuniform float time;\n\n// /geo1/MAT/meshBasicBuilder1/globals1\nvarying vec3 v_POLY_globals1_position;\nvarying vec2 v_POLY_globals1_uv;\n\n\n\n\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>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <skinbase_vertex>\n\t#ifdef USE_DISPLACEMENTMAP\n// removed:\n//\t\t#include <beginnormal_vertex>\n\t\t#include <morphnormal_vertex>\n\t\t#include <skinnormal_vertex>\n\t#endif\n// removed:\n//\t#include <begin_vertex>\n\n\n\n\t// /geo1/MAT/meshBasicBuilder1/globals1\n\tv_POLY_globals1_position = vec3(position);\n\tv_POLY_globals1_uv = vec2(uv);\n\tfloat v_POLY_globals1_time = time;\n\t\n\t// /geo1/MAT/meshBasicBuilder1/multAdd3\n\tvec2 v_POLY_multAdd3_val = (vec2(6.283185307179586, 3.141592653589793)*(v_POLY_globals1_uv + vec2(0.0, 0.0))) + vec2(0.0, 0.0);\n\t\n\t// /geo1/MAT/meshBasicBuilder1/vec2ToFloat1\n\tfloat v_POLY_vec2ToFloat1_y = v_POLY_multAdd3_val.y;\n\tfloat v_POLY_vec2ToFloat1_x = v_POLY_multAdd3_val.x;\n\t\n\t// /geo1/MAT/meshBasicBuilder1/floatToVec3_3\n\tvec3 v_POLY_floatToVec3_3_vec3 = vec3(1.0, v_POLY_vec2ToFloat1_y, v_POLY_vec2ToFloat1_x);\n\t\n\t// /geo1/MAT/meshBasicBuilder1/polarToCartesian2\n\tvec3 v_POLY_polarToCartesian2_xyz = polarToCartesian(v_POLY_floatToVec3_3_vec3);\n\t\n\t// /geo1/MAT/meshBasicBuilder1/output1\n\tvec3 transformed = v_POLY_polarToCartesian2_xyz;\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\tvWorldPosition = worldPosition.xyz;\n}","customDistanceMaterial.fragment":"\n// INSERT DEFINES\n\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 <alphatest_pars_fragment>\n#include <clipping_planes_pars_fragment>\n\nvoid main () {\n\n\t#include <clipping_planes_fragment>\n\n\tvec4 diffuseColor = vec4( 1.0 );\n\n\t#include <map_fragment>\n\t#include <alphamap_fragment>\n\n\t// INSERT BODY\n\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","customDepthDOFMaterial.vertex":"#include <common>\n\n\n\n// /geo1/MAT/meshBasicBuilder1/polarToCartesian2\nvec3 cartesianToPolar(vec3 w){\n\tfloat wr = sqrt(dot(w,w));\n\tfloat wo = acos(w.y/wr);\n\tfloat wi = atan(w.x,w.z);\n\treturn vec3(wr,wo,wi);\n}\nvec3 polarToCartesian(vec3 p){\n\tfloat x = p.x * sin(p.y)*sin(p.z);\n\tfloat y = p.x * cos(p.y);\n\tfloat z = p.x * sin(p.y)*cos(p.z);\n\treturn vec3(x,y,z);\n}\n\n\n\n\n\n\n\n// /geo1/MAT/meshBasicBuilder1/globals1\nuniform float time;\n\n// /geo1/MAT/meshBasicBuilder1/globals1\nvarying vec3 v_POLY_globals1_position;\nvarying vec2 v_POLY_globals1_uv;\n\n\n\n\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>\nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\t#include <uv_vertex>\n\t#include <skinbase_vertex>\n\t#ifdef USE_DISPLACEMENTMAP\n// removed:\n//\t\t#include <beginnormal_vertex>\n\t\t#include <morphnormal_vertex>\n\t\t#include <skinnormal_vertex>\n\t#endif\n// removed:\n//\t#include <begin_vertex>\n\n\n\n\t// /geo1/MAT/meshBasicBuilder1/globals1\n\tv_POLY_globals1_position = vec3(position);\n\tv_POLY_globals1_uv = vec2(uv);\n\tfloat v_POLY_globals1_time = time;\n\t\n\t// /geo1/MAT/meshBasicBuilder1/multAdd3\n\tvec2 v_POLY_multAdd3_val = (vec2(6.283185307179586, 3.141592653589793)*(v_POLY_globals1_uv + vec2(0.0, 0.0))) + vec2(0.0, 0.0);\n\t\n\t// /geo1/MAT/meshBasicBuilder1/vec2ToFloat1\n\tfloat v_POLY_vec2ToFloat1_y = v_POLY_multAdd3_val.y;\n\tfloat v_POLY_vec2ToFloat1_x = v_POLY_multAdd3_val.x;\n\t\n\t// /geo1/MAT/meshBasicBuilder1/floatToVec3_3\n\tvec3 v_POLY_floatToVec3_3_vec3 = vec3(1.0, v_POLY_vec2ToFloat1_y, v_POLY_vec2ToFloat1_x);\n\t\n\t// /geo1/MAT/meshBasicBuilder1/polarToCartesian2\n\tvec3 v_POLY_polarToCartesian2_xyz = polarToCartesian(v_POLY_floatToVec3_3_vec3);\n\t\n\t// /geo1/MAT/meshBasicBuilder1/output1\n\tvec3 transformed = v_POLY_polarToCartesian2_xyz;\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\tvHighPrecisionZW = gl_Position.zw;\n}","customDepthDOFMaterial.fragment":"\n// INSERT DEFINES\n\n\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 <alphatest_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\n\nvarying vec2 vHighPrecisionZW;\n\nvoid main() {\n\n\t#include <clipping_planes_fragment>\n\n\tvec4 diffuseColor = vec4( 1.0 );\n\n\t#if DEPTH_PACKING == 3200\n\n\t\tdiffuseColor.a = opacity;\n\n\t#endif\n\n\n\t#include <map_fragment>\n\t#include <alphamap_fragment>\n\n\t// INSERT BODY\n\t// the new body lines should be added before the alphatest_fragment\n\t// so that alpha is set before (which is really how it would be set if the alphamap_fragment above was used by the material node parameters)\n\n\t#include <alphatest_fragment>\n\n\t#include <logdepthbuf_fragment>\n\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 ), diffuseColor.a );\n\n\t#elif DEPTH_PACKING == 3201\n\n\t\tgl_FragColor = packDepthToRGBA( fragCoordZ );\n\n\t#endif\n\n}\n"}}}
Code editor
{"multiple_panel":{"split_ratio":0.5,"split_panel0":{"split_ratio":0.5,"split_panel0":{"panelTypes":["viewer"],"currentPanelIndex":0,"panel_data":{"camera":"/perspectiveCamera1","isViewerInitLayoutData":true,"linkIndex":1}},"split_panel1":{"panelTypes":["params"],"currentPanelIndex":0,"panel_data":{"active_folder":1248,"linkIndex":1}},"split_mode":"vertical"},"split_panel1":{"panelTypes":["network","params","viewer"],"currentPanelIndex":0,"panel_data":{"camera":{"position":{"x":-34.66261464370743,"y":-267.36545914402666},"zoom":0.6690000000000002},"history":{"2":{"position":{"x":-406,"y":-28},"zoom":0.562},"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},"398":{"position":{"x":-225.44483985765135,"y":-217.7046263345196},"zoom":0.562},"424":{"position":{"x":250,"y":0},"zoom":0.562},"427":{"position":{"x":-34.66261464370743,"y":-267.36545914402666},"zoom":0.6690000000000002},"697":{"position":{"x":-441.2811387900356,"y":-454.80427046263344},"zoom":0.6244444444444446},"1241":{"position":{"x":32.740213523131686,"y":85.58718861209965},"zoom":0.6244444444444446},"2052":{"position":{"x":-317.10526315789474,"y":57.236842105263165},"zoom":0.6080000000000001}},"linkIndex":1}},"split_mode":"horizontal"},"currentNodes":["/geo1/COP/builder1","/","/","/","/","/","/","/"],"navigationHistory":{"nodePaths":{"1":["/","/geo1","/geo1/MAT","/geo1","/","/lights","/","/geo1","/geo1/MAT","/geo1/MAT/meshPhysicalBuilder_SPHERE","/geo1/MAT","/geo1/MAT/meshPhysicalBuilder_SPHERE","/geo1/MAT","/geo1","/geo1/COP","/geo1/COP/builder1"],"2":["/"],"3":["/"],"4":["/"],"5":["/"],"6":["/"],"7":["/"],"8":["/"]},"index":{"1":15,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0}},"fullscreenPanelId":null,"saveOptions":{"createExport":true,"checkRemoteAssetsUse":true,"minimizeFilesCount":false,"compressJs":true,"createZip":false,"runPostExportCommand":false},"paramsModal":[]}
Used nodes
cop/builder;cop/envMap;cop/image;cop/imageEXR;event/cameraOrbitControls;mat/meshBasicBuilder;mat/meshPhysical;mat/meshPhysicalBuilder;obj/copNetwork;obj/geo;obj/perspectiveCamera;sop/areaLight;sop/copNetwork;sop/eventsNetwork;sop/hemisphereLight;sop/material;sop/materialsNetwork;sop/merge;sop/plane;sop/polarTransform;sop/sphere
Used operations
Used modules
Used assemblers
GL_MESH_BASIC;GL_MESH_PHYSICAL;GL_TEXTURE
Used integrations
[]
Used assets
Nodes map
{"/geo1":"obj/geo","/geo1/COP":"sop/copNetwork","/geo1/COP/builder1":"cop/builder","/geo1/MAT":"sop/materialsNetwork","/geo1/MAT/meshPhysicalBuilder_SPHERE":"mat/meshPhysicalBuilder","/geo1/MAT/meshPhysical_BG":"mat/meshPhysical","/geo1/MAT/meshBasicBuilder_DEBUG":"mat/meshBasicBuilder","/geo1/material3":"sop/material","/geo1/material4":"sop/material","/geo1/merge2":"sop/merge","/geo1/plane1":"sop/plane","/geo1/sphere2":"sop/sphere","/perspectiveCamera1":"obj/perspectiveCamera","/perspectiveCamera1/events1":"sop/eventsNetwork","/perspectiveCamera1/events1/cameraOrbitControls1":"event/cameraOrbitControls","/COP":"obj/copNetwork","/COP/envMap":"cop/envMap","/COP/imageEnv":"cop/imageEXR","/COP/imageUv":"cop/image","/lights":"obj/geo","/lights/areaLight1":"sop/areaLight","/lights/areaLight2":"sop/areaLight","/lights/hemisphereLight1":"sop/hemisphereLight","/lights/merge1":"sop/merge","/lights/polarTransform1":"sop/polarTransform","/lights/polarTransform2":"sop/polarTransform"}
Js version
Editor version
Engine version
Name
*
Code
{"properties":{"frame":4928,"maxFrame":600,"maxFrameLocked":false,"realtimeState":true,"mainCameraPath":"/perspectiveCamera1","versions":{"polygonjs":"1.2.74"}},"root":{"type":"root","nodes":{"geo1":{"type":"geo","nodes":{"COP":{"type":"copNetwork","nodes":{"builder1":{"type":"builder","nodes":{"floatToVec3_1":{"type":"floatToVec3","params":{"x":{"overriden_options":{}},"y":{"overriden_options":{}},"z":{"overriden_options":{}}},"inputs":[{"index":0,"inputName":"x","node":"noise1","output":"noise"},{"index":1,"inputName":"y","node":"noise1","output":"noise"},{"index":2,"inputName":"z","node":"noise1","output":"noise"}]},"floatToVec3_2":{"type":"floatToVec3","params":{"x":{"overriden_options":{}},"y":{"overriden_options":{}},"z":{"overriden_options":{}}},"inputs":[null,{"index":1,"inputName":"y","node":"multAdd1","output":"val"},{"index":2,"inputName":"z","node":"multAdd1","output":"val"}]},"floatToVec3_4":{"type":"floatToVec3","params":{"x":{"raw_input":1,"overriden_options":{}},"y":{"overriden_options":{}},"z":{"overriden_options":{}}},"inputs":[null,{"index":1,"inputName":"y","node":"vec2ToFloat2","output":"y"},{"index":2,"inputName":"z","node":"vec2ToFloat2","output":"x"}]},"globals1":{"type":"globals"},"globals2":{"type":"globals"},"multAdd1":{"type":"multAdd","params":{"value":{"type":"float","default_value":0,"options":{"spare":true,"editable":false}},"preAdd":{"type":"float","default_value":0,"options":{"spare":true,"editable":true}},"mult":{"type":"float","default_value":1,"options":{"spare":true,"editable":true},"raw_input":0.31},"postAdd":{"type":"float","default_value":0,"options":{"spare":true,"editable":true}}},"inputs":[{"index":0,"inputName":"value","node":"globals2","output":"time"}],"connection_points":{"in":[{"name":"value","type":"float"},{"name":"preAdd","type":"float"},{"name":"mult","type":"float"},{"name":"postAdd","type":"float"}],"out":[{"name":"val","type":"float"}]}},"multAdd4":{"type":"multAdd","params":{"value":{"type":"vector2","default_value":[0,0],"options":{"spare":true,"editable":false}},"preAdd":{"type":"vector2","default_value":[0,0],"options":{"spare":true,"editable":true}},"mult":{"type":"vector2","default_value":[1,1],"options":{"spare":true,"editable":true},"raw_input":[6.283185307179586,3.141592653589793]},"postAdd":{"type":"vector2","default_value":[0,0],"options":{"spare":true,"editable":true}}},"inputs":[{"index":0,"inputName":"value","node":"globals1","output":"uv"}],"connection_points":{"in":[{"name":"value","type":"vec2"},{"name":"preAdd","type":"vec2"},{"name":"mult","type":"vec2"},{"name":"postAdd","type":"vec2"}],"out":[{"name":"val","type":"vec2"}]}},"noise1":{"type":"noise","params":{"outputType":1,"amp":{"type":"float","default_value":1,"options":{"spare":true,"editable":true},"raw_input":1.6},"position":{"type":"vector3","default_value":[0,0,0],"options":{"spare":true,"editable":false},"overriden_options":{}},"freq":{"type":"vector3","default_value":[1,1,1],"options":{"spare":true,"editable":true},"raw_input":[0.39999999999999997,0.39999999999999997,0.39999999999999997]},"offset":{"type":"vector3","default_value":[0,0,0],"options":{"spare":true,"editable":false},"overriden_options":{}}},"maxInputsCount":4,"inputs":[null,{"index":1,"inputName":"position","node":"polarToCartesian3","output":"xyz"},null,{"index":3,"inputName":"offset","node":"floatToVec3_2","output":"vec3"}],"connection_points":{"in":[{"name":"amp","type":"float"},{"name":"position","type":"vec3"},{"name":"freq","type":"vec3"},{"name":"offset","type":"vec3"}],"out":[{"name":"noise","type":"float"}]}},"output1":{"type":"output","inputs":[{"index":0,"inputName":"color","node":"floatToVec3_1","output":"vec3"}]},"polarToCartesian3":{"type":"polarToCartesian","params":{"polar":{"overriden_options":{}}},"inputs":[{"index":0,"inputName":"polar","node":"floatToVec3_4","output":"vec3"}]},"vec2ToFloat2":{"type":"vec2ToFloat","params":{"vec":{"overriden_options":{}}},"inputs":[{"index":0,"inputName":"vec","node":"multAdd4","output":"val"}]}},"params":{"resolution":[512,512],"tencoding":true,"tminFilter":true,"tmagFilter":true},"persisted_config":{"uniforms":{"time":{"value":85.54470000010731},"resolution":{"value":{"x":512,"y":512}}},"param_uniform_pairs":[],"uniforms_time_dependent":true,"uniforms_resolution_dependent":false}}}},"MAT":{"type":"materialsNetwork","nodes":{"meshPhysicalBuilder_SPHERE":{"type":"meshPhysicalBuilder","nodes":{"constant1":{"type":"constant","params":{"type":4,"color":[0.38823529411764707,0.3215686274509804,0.6549019607843137],"asColor":true},"connection_points":{"in":[],"out":[{"name":"val","type":"vec3"}]}},"globals1":{"type":"globals"},"output1":{"type":"output","inputs":[null,null,{"index":2,"inputName":"color","node":"constant1","output":"val"}]}},"params":{"useDisplacementMap":true,"displacementMap":"../../COP/builder1","displacementScale":0.18,"useEnvMap":true,"envMap":"../../../COP/envMap","envMapIntensity":0.11,"roughness":0.01,"transmission":1,"thickness":2.4,"attenuationDistance":6.9,"attenuationColor":[0.023529411764705882,0.23529411764705882,0.5764705882352941]},"persisted_config":{"material":{"metadata":{"version":4.5,"type":"Material","generator":"Material.toJSON"},"uuid":"/geo1/MAT/meshPhysicalBuilder_SPHERE-main","type":"MeshPhysicalMaterial","name":"/geo1/MAT/meshPhysicalBuilder_SPHERE","color":16777215,"roughness":0.01,"metalness":0,"sheen":0,"sheenColor":0,"sheenRoughness":1,"emissive":0,"specularIntensity":1,"specularColor":16777215,"clearcoat":0,"clearcoatRoughness":0,"iridescence":0,"iridescenceIOR":1.3,"iridescenceThicknessRange":[100,400],"envMapIntensity":0.11,"reflectivity":0.49999999999999983,"transmission":1,"thickness":2.4,"attenuationDistance":6.9,"attenuationColor":408723,"depthFunc":3,"depthTest":true,"depthWrite":true,"colorWrite":true,"stencilWrite":false,"stencilWriteMask":255,"stencilFunc":519,"stencilRef":0,"stencilFuncMask":255,"stencilFail":7680,"stencilZFail":7680,"stencilZPass":7680,"fog":false},"onBeforeCompileDataJSONWithoutShaders":{"paramConfigs":[],"timeDependent":false,"resolutionDependent":false,"raymarchingLightsWorldCoordsDependent":false},"customMaterials":{"customDepthMaterial":{"material":{"metadata":{"version":4.5,"type":"Material","generator":"Material.toJSON"},"uuid":"/geo1/MAT/meshPhysicalBuilder_SPHERE-customDepthMaterial","type":"MeshDepthMaterial","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,"depthPacking":3201},"onBeforeCompileDataJSONWithoutShaders":{"paramConfigs":[],"timeDependent":false,"resolutionDependent":false,"raymarchingLightsWorldCoordsDependent":false}},"customDistanceMaterial":{"material":{"metadata":{"version":4.5,"type":"Material","generator":"Material.toJSON"},"uuid":"/geo1/MAT/meshPhysicalBuilder_SPHERE-customDistanceMaterial","type":"MeshDistanceMaterial","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},"onBeforeCompileDataJSONWithoutShaders":{"paramConfigs":[],"timeDependent":false,"resolutionDependent":false,"raymarchingLightsWorldCoordsDependent":false}},"customDepthDOFMaterial":{"material":{"metadata":{"version":4.5,"type":"Material","generator":"Material.toJSON"},"uuid":"/geo1/MAT/meshPhysicalBuilder_SPHERE-customDepthDOFMaterial","type":"MeshDepthMaterial","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,"depthPacking":3200},"onBeforeCompileDataJSONWithoutShaders":{"paramConfigs":[],"timeDependent":false,"resolutionDependent":false,"raymarchingLightsWorldCoordsDependent":false}}}}},"meshPhysical_BG":{"type":"meshPhysical","params":{"color":[2.0705882352941174,2.368627450980392,2.349019607843137],"useMap":true,"map":"../../../COP/imageUv"}},"meshBasicBuilder_DEBUG":{"type":"meshBasicBuilder","nodes":{"add1":{"type":"add","params":{"add0":{"type":"vector3","default_value":[0,0,0],"options":{"spare":true,"editable":false}},"add1":{"type":"vector3","default_value":[0,0,0],"options":{"spare":true,"editable":false}},"add2":{"type":"vector3","default_value":[0,0,0],"options":{"spare":true,"editable":true}}},"maxInputsCount":3,"inputs":[{"index":0,"inputName":"add0","node":"globals1","output":"position"},{"index":1,"inputName":"add1","node":"noise1","output":"noise"}],"connection_points":{"in":[{"name":"add0","type":"vec3"},{"name":"add1","type":"vec3"},{"name":"add2","type":"vec3"}],"out":[{"name":"sum","type":"vec3"}]}},"add2":{"type":"add","params":{"add0":{"type":"vector3","default_value":[0,0,0],"options":{"spare":true,"editable":false}},"add1":{"type":"vector3","default_value":[0,0,0],"options":{"spare":true,"editable":false}},"add2":{"type":"vector3","default_value":[0,0,0],"options":{"spare":true,"editable":true}}},"maxInputsCount":3,"inputs":[{"index":0,"inputName":"add0","node":"globals2","output":"position"},{"index":1,"inputName":"add1","node":"floatToVec3_5","output":"vec3"}],"connection_points":{"in":[{"name":"add0","type":"vec3"},{"name":"add1","type":"vec3"},{"name":"add2","type":"vec3"}],"out":[{"name":"sum","type":"vec3"}]}},"cartesianToPolar1":{"type":"cartesianToPolar","params":{"xyz":{"overriden_options":{}}},"inputs":[{"index":0,"inputName":"xyz","node":"globals1","output":"position"}]},"constant1":{"type":"constant","params":{"float":"2*3.141592653589793"},"maxInputsCount":0,"connection_points":{"in":[],"out":[{"name":"val","type":"float"}]}},"constant2":{"type":"constant","params":{"float":"1*3.141592653589793"},"maxInputsCount":0,"connection_points":{"in":[],"out":[{"name":"val","type":"float"}]}},"cycle1":{"type":"cycle","params":{"in":{"type":"float","default_value":0,"options":{"spare":true,"editable":false}},"min":{"type":"float","default_value":0,"options":{"spare":true,"editable":true}},"max":{"type":"float","default_value":1,"options":{"spare":true,"editable":true}}},"inputs":[{"index":0,"inputName":"in","node":"vec3ToFloat2","output":"x"}],"connection_points":{"in":[{"name":"in","type":"float"},{"name":"min","type":"float"},{"name":"max","type":"float"}],"out":[{"name":"val","type":"float"}]}},"cycle2":{"type":"cycle","params":{"in":{"type":"float","default_value":0,"options":{"spare":true,"editable":false}},"min":{"type":"float","default_value":0,"options":{"spare":true,"editable":true}},"max":{"type":"float","default_value":1,"options":{"spare":true,"editable":true}}},"inputs":[{"index":0,"inputName":"in","node":"vec3ToFloat2","output":"y"}],"connection_points":{"in":[{"name":"in","type":"float"},{"name":"min","type":"float"},{"name":"max","type":"float"}],"out":[{"name":"val","type":"float"}]}},"cycle3":{"type":"cycle","params":{"in":{"type":"float","default_value":0,"options":{"spare":true,"editable":false}},"min":{"type":"float","default_value":0,"options":{"spare":true,"editable":true}},"max":{"type":"float","default_value":1,"options":{"spare":true,"editable":true}}},"inputs":[{"index":0,"inputName":"in","node":"vec3ToFloat2","output":"z"}],"connection_points":{"in":[{"name":"in","type":"float"},{"name":"min","type":"float"},{"name":"max","type":"float"}],"out":[{"name":"val","type":"float"}]}},"cycle4":{"type":"cycle","params":{"in":{"type":"float","default_value":0,"options":{"spare":true,"editable":false}},"min":{"type":"float","default_value":0,"options":{"spare":true,"editable":true}},"max":{"type":"float","default_value":1,"options":{"spare":true,"editable":true},"raw_input":0.5}},"inputs":[{"index":0,"inputName":"in","node":"multAdd2","output":"val"}],"connection_points":{"in":[{"name":"in","type":"float"},{"name":"min","type":"float"},{"name":"max","type":"float"}],"out":[{"name":"val","type":"float"}]}},"divide1":{"type":"divide","params":{"div0":{"type":"float","default_value":1,"options":{"spare":true,"editable":false}},"div1":{"type":"float","default_value":1,"options":{"spare":true,"editable":false}},"div2":{"type":"float","default_value":1,"options":{"spare":true,"editable":true}}},"maxInputsCount":3,"inputs":[{"index":0,"inputName":"div0","node":"vec3ToFloat1","output":"z"},{"index":1,"inputName":"div1","node":"constant1","output":"val"}],"connection_points":{"in":[{"name":"div0","type":"float"},{"name":"div1","type":"float"},{"name":"div2","type":"float"}],"out":[{"name":"divide","type":"float"}]}},"divide2":{"type":"divide","params":{"div0":{"type":"float","default_value":1,"options":{"spare":true,"editable":false}},"div1":{"type":"float","default_value":1,"options":{"spare":true,"editable":false},"raw_input":2},"div2":{"type":"float","default_value":1,"options":{"spare":true,"editable":true}}},"maxInputsCount":3,"inputs":[{"index":0,"inputName":"div0","node":"vec3ToFloat1","output":"y"},{"index":1,"inputName":"div1","node":"constant2","output":"val"}],"connection_points":{"in":[{"name":"div0","type":"float"},{"name":"div1","type":"float"},{"name":"div2","type":"float"}],"out":[{"name":"divide","type":"float"}]}},"floatToVec3_1":{"type":"floatToVec3","params":{"x":{"overriden_options":{}},"y":{"overriden_options":{}},"z":{"overriden_options":{}}},"inputs":[null,{"index":1,"inputName":"y","node":"multAdd1","output":"val"}]},"floatToVec3_2":{"type":"floatToVec3","params":{"x":{"overriden_options":{}},"y":{"overriden_options":{}},"z":{"overriden_options":{}}},"inputs":[null,null,{"index":2,"inputName":"z","node":"cycle4","output":"val"}]},"floatToVec3_3":{"type":"floatToVec3","params":{"x":{"raw_input":1,"overriden_options":{}},"y":{"overriden_options":{}},"z":{"overriden_options":{}}},"inputs":[null,{"index":1,"inputName":"y","node":"vec2ToFloat1","output":"y"},{"index":2,"inputName":"z","node":"vec2ToFloat1","output":"x"}]},"floatToVec3_4":{"type":"floatToVec3","params":{"x":{"overriden_options":{}},"y":{"overriden_options":{}},"z":{"overriden_options":{}}},"inputs":[{"index":0,"inputName":"x","node":"cycle1","output":"val"},{"index":1,"inputName":"y","node":"cycle2","output":"val"},{"index":2,"inputName":"z","node":"cycle3","output":"val"}]},"floatToVec3_5":{"type":"floatToVec3","params":{"x":{"overriden_options":{}},"y":{"overriden_options":{}},"z":{"overriden_options":{}}},"inputs":[null,{"index":1,"inputName":"y","node":"multAdd2","output":"val"}]},"globals1":{"type":"globals"},"globals2":{"type":"globals"},"mod1":{"type":"mod","params":{"in0":{"type":"float","default_value":0,"options":{"spare":true,"editable":false}},"in1":{"type":"float","default_value":1,"options":{"spare":true,"editable":true},"raw_input":6.5}},"inputs":[{"index":0,"inputName":"in0","node":"vec3ToFloat1","output":"z"}],"connection_points":{"in":[{"name":"in0","type":"float"},{"name":"in1","type":"float"}],"out":[{"name":"val","type":"float"}]}},"mult1":{"type":"mult","params":{"mult0":{"type":"vector3","default_value":[1,1,1],"options":{"spare":true,"editable":false}},"mult1":{"type":"vector3","default_value":[1,1,1],"options":{"spare":true,"editable":true},"raw_input":[1,1,"1/$PI"]}},"inputs":[{"index":0,"inputName":"mult0","node":"cartesianToPolar1","output":"polar"}],"connection_points":{"in":[{"name":"mult0","type":"vec3"},{"name":"mult1","type":"vec3"}],"out":[{"name":"product","type":"vec3"}]}},"multAdd1":{"type":"multAdd","params":{"value":{"type":"float","default_value":0,"options":{"spare":true,"editable":false}},"preAdd":{"type":"float","default_value":0,"options":{"spare":true,"editable":true}},"mult":{"type":"float","default_value":1,"options":{"spare":true,"editable":true}},"postAdd":{"type":"float","default_value":0,"options":{"spare":true,"editable":true}}},"inputs":[{"index":0,"inputName":"value","node":"globals1","output":"time"}],"connection_points":{"in":[{"name":"value","type":"float"},{"name":"preAdd","type":"float"},{"name":"mult","type":"float"},{"name":"postAdd","type":"float"}],"out":[{"name":"val","type":"float"}]}},"multAdd2":{"type":"multAdd","params":{"value":{"type":"float","default_value":0,"options":{"spare":true,"editable":false}},"preAdd":{"type":"float","default_value":0,"options":{"spare":true,"editable":true},"raw_input":0.5},"mult":{"type":"float","default_value":1,"options":{"spare":true,"editable":true}},"postAdd":{"type":"float","default_value":0,"options":{"spare":true,"editable":true}}},"inputs":[{"index":0,"inputName":"value","node":"divide1","output":"divide"}],"connection_points":{"in":[{"name":"value","type":"float"},{"name":"preAdd","type":"float"},{"name":"mult","type":"float"},{"name":"postAdd","type":"float"}],"out":[{"name":"val","type":"float"}]}},"multAdd3":{"type":"multAdd","params":{"value":{"type":"vector2","default_value":[0,0],"options":{"spare":true,"editable":false}},"preAdd":{"type":"vector2","default_value":[0,0],"options":{"spare":true,"editable":true}},"mult":{"type":"vector2","default_value":[1,1],"options":{"spare":true,"editable":true},"raw_input":[6.283185307179586,3.141592653589793]},"postAdd":{"type":"vector2","default_value":[0,0],"options":{"spare":true,"editable":true}}},"inputs":[{"index":0,"inputName":"value","node":"globals1","output":"uv"}],"connection_points":{"in":[{"name":"value","type":"vec2"},{"name":"preAdd","type":"vec2"},{"name":"mult","type":"vec2"},{"name":"postAdd","type":"vec2"}],"out":[{"name":"val","type":"vec2"}]}},"noise1":{"type":"noise","params":{"amp":{"type":"vector3","default_value":[1,1,1],"options":{"spare":true,"editable":true},"raw_input":[0.07999999999999997,0.07999999999999997,0.07999999999999997]},"position":{"type":"vector3","default_value":[0,0,0],"options":{"spare":true,"editable":false}},"freq":{"type":"vector3","default_value":[1,1,1],"options":{"spare":true,"editable":true}},"offset":{"type":"vector3","default_value":[0,0,0],"options":{"spare":true,"editable":false}}},"maxInputsCount":4,"inputs":[null,{"index":1,"inputName":"position","node":"cartesianToPolar1","output":"polar"},null,{"index":3,"inputName":"offset","node":"floatToVec3_1","output":"vec3"}],"connection_points":{"in":[{"name":"amp","type":"vec3"},{"name":"position","type":"vec3"},{"name":"freq","type":"vec3"},{"name":"offset","type":"vec3"}],"out":[{"name":"noise","type":"vec3"}]}},"output1":{"type":"output","inputs":[{"index":0,"inputName":"position","node":"polarToCartesian2","output":"xyz"}]},"polarToCartesian1":{"type":"polarToCartesian","params":{"polar":{"overriden_options":{}}},"inputs":[{"index":0,"inputName":"polar","node":"cartesianToPolar1","output":"polar"}]},"polarToCartesian2":{"type":"polarToCartesian","params":{"polar":{"overriden_options":{}}},"inputs":[{"index":0,"inputName":"polar","node":"floatToVec3_3","output":"vec3"}]},"vec2ToFloat1":{"type":"vec2ToFloat","params":{"vec":{"overriden_options":{}}},"inputs":[{"index":0,"inputName":"vec","node":"multAdd3","output":"val"}]},"vec3ToFloat1":{"type":"vec3ToFloat","params":{"vec":{"overriden_options":{}}},"inputs":[{"index":0,"inputName":"vec","node":"cartesianToPolar1","output":"polar"}]},"vec3ToFloat2":{"type":"vec3ToFloat","params":{"vec":{"overriden_options":{}}},"inputs":[{"index":0,"inputName":"vec","node":"polarToCartesian2","output":"xyz"}]}},"persisted_config":{"material":{"metadata":{"version":4.5,"type":"Material","generator":"Material.toJSON"},"uuid":"/geo1/MAT/meshBasicBuilder_DEBUG-main","type":"MeshBasicMaterial","name":"/geo1/MAT/meshBasicBuilder_DEBUG","color":16777215,"reflectivity":1,"refractionRatio":0.98,"depthFunc":3,"depthTest":true,"depthWrite":true,"colorWrite":true,"stencilWrite":false,"stencilWriteMask":255,"stencilFunc":519,"stencilRef":0,"stencilFuncMask":255,"stencilFail":7680,"stencilZFail":7680,"stencilZPass":7680,"fog":false},"onBeforeCompileDataJSONWithoutShaders":{"paramConfigs":[],"timeDependent":true,"resolutionDependent":false,"raymarchingLightsWorldCoordsDependent":false},"customMaterials":{"customDepthMaterial":{"material":{"metadata":{"version":4.5,"type":"Material","generator":"Material.toJSON"},"uuid":"/geo1/MAT/meshBasicBuilder_DEBUG-customDepthMaterial","type":"MeshDepthMaterial","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,"depthPacking":3201},"onBeforeCompileDataJSONWithoutShaders":{"paramConfigs":[],"timeDependent":true,"resolutionDependent":false,"raymarchingLightsWorldCoordsDependent":false}},"customDistanceMaterial":{"material":{"metadata":{"version":4.5,"type":"Material","generator":"Material.toJSON"},"uuid":"/geo1/MAT/meshBasicBuilder_DEBUG-customDistanceMaterial","type":"MeshDistanceMaterial","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},"onBeforeCompileDataJSONWithoutShaders":{"paramConfigs":[],"timeDependent":true,"resolutionDependent":false,"raymarchingLightsWorldCoordsDependent":false}},"customDepthDOFMaterial":{"material":{"metadata":{"version":4.5,"type":"Material","generator":"Material.toJSON"},"uuid":"/geo1/MAT/meshBasicBuilder_DEBUG-customDepthDOFMaterial","type":"MeshDepthMaterial","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,"depthPacking":3200},"onBeforeCompileDataJSONWithoutShaders":{"paramConfigs":[],"timeDependent":true,"resolutionDependent":false,"raymarchingLightsWorldCoordsDependent":false}}}}}}},"material3":{"type":"material","params":{"material":"../MAT/meshPhysicalBuilder_SPHERE"},"inputs":["sphere2"]},"material4":{"type":"material","params":{"material":"../MAT/meshPhysical_BG"},"inputs":["plane1"]},"merge2":{"type":"merge","inputs":["material3","material4"],"flags":{"display":true}},"plane1":{"type":"plane","params":{"size":[16,16],"direction":[0,0,1],"center":[0,0,-2]}},"sphere2":{"type":"sphere","params":{"resolution":[80,80],"detail":100}}},"flags":{"display":true}},"perspectiveCamera1":{"type":"perspectiveCamera","nodes":{"events1":{"type":"eventsNetwork","nodes":{"cameraOrbitControls1":{"type":"cameraOrbitControls","params":{"target":[0.09873420203120861,0.020818448783575912,-0.10770153630558416]}}}}},"params":{"t":[0.15791936851546773,0.04359540872872922,4.180515432931118],"r":[-0.3043249471764122,0.7907242456656788,0.004199816115973924],"controls":"./events1/cameraOrbitControls1"},"flags":{"display":true}},"COP":{"type":"copNetwork","nodes":{"envMap":{"type":"envMap","inputs":["imageEnv"]},"imageEnv":{"type":"imageEXR","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}}}},"lights":{"type":"geo","nodes":{"areaLight1":{"type":"areaLight"},"areaLight2":{"type":"areaLight","params":{"width":5.4}},"hemisphereLight1":{"type":"hemisphereLight","params":{"intensity":0.58}},"merge1":{"type":"merge","inputs":["polarTransform1","polarTransform2","hemisphereLight1"],"flags":{"display":true}},"polarTransform1":{"type":"polarTransform","params":{"longitude":-115.2,"latitude":54,"depth":1.7},"inputs":["areaLight1"]},"polarTransform2":{"type":"polarTransform","params":{"longitude":-309.6,"latitude":14.4,"depth":1.7},"inputs":["areaLight2"]}},"flags":{"display":true}}},"params":{"mainCameraPath":"/perspectiveCamera1"}},"ui":{"nodes":{"geo1":{"pos":[250,-150],"nodes":{"COP":{"pos":[-250,250],"nodes":{"builder1":{"pos":[-250,0],"nodes":{"floatToVec3_1":{"pos":[500,250]},"floatToVec3_2":{"pos":[150,500]},"floatToVec3_4":{"pos":[-50,250]},"globals1":{"pos":[-500,200]},"globals2":{"pos":[-200,500]},"multAdd1":{"pos":[0,500]},"multAdd4":{"pos":[-300,250]},"noise1":{"pos":[300,250]},"output1":{"pos":[600,200]},"polarToCartesian3":{"pos":[100,250]},"vec2ToFloat2":{"pos":[-200,250]}}}}},"MAT":{"pos":[-250,150],"nodes":{"meshPhysicalBuilder_SPHERE":{"pos":[0,500],"selection":["constant1"],"nodes":{"constant1":{"pos":[-50,-200]},"globals1":{"pos":[-400,0]},"output1":{"pos":[200,0]}}},"meshPhysical_BG":{"pos":[0,650]},"meshBasicBuilder_DEBUG":{"pos":[0,300],"selection":["floatToVec3_3","multAdd3","polarToCartesian2","vec2ToFloat1"],"nodes":{"add1":{"pos":[-50,0]},"add2":{"pos":[600,-400]},"cartesianToPolar1":{"pos":[-550,100]},"constant1":{"pos":[-400,-100]},"constant2":{"pos":[-400,-200]},"cycle1":{"pos":[450,300]},"cycle2":{"pos":[450,450]},"cycle3":{"pos":[450,600]},"cycle4":{"pos":[150,-150]},"divide1":{"pos":[-150,-200]},"divide2":{"pos":[-150,-300]},"floatToVec3_1":{"pos":[-450,350]},"floatToVec3_2":{"pos":[250,-350]},"floatToVec3_3":{"pos":[0,400]},"floatToVec3_4":{"pos":[650,400]},"floatToVec3_5":{"pos":[300,-500]},"globals1":{"pos":[-750,0]},"globals2":{"pos":[450,-450]},"mod1":{"pos":[-50,-400]},"mult1":{"pos":[-700,-250]},"multAdd1":{"pos":[-600,350]},"multAdd2":{"pos":[0,-250]},"multAdd3":{"pos":[-250,400]},"noise1":{"pos":[-200,150]},"output1":{"pos":[800,0]},"polarToCartesian1":{"pos":[-700,-150]},"polarToCartesian2":{"pos":[150,400]},"vec2ToFloat1":{"pos":[-150,400]},"vec3ToFloat1":{"pos":[-450,-350]},"vec3ToFloat2":{"pos":[300,400]}}}}},"material3":{"pos":[-50,200]},"material4":{"pos":[250,150]},"merge2":{"pos":[100,350]},"plane1":{"pos":[250,0]},"sphere2":{"pos":[-50,0]}}},"perspectiveCamera1":{"pos":[100,100],"nodes":{"events1":{"pos":[-200,50],"nodes":{"cameraOrbitControls1":{"pos":[150,50]}}}}},"COP":{"pos":[100,200],"nodes":{"envMap":{"pos":[50,200]},"imageEnv":{"pos":[50,100]},"imageUv":{"pos":[-100,100]}}},"lights":{"pos":[250,-50],"nodes":{"areaLight1":{"pos":[50,-100]},"areaLight2":{"pos":[350,-100]},"hemisphereLight1":{"pos":[600,50]},"merge1":{"pos":[200,300]},"polarTransform1":{"pos":[50,50]},"polarTransform2":{"pos":[350,50]}}}}},"shaders":{"/geo1/COP/builder1":{"fragment":"#include <common>\n\nuniform vec2 resolution;\n\n// removed:\n//// INSERT DEFINE\n\n\n\n// /geo1/COP/builder1/polarToCartesian3\nvec3 cartesianToPolar(vec3 w){\n\tfloat wr = sqrt(dot(w,w));\n\tfloat wo = acos(w.y/wr);\n\tfloat wi = atan(w.x,w.z);\n\treturn vec3(wr,wo,wi);\n}\nvec3 polarToCartesian(vec3 p){\n\tfloat x = p.x * sin(p.y)*sin(p.z);\n\tfloat y = p.x * cos(p.y);\n\tfloat z = p.x * sin(p.y)*cos(p.z);\n\treturn vec3(x,y,z);\n}\n\n// /geo1/COP/builder1/noise1\n// Modulo 289 without a division (only multiplications)\nfloat mod289(float x) {\n return x - floor(x * (1.0 / 289.0)) * 289.0;\n}\nvec2 mod289(vec2 x) {\n return x - floor(x * (1.0 / 289.0)) * 289.0;\n}\nvec3 mod289(vec3 x) {\n return x - floor(x * (1.0 / 289.0)) * 289.0;\n}\nvec4 mod289(vec4 x) {\n return x - floor(x * (1.0 / 289.0)) * 289.0;\n}\n// Modulo 7 without a division\nvec3 mod7(vec3 x) {\n return x - floor(x * (1.0 / 7.0)) * 7.0;\n}\n\n// Permutation polynomial: (34x^2 + x) mod 289\nfloat permute(float x) {\n return mod289(((x*34.0)+1.0)*x);\n}\nvec3 permute(vec3 x) {\n return mod289((34.0 * x + 1.0) * x);\n}\nvec4 permute(vec4 x) {\n return mod289(((x*34.0)+1.0)*x);\n}\n\nfloat taylorInvSqrt(float r)\n{\n return 1.79284291400159 - 0.85373472095314 * r;\n}\nvec4 taylorInvSqrt(vec4 r)\n{\n return 1.79284291400159 - 0.85373472095314 * r;\n}\n\nvec2 fade(vec2 t) {\n return t*t*t*(t*(t*6.0-15.0)+10.0);\n}\nvec3 fade(vec3 t) {\n return t*t*t*(t*(t*6.0-15.0)+10.0);\n}\nvec4 fade(vec4 t) {\n return t*t*t*(t*(t*6.0-15.0)+10.0);\n}\n//\n// Description : Array and textureless GLSL 2D/3D/4D simplex \n// noise functions.\n// Author : Ian McEwan, Ashima Arts.\n// Maintainer : stegu\n// Lastmod : 20110822 (ijm)\n// License : Copyright (C) 2011 Ashima Arts. All rights reserved.\n// Distributed under the MIT License. See LICENSE file.\n// https://github.com/ashima/webgl-noise\n// https://github.com/stegu/webgl-noise\n// \n\n\n\nfloat snoise(vec3 v)\n { \n const vec2 C = vec2(1.0/6.0, 1.0/3.0) ;\n const vec4 D = vec4(0.0, 0.5, 1.0, 2.0);\n\n// First corner\n vec3 i = floor(v + dot(v, C.yyy) );\n vec3 x0 = v - i + dot(i, C.xxx) ;\n\n// Other corners\n vec3 g = step(x0.yzx, x0.xyz);\n vec3 l = 1.0 - g;\n vec3 i1 = min( g.xyz, l.zxy );\n vec3 i2 = max( g.xyz, l.zxy );\n\n // x0 = x0 - 0.0 + 0.0 * C.xxx;\n // x1 = x0 - i1 + 1.0 * C.xxx;\n // x2 = x0 - i2 + 2.0 * C.xxx;\n // x3 = x0 - 1.0 + 3.0 * C.xxx;\n vec3 x1 = x0 - i1 + C.xxx;\n vec3 x2 = x0 - i2 + C.yyy; // 2.0*C.x = 1/3 = C.y\n vec3 x3 = x0 - D.yyy; // -1.0+3.0*C.x = -0.5 = -D.y\n\n// Permutations\n i = mod289(i); \n vec4 p = permute( permute( permute( \n i.z + vec4(0.0, i1.z, i2.z, 1.0 ))\n + i.y + vec4(0.0, i1.y, i2.y, 1.0 )) \n + i.x + vec4(0.0, i1.x, i2.x, 1.0 ));\n\n// Gradients: 7x7 points over a square, mapped onto an octahedron.\n// The ring size 17*17 = 289 is close to a multiple of 49 (49*6 = 294)\n float n_ = 0.142857142857; // 1.0/7.0\n vec3 ns = n_ * D.wyz - D.xzx;\n\n vec4 j = p - 49.0 * floor(p * ns.z * ns.z); // mod(p,7*7)\n\n vec4 x_ = floor(j * ns.z);\n vec4 y_ = floor(j - 7.0 * x_ ); // mod(j,N)\n\n vec4 x = x_ *ns.x + ns.yyyy;\n vec4 y = y_ *ns.x + ns.yyyy;\n vec4 h = 1.0 - abs(x) - abs(y);\n\n vec4 b0 = vec4( x.xy, y.xy );\n vec4 b1 = vec4( x.zw, y.zw );\n\n //vec4 s0 = vec4(lessThan(b0,0.0))*2.0 - 1.0;\n //vec4 s1 = vec4(lessThan(b1,0.0))*2.0 - 1.0;\n vec4 s0 = floor(b0)*2.0 + 1.0;\n vec4 s1 = floor(b1)*2.0 + 1.0;\n vec4 sh = -step(h, vec4(0.0));\n\n vec4 a0 = b0.xzyw + s0.xzyw*sh.xxyy ;\n vec4 a1 = b1.xzyw + s1.xzyw*sh.zzww ;\n\n vec3 p0 = vec3(a0.xy,h.x);\n vec3 p1 = vec3(a0.zw,h.y);\n vec3 p2 = vec3(a1.xy,h.z);\n vec3 p3 = vec3(a1.zw,h.w);\n\n//Normalise gradients\n vec4 norm = taylorInvSqrt(vec4(dot(p0,p0), dot(p1,p1), dot(p2, p2), dot(p3,p3)));\n p0 *= norm.x;\n p1 *= norm.y;\n p2 *= norm.z;\n p3 *= norm.w;\n\n// Mix final noise value\n vec4 m = max(0.6 - vec4(dot(x0,x0), dot(x1,x1), dot(x2,x2), dot(x3,x3)), 0.0);\n m = m * m;\n return 42.0 * dot( m*m, vec4( dot(p0,x0), dot(p1,x1), \n dot(p2,x2), dot(p3,x3) ) );\n }\n\n\nfloat fbm_snoise_geo1_COP_builder1_noise1(in vec3 st) {\n\tfloat value = 0.0;\n\tfloat amplitude = 1.0;\n\tfor (int i = 0; i < 3; i++) {\n\t\tvalue += amplitude * snoise(st);\n\t\tst *= 2.0;\n\t\tamplitude *= 0.5;\n\t}\n\treturn value;\n}\n\n\n\n\n\n\n\n\n// /geo1/COP/builder1/globals2\nuniform float time;\n\n\n\n\n\nvoid main() {\n\n\tvec4 diffuseColor = vec4(0.0,0.0,0.0,1.0);\n\n\n// removed:\n//\t// INSERT BODY\n\n\n\n\t// /geo1/COP/builder1/globals1\n\tvec2 v_POLY_globals1_uv = vec2(gl_FragCoord.x / (resolution.x-1.), gl_FragCoord.y / (resolution.y-1.));\n\t\n\t// /geo1/COP/builder1/globals2\n\tfloat v_POLY_globals2_time = time;\n\t\n\t// /geo1/COP/builder1/multAdd4\n\tvec2 v_POLY_multAdd4_val = (vec2(6.283185307179586, 3.141592653589793)*(v_POLY_globals1_uv + vec2(0.0, 0.0))) + vec2(0.0, 0.0);\n\t\n\t// /geo1/COP/builder1/multAdd1\n\tfloat v_POLY_multAdd1_val = (0.31*(v_POLY_globals2_time + 0.0)) + 0.0;\n\t\n\t// /geo1/COP/builder1/vec2ToFloat2\n\tfloat v_POLY_vec2ToFloat2_y = v_POLY_multAdd4_val.y;\n\tfloat v_POLY_vec2ToFloat2_x = v_POLY_multAdd4_val.x;\n\t\n\t// /geo1/COP/builder1/floatToVec3_2\n\tvec3 v_POLY_floatToVec3_2_vec3 = vec3(0.0, v_POLY_multAdd1_val, v_POLY_multAdd1_val);\n\t\n\t// /geo1/COP/builder1/floatToVec3_4\n\tvec3 v_POLY_floatToVec3_4_vec3 = vec3(1.0, v_POLY_vec2ToFloat2_y, v_POLY_vec2ToFloat2_x);\n\t\n\t// /geo1/COP/builder1/polarToCartesian3\n\tvec3 v_POLY_polarToCartesian3_xyz = polarToCartesian(v_POLY_floatToVec3_4_vec3);\n\t\n\t// /geo1/COP/builder1/noise1\n\tfloat v_POLY_noise1_noise = 1.6*fbm_snoise_geo1_COP_builder1_noise1((v_POLY_polarToCartesian3_xyz*vec3(0.39999999999999997, 0.39999999999999997, 0.39999999999999997))+v_POLY_floatToVec3_2_vec3);\n\t\n\t// /geo1/COP/builder1/floatToVec3_1\n\tvec3 v_POLY_floatToVec3_1_vec3 = vec3(v_POLY_noise1_noise, v_POLY_noise1_noise, v_POLY_noise1_noise);\n\t\n\t// /geo1/COP/builder1/output1\n\tdiffuseColor.xyz = v_POLY_floatToVec3_1_vec3;\n\n\n\n\n\tgl_FragColor = vec4( diffuseColor );\n}"},"/geo1/MAT/meshPhysicalBuilder_SPHERE":{"vertex":"#define STANDARD\nvarying vec3 vViewPosition;\n#ifdef USE_TRANSMISSION\n\tvarying vec3 vWorldPosition;\n#endif\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 <normal_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>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <uv2_vertex>\n\t#include <color_vertex>\n\n\n\n\t// /geo1/MAT/meshPhysicalBuilder_SPHERE/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 <morphcolor_vertex>\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\t#include <normal_vertex>\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\tvViewPosition = - mvPosition.xyz;\n\t#include <worldpos_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n#ifdef USE_TRANSMISSION\n\tvWorldPosition = worldPosition.xyz;\n#endif\n}","fragment":"#define STANDARD\n#ifdef PHYSICAL\n\t#define IOR\n\t#define SPECULAR\n#endif\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float roughness;\nuniform float metalness;\nuniform float opacity;\n#ifdef IOR\n\tuniform float ior;\n#endif\n#ifdef SPECULAR\n\tuniform float specularIntensity;\n\tuniform vec3 specularColor;\n\t#ifdef USE_SPECULARINTENSITYMAP\n\t\tuniform sampler2D specularIntensityMap;\n\t#endif\n\t#ifdef USE_SPECULARCOLORMAP\n\t\tuniform sampler2D specularColorMap;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT\n\tuniform float clearcoat;\n\tuniform float clearcoatRoughness;\n#endif\n#ifdef USE_IRIDESCENCE\n\tuniform float iridescence;\n\tuniform float iridescenceIOR;\n\tuniform float iridescenceThicknessMinimum;\n\tuniform float iridescenceThicknessMaximum;\n#endif\n#ifdef USE_SHEEN\n\tuniform vec3 sheenColor;\n\tuniform float sheenRoughness;\n\t#ifdef USE_SHEENCOLORMAP\n\t\tuniform sampler2D sheenColorMap;\n\t#endif\n\t#ifdef USE_SHEENROUGHNESSMAP\n\t\tuniform sampler2D sheenRoughnessMap;\n\t#endif\n#endif\nvarying vec3 vViewPosition;\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 <alphatest_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <emissivemap_pars_fragment>\n#include <bsdfs>\n#include <iridescence_fragment>\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 <normal_pars_fragment>\n#include <lights_physical_pars_fragment>\n#include <transmission_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <clearcoat_pars_fragment>\n#include <iridescence_pars_fragment>\n#include <roughnessmap_pars_fragment>\n#include <metalnessmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\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\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\n\n\n\t// /geo1/MAT/meshPhysicalBuilder_SPHERE/constant1\n\tvec3 v_POLY_constant1_val = vec3(0.38823529411764707, 0.3215686274509804, 0.6549019607843137);\n\t\n\t// /geo1/MAT/meshPhysicalBuilder_SPHERE/output1\n\tdiffuseColor.xyz = v_POLY_constant1_val;\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\tfloat POLY_transmission = 1.0;\n\tfloat POLY_thickness = 1.0;\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\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 <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\t#include <aomap_fragment>\n\tvec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;\n\tvec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;\n\t\n#ifdef USE_TRANSMISSION\n\n\tmaterial.transmission = transmission * POLY_transmission;\n\tmaterial.transmissionAlpha = 1.0;\n\tmaterial.thickness = thickness * POLY_thickness;\n\tmaterial.attenuationDistance = attenuationDistance;\n\tmaterial.attenuationColor = attenuationColor;\n\n\t#ifdef USE_TRANSMISSIONMAP\n\n\t\tmaterial.transmission *= texture2D( transmissionMap, vUv ).r;\n\n\t#endif\n\n\t#ifdef USE_THICKNESSMAP\n\n\t\tmaterial.thickness *= texture2D( thicknessMap, vUv ).g;\n\n\t#endif\n\n\tvec3 pos = vWorldPosition;\n\tvec3 v = normalize( cameraPosition - pos );\n\tvec3 n = inverseTransformDirection( normal, viewMatrix );\n\n\tvec4 transmission = getIBLVolumeRefraction(\n\t\tn, v, material.roughness, material.diffuseColor, material.specularColor, material.specularF90,\n\t\tpos, modelMatrix, viewMatrix, projectionMatrix, material.ior, material.thickness,\n\t\tmaterial.attenuationColor, material.attenuationDistance );\n\n\tmaterial.transmissionAlpha = mix( material.transmissionAlpha, transmission.a, material.transmission );\n\n\ttotalDiffuse = mix( totalDiffuse, transmission.rgb, material.transmission );\n\n#endif\n\n\tvec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance;\n\t#ifdef USE_SHEEN\n\t\tfloat sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor );\n\t\toutgoingLight = outgoingLight * sheenEnergyComp + sheenSpecular;\n\t#endif\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNVcc = saturate( dot( geometry.clearcoatNormal, geometry.viewDir ) );\n\t\tvec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc );\n\t\toutgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + clearcoatSpecular * material.clearcoat;\n\t#endif\n\t#include <output_fragment>\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}","customDepthMaterial.vertex":"#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>\nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\t#include <uv_vertex>\n\t#include <skinbase_vertex>\n\t#ifdef USE_DISPLACEMENTMAP\n// removed:\n//\t\t#include <beginnormal_vertex>\n\t\t#include <morphnormal_vertex>\n\t\t#include <skinnormal_vertex>\n\t#endif\n// removed:\n//\t#include <begin_vertex>\n\n\n\n\t// /geo1/MAT/meshPhysicalBuilder_SPHERE/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\tvHighPrecisionZW = gl_Position.zw;\n}","customDepthMaterial.fragment":"\n// INSERT DEFINES\n\n\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 <alphatest_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\t#if DEPTH_PACKING == 3200\n\n\t\tdiffuseColor.a = opacity;\n\n\t#endif\n\n\n\t#include <map_fragment>\n\t#include <alphamap_fragment>\n\n\n\n\t// /geo1/MAT/meshPhysicalBuilder_SPHERE/constant1\n\tvec3 v_POLY_constant1_val = vec3(0.38823529411764707, 0.3215686274509804, 0.6549019607843137);\n\t\n\t// /geo1/MAT/meshPhysicalBuilder_SPHERE/output1\n\tdiffuseColor.xyz = v_POLY_constant1_val;\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\tfloat POLY_transmission = 1.0;\n\tfloat POLY_thickness = 1.0;\n\n\n\n\n\t// INSERT BODY\n\t// the new body lines should be added before the alphatest_fragment\n\t// so that alpha is set before (which is really how it would be set if the alphamap_fragment above was used by the material node parameters)\n\n\t#include <alphatest_fragment>\n\n\t#include <logdepthbuf_fragment>\n\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 ), diffuseColor.a );\n\n\t#elif DEPTH_PACKING == 3201\n\n\t\tgl_FragColor = packDepthToRGBA( fragCoordZ );\n\n\t#endif\n\n}\n","customDistanceMaterial.vertex":"#define DISTANCE\nvarying vec3 vWorldPosition;\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>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <skinbase_vertex>\n\t#ifdef USE_DISPLACEMENTMAP\n// removed:\n//\t\t#include <beginnormal_vertex>\n\t\t#include <morphnormal_vertex>\n\t\t#include <skinnormal_vertex>\n\t#endif\n// removed:\n//\t#include <begin_vertex>\n\n\n\n\t// /geo1/MAT/meshPhysicalBuilder_SPHERE/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\tvWorldPosition = worldPosition.xyz;\n}","customDistanceMaterial.fragment":"\n// INSERT DEFINES\n\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 <alphatest_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\t#include <map_fragment>\n\t#include <alphamap_fragment>\n\n\n\n\t// /geo1/MAT/meshPhysicalBuilder_SPHERE/constant1\n\tvec3 v_POLY_constant1_val = vec3(0.38823529411764707, 0.3215686274509804, 0.6549019607843137);\n\t\n\t// /geo1/MAT/meshPhysicalBuilder_SPHERE/output1\n\tdiffuseColor.xyz = v_POLY_constant1_val;\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\tfloat POLY_transmission = 1.0;\n\tfloat POLY_thickness = 1.0;\n\n\n\n\n\t// INSERT BODY\n\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","customDepthDOFMaterial.vertex":"#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>\nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\t#include <uv_vertex>\n\t#include <skinbase_vertex>\n\t#ifdef USE_DISPLACEMENTMAP\n// removed:\n//\t\t#include <beginnormal_vertex>\n\t\t#include <morphnormal_vertex>\n\t\t#include <skinnormal_vertex>\n\t#endif\n// removed:\n//\t#include <begin_vertex>\n\n\n\n\t// /geo1/MAT/meshPhysicalBuilder_SPHERE/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\tvHighPrecisionZW = gl_Position.zw;\n}","customDepthDOFMaterial.fragment":"\n// INSERT DEFINES\n\n\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 <alphatest_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\t#if DEPTH_PACKING == 3200\n\n\t\tdiffuseColor.a = opacity;\n\n\t#endif\n\n\n\t#include <map_fragment>\n\t#include <alphamap_fragment>\n\n\n\n\t// /geo1/MAT/meshPhysicalBuilder_SPHERE/constant1\n\tvec3 v_POLY_constant1_val = vec3(0.38823529411764707, 0.3215686274509804, 0.6549019607843137);\n\t\n\t// /geo1/MAT/meshPhysicalBuilder_SPHERE/output1\n\tdiffuseColor.xyz = v_POLY_constant1_val;\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\tfloat POLY_transmission = 1.0;\n\tfloat POLY_thickness = 1.0;\n\n\n\n\n\t// INSERT BODY\n\t// the new body lines should be added before the alphatest_fragment\n\t// so that alpha is set before (which is really how it would be set if the alphamap_fragment above was used by the material node parameters)\n\n\t#include <alphatest_fragment>\n\n\t#include <logdepthbuf_fragment>\n\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 ), diffuseColor.a );\n\n\t#elif DEPTH_PACKING == 3201\n\n\t\tgl_FragColor = packDepthToRGBA( fragCoordZ );\n\n\t#endif\n\n}\n"},"/geo1/MAT/meshBasicBuilder_DEBUG":{"vertex":"#include <common>\n\n\n\n// /geo1/MAT/meshBasicBuilder1/polarToCartesian2\nvec3 cartesianToPolar(vec3 w){\n\tfloat wr = sqrt(dot(w,w));\n\tfloat wo = acos(w.y/wr);\n\tfloat wi = atan(w.x,w.z);\n\treturn vec3(wr,wo,wi);\n}\nvec3 polarToCartesian(vec3 p){\n\tfloat x = p.x * sin(p.y)*sin(p.z);\n\tfloat y = p.x * cos(p.y);\n\tfloat z = p.x * sin(p.y)*cos(p.z);\n\treturn vec3(x,y,z);\n}\n\n\n\n\n\n\n\n// /geo1/MAT/meshBasicBuilder1/globals1\nuniform float time;\n\n// /geo1/MAT/meshBasicBuilder1/globals1\nvarying vec3 v_POLY_globals1_position;\nvarying vec2 v_POLY_globals1_uv;\n\n\n\n\n#include <uv_pars_vertex>\n#include <uv2_pars_vertex>\n#include <envmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <uv2_vertex>\n\t#include <color_vertex>\n\n\n\n\t// /geo1/MAT/meshBasicBuilder1/globals1\n\tv_POLY_globals1_position = vec3(position);\n\tv_POLY_globals1_uv = vec2(uv);\n\tfloat v_POLY_globals1_time = time;\n\t\n\t// /geo1/MAT/meshBasicBuilder1/multAdd3\n\tvec2 v_POLY_multAdd3_val = (vec2(6.283185307179586, 3.141592653589793)*(v_POLY_globals1_uv + vec2(0.0, 0.0))) + vec2(0.0, 0.0);\n\t\n\t// /geo1/MAT/meshBasicBuilder1/vec2ToFloat1\n\tfloat v_POLY_vec2ToFloat1_y = v_POLY_multAdd3_val.y;\n\tfloat v_POLY_vec2ToFloat1_x = v_POLY_multAdd3_val.x;\n\t\n\t// /geo1/MAT/meshBasicBuilder1/floatToVec3_3\n\tvec3 v_POLY_floatToVec3_3_vec3 = vec3(1.0, v_POLY_vec2ToFloat1_y, v_POLY_vec2ToFloat1_x);\n\t\n\t// /geo1/MAT/meshBasicBuilder1/polarToCartesian2\n\tvec3 v_POLY_polarToCartesian2_xyz = polarToCartesian(v_POLY_floatToVec3_3_vec3);\n\t\n\t// /geo1/MAT/meshBasicBuilder1/output1\n\tvec3 transformed = v_POLY_polarToCartesian2_xyz;\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 <morphcolor_vertex>\n\t#if defined ( USE_ENVMAP ) || defined ( USE_SKINNING )\n// removed:\n//\t\t#include <beginnormal_vertex>\n\t\t#include <morphnormal_vertex>\n\t\t#include <skinbase_vertex>\n\t\t#include <skinnormal_vertex>\n\t\t#include <defaultnormal_vertex>\n\t#endif\n// removed:\n//\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <worldpos_vertex>\n\t#include <envmap_vertex>\n\t#include <fog_vertex>\n}","fragment":"uniform vec3 diffuse;\nuniform float opacity;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include <common>\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 <alphatest_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <envmap_common_pars_fragment>\n#include <envmap_pars_fragment>\n#include <fog_pars_fragment>\n#include <specularmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( diffuse, opacity );\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\t#include <specularmap_fragment>\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel = texture2D( lightMap, vUv2 );\n\t\treflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity * RECIPROCAL_PI;\n\t#else\n\t\treflectedLight.indirectDiffuse += vec3( 1.0 );\n\t#endif\n\t#include <aomap_fragment>\n\treflectedLight.indirectDiffuse *= diffuseColor.rgb;\n\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\n\t#include <envmap_fragment>\n\t#include <output_fragment>\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}","customDepthMaterial.vertex":"#include <common>\n\n\n\n// /geo1/MAT/meshBasicBuilder1/polarToCartesian2\nvec3 cartesianToPolar(vec3 w){\n\tfloat wr = sqrt(dot(w,w));\n\tfloat wo = acos(w.y/wr);\n\tfloat wi = atan(w.x,w.z);\n\treturn vec3(wr,wo,wi);\n}\nvec3 polarToCartesian(vec3 p){\n\tfloat x = p.x * sin(p.y)*sin(p.z);\n\tfloat y = p.x * cos(p.y);\n\tfloat z = p.x * sin(p.y)*cos(p.z);\n\treturn vec3(x,y,z);\n}\n\n\n\n\n\n\n\n// /geo1/MAT/meshBasicBuilder1/globals1\nuniform float time;\n\n// /geo1/MAT/meshBasicBuilder1/globals1\nvarying vec3 v_POLY_globals1_position;\nvarying vec2 v_POLY_globals1_uv;\n\n\n\n\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>\nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\t#include <uv_vertex>\n\t#include <skinbase_vertex>\n\t#ifdef USE_DISPLACEMENTMAP\n// removed:\n//\t\t#include <beginnormal_vertex>\n\t\t#include <morphnormal_vertex>\n\t\t#include <skinnormal_vertex>\n\t#endif\n// removed:\n//\t#include <begin_vertex>\n\n\n\n\t// /geo1/MAT/meshBasicBuilder1/globals1\n\tv_POLY_globals1_position = vec3(position);\n\tv_POLY_globals1_uv = vec2(uv);\n\tfloat v_POLY_globals1_time = time;\n\t\n\t// /geo1/MAT/meshBasicBuilder1/multAdd3\n\tvec2 v_POLY_multAdd3_val = (vec2(6.283185307179586, 3.141592653589793)*(v_POLY_globals1_uv + vec2(0.0, 0.0))) + vec2(0.0, 0.0);\n\t\n\t// /geo1/MAT/meshBasicBuilder1/vec2ToFloat1\n\tfloat v_POLY_vec2ToFloat1_y = v_POLY_multAdd3_val.y;\n\tfloat v_POLY_vec2ToFloat1_x = v_POLY_multAdd3_val.x;\n\t\n\t// /geo1/MAT/meshBasicBuilder1/floatToVec3_3\n\tvec3 v_POLY_floatToVec3_3_vec3 = vec3(1.0, v_POLY_vec2ToFloat1_y, v_POLY_vec2ToFloat1_x);\n\t\n\t// /geo1/MAT/meshBasicBuilder1/polarToCartesian2\n\tvec3 v_POLY_polarToCartesian2_xyz = polarToCartesian(v_POLY_floatToVec3_3_vec3);\n\t\n\t// /geo1/MAT/meshBasicBuilder1/output1\n\tvec3 transformed = v_POLY_polarToCartesian2_xyz;\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\tvHighPrecisionZW = gl_Position.zw;\n}","customDepthMaterial.fragment":"\n// INSERT DEFINES\n\n\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 <alphatest_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\n\nvarying vec2 vHighPrecisionZW;\n\nvoid main() {\n\n\t#include <clipping_planes_fragment>\n\n\tvec4 diffuseColor = vec4( 1.0 );\n\n\t#if DEPTH_PACKING == 3200\n\n\t\tdiffuseColor.a = opacity;\n\n\t#endif\n\n\n\t#include <map_fragment>\n\t#include <alphamap_fragment>\n\n\t// INSERT BODY\n\t// the new body lines should be added before the alphatest_fragment\n\t// so that alpha is set before (which is really how it would be set if the alphamap_fragment above was used by the material node parameters)\n\n\t#include <alphatest_fragment>\n\n\t#include <logdepthbuf_fragment>\n\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 ), diffuseColor.a );\n\n\t#elif DEPTH_PACKING == 3201\n\n\t\tgl_FragColor = packDepthToRGBA( fragCoordZ );\n\n\t#endif\n\n}\n","customDistanceMaterial.vertex":"#define DISTANCE\nvarying vec3 vWorldPosition;\n#include <common>\n\n\n\n// /geo1/MAT/meshBasicBuilder1/polarToCartesian2\nvec3 cartesianToPolar(vec3 w){\n\tfloat wr = sqrt(dot(w,w));\n\tfloat wo = acos(w.y/wr);\n\tfloat wi = atan(w.x,w.z);\n\treturn vec3(wr,wo,wi);\n}\nvec3 polarToCartesian(vec3 p){\n\tfloat x = p.x * sin(p.y)*sin(p.z);\n\tfloat y = p.x * cos(p.y);\n\tfloat z = p.x * sin(p.y)*cos(p.z);\n\treturn vec3(x,y,z);\n}\n\n\n\n\n\n\n\n// /geo1/MAT/meshBasicBuilder1/globals1\nuniform float time;\n\n// /geo1/MAT/meshBasicBuilder1/globals1\nvarying vec3 v_POLY_globals1_position;\nvarying vec2 v_POLY_globals1_uv;\n\n\n\n\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>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <skinbase_vertex>\n\t#ifdef USE_DISPLACEMENTMAP\n// removed:\n//\t\t#include <beginnormal_vertex>\n\t\t#include <morphnormal_vertex>\n\t\t#include <skinnormal_vertex>\n\t#endif\n// removed:\n//\t#include <begin_vertex>\n\n\n\n\t// /geo1/MAT/meshBasicBuilder1/globals1\n\tv_POLY_globals1_position = vec3(position);\n\tv_POLY_globals1_uv = vec2(uv);\n\tfloat v_POLY_globals1_time = time;\n\t\n\t// /geo1/MAT/meshBasicBuilder1/multAdd3\n\tvec2 v_POLY_multAdd3_val = (vec2(6.283185307179586, 3.141592653589793)*(v_POLY_globals1_uv + vec2(0.0, 0.0))) + vec2(0.0, 0.0);\n\t\n\t// /geo1/MAT/meshBasicBuilder1/vec2ToFloat1\n\tfloat v_POLY_vec2ToFloat1_y = v_POLY_multAdd3_val.y;\n\tfloat v_POLY_vec2ToFloat1_x = v_POLY_multAdd3_val.x;\n\t\n\t// /geo1/MAT/meshBasicBuilder1/floatToVec3_3\n\tvec3 v_POLY_floatToVec3_3_vec3 = vec3(1.0, v_POLY_vec2ToFloat1_y, v_POLY_vec2ToFloat1_x);\n\t\n\t// /geo1/MAT/meshBasicBuilder1/polarToCartesian2\n\tvec3 v_POLY_polarToCartesian2_xyz = polarToCartesian(v_POLY_floatToVec3_3_vec3);\n\t\n\t// /geo1/MAT/meshBasicBuilder1/output1\n\tvec3 transformed = v_POLY_polarToCartesian2_xyz;\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\tvWorldPosition = worldPosition.xyz;\n}","customDistanceMaterial.fragment":"\n// INSERT DEFINES\n\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 <alphatest_pars_fragment>\n#include <clipping_planes_pars_fragment>\n\nvoid main () {\n\n\t#include <clipping_planes_fragment>\n\n\tvec4 diffuseColor = vec4( 1.0 );\n\n\t#include <map_fragment>\n\t#include <alphamap_fragment>\n\n\t// INSERT BODY\n\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","customDepthDOFMaterial.vertex":"#include <common>\n\n\n\n// /geo1/MAT/meshBasicBuilder1/polarToCartesian2\nvec3 cartesianToPolar(vec3 w){\n\tfloat wr = sqrt(dot(w,w));\n\tfloat wo = acos(w.y/wr);\n\tfloat wi = atan(w.x,w.z);\n\treturn vec3(wr,wo,wi);\n}\nvec3 polarToCartesian(vec3 p){\n\tfloat x = p.x * sin(p.y)*sin(p.z);\n\tfloat y = p.x * cos(p.y);\n\tfloat z = p.x * sin(p.y)*cos(p.z);\n\treturn vec3(x,y,z);\n}\n\n\n\n\n\n\n\n// /geo1/MAT/meshBasicBuilder1/globals1\nuniform float time;\n\n// /geo1/MAT/meshBasicBuilder1/globals1\nvarying vec3 v_POLY_globals1_position;\nvarying vec2 v_POLY_globals1_uv;\n\n\n\n\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>\nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\t#include <uv_vertex>\n\t#include <skinbase_vertex>\n\t#ifdef USE_DISPLACEMENTMAP\n// removed:\n//\t\t#include <beginnormal_vertex>\n\t\t#include <morphnormal_vertex>\n\t\t#include <skinnormal_vertex>\n\t#endif\n// removed:\n//\t#include <begin_vertex>\n\n\n\n\t// /geo1/MAT/meshBasicBuilder1/globals1\n\tv_POLY_globals1_position = vec3(position);\n\tv_POLY_globals1_uv = vec2(uv);\n\tfloat v_POLY_globals1_time = time;\n\t\n\t// /geo1/MAT/meshBasicBuilder1/multAdd3\n\tvec2 v_POLY_multAdd3_val = (vec2(6.283185307179586, 3.141592653589793)*(v_POLY_globals1_uv + vec2(0.0, 0.0))) + vec2(0.0, 0.0);\n\t\n\t// /geo1/MAT/meshBasicBuilder1/vec2ToFloat1\n\tfloat v_POLY_vec2ToFloat1_y = v_POLY_multAdd3_val.y;\n\tfloat v_POLY_vec2ToFloat1_x = v_POLY_multAdd3_val.x;\n\t\n\t// /geo1/MAT/meshBasicBuilder1/floatToVec3_3\n\tvec3 v_POLY_floatToVec3_3_vec3 = vec3(1.0, v_POLY_vec2ToFloat1_y, v_POLY_vec2ToFloat1_x);\n\t\n\t// /geo1/MAT/meshBasicBuilder1/polarToCartesian2\n\tvec3 v_POLY_polarToCartesian2_xyz = polarToCartesian(v_POLY_floatToVec3_3_vec3);\n\t\n\t// /geo1/MAT/meshBasicBuilder1/output1\n\tvec3 transformed = v_POLY_polarToCartesian2_xyz;\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\tvHighPrecisionZW = gl_Position.zw;\n}","customDepthDOFMaterial.fragment":"\n// INSERT DEFINES\n\n\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 <alphatest_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\n\nvarying vec2 vHighPrecisionZW;\n\nvoid main() {\n\n\t#include <clipping_planes_fragment>\n\n\tvec4 diffuseColor = vec4( 1.0 );\n\n\t#if DEPTH_PACKING == 3200\n\n\t\tdiffuseColor.a = opacity;\n\n\t#endif\n\n\n\t#include <map_fragment>\n\t#include <alphamap_fragment>\n\n\t// INSERT BODY\n\t// the new body lines should be added before the alphatest_fragment\n\t// so that alpha is set before (which is really how it would be set if the alphamap_fragment above was used by the material node parameters)\n\n\t#include <alphatest_fragment>\n\n\t#include <logdepthbuf_fragment>\n\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 ), diffuseColor.a );\n\n\t#elif DEPTH_PACKING == 3201\n\n\t\tgl_FragColor = packDepthToRGBA( fragCoordZ );\n\n\t#endif\n\n}\n"}}}
Code editor
{"multiple_panel":{"split_ratio":0.5,"split_panel0":{"split_ratio":0.5,"split_panel0":{"panelTypes":["viewer"],"currentPanelIndex":0,"panel_data":{"camera":"/perspectiveCamera1","isViewerInitLayoutData":true,"linkIndex":1}},"split_panel1":{"panelTypes":["params"],"currentPanelIndex":0,"panel_data":{"active_folder":1248,"linkIndex":1}},"split_mode":"vertical"},"split_panel1":{"panelTypes":["network","params","viewer"],"currentPanelIndex":0,"panel_data":{"camera":{"position":{"x":-34.66261464370743,"y":-267.36545914402666},"zoom":0.6690000000000002},"history":{"2":{"position":{"x":-406,"y":-28},"zoom":0.562},"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},"398":{"position":{"x":-225.44483985765135,"y":-217.7046263345196},"zoom":0.562},"424":{"position":{"x":250,"y":0},"zoom":0.562},"427":{"position":{"x":-34.66261464370743,"y":-267.36545914402666},"zoom":0.6690000000000002},"697":{"position":{"x":-441.2811387900356,"y":-454.80427046263344},"zoom":0.6244444444444446},"1241":{"position":{"x":32.740213523131686,"y":85.58718861209965},"zoom":0.6244444444444446},"2052":{"position":{"x":-317.10526315789474,"y":57.236842105263165},"zoom":0.6080000000000001}},"linkIndex":1}},"split_mode":"horizontal"},"currentNodes":["/geo1/COP/builder1","/","/","/","/","/","/","/"],"navigationHistory":{"nodePaths":{"1":["/","/geo1","/geo1/MAT","/geo1","/","/lights","/","/geo1","/geo1/MAT","/geo1/MAT/meshPhysicalBuilder_SPHERE","/geo1/MAT","/geo1/MAT/meshPhysicalBuilder_SPHERE","/geo1/MAT","/geo1","/geo1/COP","/geo1/COP/builder1"],"2":["/"],"3":["/"],"4":["/"],"5":["/"],"6":["/"],"7":["/"],"8":["/"]},"index":{"1":15,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0}},"fullscreenPanelId":null,"saveOptions":{"createExport":true,"checkRemoteAssetsUse":true,"minimizeFilesCount":false,"compressJs":true,"createZip":false,"runPostExportCommand":false},"paramsModal":[]}
Used nodes
cop/builder;cop/envMap;cop/image;cop/imageEXR;event/cameraOrbitControls;mat/meshBasicBuilder;mat/meshPhysical;mat/meshPhysicalBuilder;obj/copNetwork;obj/geo;obj/perspectiveCamera;sop/areaLight;sop/copNetwork;sop/eventsNetwork;sop/hemisphereLight;sop/material;sop/materialsNetwork;sop/merge;sop/plane;sop/polarTransform;sop/sphere
Used operations
Used modules
Used assemblers
GL_MESH_BASIC;GL_MESH_PHYSICAL;GL_TEXTURE
Used integrations
[]
Used assets
Nodes map
{"/geo1":"obj/geo","/geo1/COP":"sop/copNetwork","/geo1/COP/builder1":"cop/builder","/geo1/MAT":"sop/materialsNetwork","/geo1/MAT/meshPhysicalBuilder_SPHERE":"mat/meshPhysicalBuilder","/geo1/MAT/meshPhysical_BG":"mat/meshPhysical","/geo1/MAT/meshBasicBuilder_DEBUG":"mat/meshBasicBuilder","/geo1/material3":"sop/material","/geo1/material4":"sop/material","/geo1/merge2":"sop/merge","/geo1/plane1":"sop/plane","/geo1/sphere2":"sop/sphere","/perspectiveCamera1":"obj/perspectiveCamera","/perspectiveCamera1/events1":"sop/eventsNetwork","/perspectiveCamera1/events1/cameraOrbitControls1":"event/cameraOrbitControls","/COP":"obj/copNetwork","/COP/envMap":"cop/envMap","/COP/imageEnv":"cop/imageEXR","/COP/imageUv":"cop/image","/lights":"obj/geo","/lights/areaLight1":"sop/areaLight","/lights/areaLight2":"sop/areaLight","/lights/hemisphereLight1":"sop/hemisphereLight","/lights/merge1":"sop/merge","/lights/polarTransform1":"sop/polarTransform","/lights/polarTransform2":"sop/polarTransform"}
Js version
Editor version
Engine version
Logout
0%
There was a problem displaying your scene:
view scene source