Name
*
Code
{"properties":{"frame":0,"maxFrame":600,"maxFrameLocked":false,"realtimeState":true,"mainCameraPath":"/perspectiveCamera1","versions":{"polygonjs":"1.4.10"}},"root":{"type":"root","nodes":{"geo1":{"type":"geo","nodes":{"fileGLTF1":{"type":"fileGLTF","params":{"url":"https://raw.githubusercontent.com/polygonjs/polygonjs-assets/master/models/photogrammetry/gui_fradin_textured.glb"}},"decompose1":{"type":"decompose","nodes":{"subnetInput1":{"type":"subnetInput","flags":{"display":true}},"subnetOutput1":{"type":"subnetOutput","inputs":["material__mesh_0"]},"MAT":{"type":"materialsNetwork","nodes":{"meshStandard__mesh_0":{"type":"meshStandard","params":{"color":{"overriden_options":{"conversion":"no conversion"}},"useMap":true,"map":"../../COP/fetch_map__mesh_0","emissive":{"overriden_options":{"conversion":"no conversion"}},"normalScale":[1,-1]}}}},"COP":{"type":"copNetwork","nodes":{"fetch_map__mesh_0":{"type":"fetch","params":{"node":"../../subnetInput1","group":"/mesh_0","name":"map"}}}},"material__mesh_0":{"type":"material","params":{"group":"/mesh_0","applyToChildren":false,"material":"../MAT/meshStandard__mesh_0"},"inputs":["subnetInput1"]}},"inputs":["fileGLTF1"],"flags":{"display":true}}},"params":{"CADLinearTolerance":{"overriden_options":{"callback":"{}"}},"CADAngularTolerance":{"overriden_options":{"callback":"{}"}},"CADCurveAbscissa":{"overriden_options":{"callback":"{}"}},"CADCurveTolerance":{"overriden_options":{"callback":"{}"}},"CADDisplayEdges":{"overriden_options":{"callback":"{}"}},"CADEdgesColor":{"overriden_options":{"callback":"{}"}},"CADDisplayMeshes":{"overriden_options":{"callback":"{}"}},"CADMeshesColor":{"overriden_options":{"callback":"{}"}},"CADWireframe":{"overriden_options":{"callback":"{}"}},"CSGFacetAngle":{"overriden_options":{"callback":"{}"}},"CSGLinesColor":{"overriden_options":{"callback":"{}"}},"CSGMeshesColor":{"overriden_options":{"callback":"{}"}},"CSGWireframe":{"overriden_options":{"callback":"{}"}},"SDFFacetAngle":{"overriden_options":{"callback":"{}"}},"SDFMeshesColor":{"overriden_options":{"callback":"{}"}},"SDFWireframe":{"overriden_options":{"callback":"{}"}}},"flags":{"display":true}},"grid":{"type":"geo","nodes":{"planeHelper1":{"type":"planeHelper","flags":{"display":true}}},"params":{"CADLinearTolerance":{"overriden_options":{"callback":"{}"}},"CADAngularTolerance":{"overriden_options":{"callback":"{}"}},"CADCurveAbscissa":{"overriden_options":{"callback":"{}"}},"CADCurveTolerance":{"overriden_options":{"callback":"{}"}},"CADDisplayEdges":{"overriden_options":{"callback":"{}"}},"CADEdgesColor":{"overriden_options":{"callback":"{}"}},"CADDisplayMeshes":{"overriden_options":{"callback":"{}"}},"CADMeshesColor":{"overriden_options":{"callback":"{}"}},"CADWireframe":{"overriden_options":{"callback":"{}"}},"CSGFacetAngle":{"overriden_options":{"callback":"{}"}},"CSGLinesColor":{"overriden_options":{"callback":"{}"}},"CSGMeshesColor":{"overriden_options":{"callback":"{}"}},"CSGWireframe":{"overriden_options":{"callback":"{}"}},"SDFFacetAngle":{"overriden_options":{"callback":"{}"}},"SDFMeshesColor":{"overriden_options":{"callback":"{}"}},"SDFWireframe":{"overriden_options":{"callback":"{}"}}},"flags":{"display":false}},"hemisphereLight1":{"type":"hemisphereLight","flags":{"display":true}},"perspectiveCamera1":{"type":"perspectiveCamera","nodes":{"events1":{"type":"eventsNetwork","nodes":{"cameraOrbitControls1":{"type":"cameraOrbitControls","params":{"target":[1.4590236309840876,-0.2520233402858222,-0.7166717830029278]}}}}},"params":{"t":[3.0161526633531355,1.1787657307191874,2.814738208647524],"r":[-22.723127930556515,44.66532130223666,16.403892417511617],"controls":"./events1/cameraOrbitControls1"},"flags":{"display":true}},"COP":{"type":"copNetwork","nodes":{"envMap":{"type":"envMap","inputs":["imageEXR1"]},"imageEnv":{"type":"imageEXR","params":{"url":"https://raw.githubusercontent.com/polygonjs/polygonjs-assets/master/textures/resources/polyhaven.com/envmaps/satara_night_1k.exr"}},"imageUv":{"type":"image","params":{"url":"https://raw.githubusercontent.com/polygonjs/polygonjs-assets/master/textures/uv.jpg","tflipY":true}},"builder1":{"type":"builder","nodes":{"globals1":{"type":"globals"},"output1":{"type":"output","inputs":[{"index":0,"inputName":"color","node":"floatToVec3_1","output":"vec3"},{"index":1,"inputName":"alpha","node":"vec4ToVec3_1","output":"w"}]},"texture1":{"type":"texture","params":{"uv":{"overriden_options":{}},"blurPixelsCountX":{"overriden_options":{}},"blurPixelsCountY":{"overriden_options":{}}},"inputs":[{"index":0,"inputName":"uv","node":"globals1","output":"uv"}]},"vec4ToVec3_1":{"type":"vec4ToVec3","params":{"vec4":{"overriden_options":{}}},"inputs":[{"index":0,"inputName":"vec4","node":"texture1","output":"rgba"}]},"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":false},"raw_input":[1.9,1.9,1.9]},"mult2":{"type":"vector3","default_value":[1,1,1],"options":{"spare":true,"editable":true}}},"maxInputsCount":3,"inputs":[{"index":0,"inputName":"mult0","node":"pow1","output":"val"},{"index":1,"inputName":"mult1","node":"floatToVec3_1","output":"vec3"}],"connection_points":{"in":[{"name":"mult0","type":"vec3"},{"name":"mult1","type":"vec3"},{"name":"mult2","type":"vec3"}],"out":[{"name":"product","type":"vec3"}]}},"ramp1":{"type":"ramp","params":{"input":{"overriden_options":{}}},"inputs":[{"index":0,"inputName":"input","node":"vec3ToFloat1","output":"x"}]},"floatToVec3_1":{"type":"floatToVec3","params":{"x":{"overriden_options":{}},"y":{"overriden_options":{}},"z":{"overriden_options":{}}},"inputs":[{"index":0,"inputName":"x","node":"fitFrom01_1","output":"val"},{"index":1,"inputName":"y","node":"fitFrom01_3","output":"val"},{"index":2,"inputName":"z","node":"fitFrom01_2","output":"val"}]},"fitTo01_1":{"type":"fitTo01","params":{"val":{"type":"vector3","default_value":[0,0,0],"options":{"spare":true,"editable":false}},"srcMin":{"type":"vector3","default_value":[0,0,0],"options":{"spare":true,"editable":true}},"srcMax":{"type":"vector3","default_value":[1,1,1],"options":{"spare":true,"editable":true},"raw_input":[50,50,50]}},"inputs":[{"index":0,"inputName":"val","node":"vec4ToVec3_1","output":"vec3"}],"connection_points":{"in":[{"name":"val","type":"vec3"},{"name":"srcMin","type":"vec3"},{"name":"srcMax","type":"vec3"}],"out":[{"name":"val","type":"vec3"}]}},"fitFrom01_1":{"type":"fitFrom01","params":{"val":{"type":"float","default_value":0,"options":{"spare":true,"editable":false}},"destMin":{"type":"float","default_value":0,"options":{"spare":true,"editable":true}},"destMax":{"type":"float","default_value":1,"options":{"spare":true,"editable":true},"raw_input":50}},"inputs":[{"index":0,"inputName":"val","node":"ramp1","output":"val"}],"connection_points":{"in":[{"name":"val","type":"float"},{"name":"destMin","type":"float"},{"name":"destMax","type":"float"}],"out":[{"name":"val","type":"float"}]}},"pow1":{"type":"pow","params":{"x":{"type":"vector3","default_value":[0,0,0],"options":{"spare":true,"editable":false}},"y":{"type":"vector3","default_value":[0,0,0],"options":{"spare":true,"editable":true},"raw_input":[1.3,1.3,1.3]}},"inputs":[{"index":0,"inputName":"x","node":"clamp1","output":"val"}],"connection_points":{"in":[{"name":"x","type":"vec3"},{"name":"y","type":"vec3"}],"out":[{"name":"val","type":"vec3"}]}},"clamp1":{"type":"clamp","params":{"value":{"type":"vector3","default_value":[0,0,0],"options":{"spare":true,"editable":false}},"min":{"type":"vector3","default_value":[0,0,0],"options":{"spare":true,"editable":true}},"max":{"type":"vector3","default_value":[1,1,1],"options":{"spare":true,"editable":true},"raw_input":[45.9,45.9,45.9]}},"inputs":[{"index":0,"inputName":"value","node":"vec4ToVec3_1","output":"vec3"}],"connection_points":{"in":[{"name":"value","type":"vec3"},{"name":"min","type":"vec3"},{"name":"max","type":"vec3"}],"out":[{"name":"val","type":"vec3"}]}},"fitFrom01_2":{"type":"fitFrom01","params":{"val":{"type":"float","default_value":0,"options":{"spare":true,"editable":false}},"destMin":{"type":"float","default_value":0,"options":{"spare":true,"editable":true}},"destMax":{"type":"float","default_value":1,"options":{"spare":true,"editable":true},"raw_input":50}},"inputs":[{"index":0,"inputName":"val","node":"vec3ToFloat1","output":"z"}],"connection_points":{"in":[{"name":"val","type":"float"},{"name":"destMin","type":"float"},{"name":"destMax","type":"float"}],"out":[{"name":"val","type":"float"}]}},"fitFrom01_3":{"type":"fitFrom01","params":{"val":{"type":"float","default_value":0,"options":{"spare":true,"editable":false}},"destMin":{"type":"float","default_value":0,"options":{"spare":true,"editable":true}},"destMax":{"type":"float","default_value":1,"options":{"spare":true,"editable":true},"raw_input":50}},"inputs":[{"index":0,"inputName":"val","node":"vec3ToFloat1","output":"y"}],"connection_points":{"in":[{"name":"val","type":"float"},{"name":"destMin","type":"float"},{"name":"destMax","type":"float"}],"out":[{"name":"val","type":"float"}]}},"vec3ToFloat1":{"type":"vec3ToFloat","params":{"vec":{"overriden_options":{}}},"inputs":[{"index":0,"inputName":"vec","node":"fitTo01_1","output":"val"}]}},"params":{"texture1":{"type":"node_path","default_value":"","options":{"spare":true,"computeOnDirty":true,"cook":false,"dependentOnFoundNode":true,"nodeSelection":{"context":"cop"}},"raw_input":"../imageEXR1","overriden_options":{"callback":"{}"}},"ramp1":{"type":"ramp","default_value":{"interpolation":"cubic","points":[{"position":0,"value":0},{"position":1,"value":1}]},"options":{"spare":true,"computeOnDirty":true,"cook":false,"dependentOnFoundNode":true},"overriden_options":{"callback":"{}"}}},"persisted_config":{"uniforms":{"v_POLY_texture_texture1":{"value":{"metadata":{"version":4.5,"type":"Texture","generator":"Texture.toJSON"},"uuid":"3fac572b-a4e3-47f1-91be-b8f3731cc33b","name":"/COP/imageEXR1","image":"28bdfb5c-8bea-4c22-bc16-4f0041483702","mapping":300,"repeat":[1,1],"offset":[0,0],"center":[0,0],"rotation":0,"wrap":[1000,1000],"format":1023,"internalFormat":null,"type":1016,"encoding":3000,"minFilter":1006,"magFilter":1006,"anisotropy":1,"flipY":false,"generateMipmaps":false,"premultiplyAlpha":false,"unpackAlignment":1}},"v_POLY_ramp_ramp1":{"value":{"metadata":{"version":4.5,"type":"Texture","generator":"Texture.toJSON"},"uuid":"7a505093-4431-41c5-aa26-6e03364afddd","name":"","image":"2f8061c9-7cd4-422a-8a04-bf8610374524","mapping":300,"repeat":[1,1],"offset":[0,0],"center":[0,0],"rotation":0,"wrap":[1001,1001],"format":1023,"internalFormat":null,"type":1015,"encoding":3000,"minFilter":1003,"magFilter":1003,"anisotropy":1,"flipY":false,"generateMipmaps":false,"premultiplyAlpha":false,"unpackAlignment":1}},"resolution":{"value":{"x":256,"y":256}}},"param_uniform_pairs":[["texture1","v_POLY_texture_texture1"],["ramp1","v_POLY_ramp_ramp1"]],"uniforms_time_dependent":false,"uniforms_resolution_dependent":false}},"imageEXR1":{"type":"imageEXR","params":{"url":"https://raw.githubusercontent.com/polygonjs/polygonjs-assets/master/textures/resources/polyhaven.com/envmaps/brown_photostudio_06_1k.exr"}},"builder2DArray1":{"type":"builder2DArray","nodes":{"globals1":{"type":"globals"},"output1":{"type":"output","inputs":[{"index":0,"inputName":"color","node":"noise1","output":"noise"},{"index":1,"inputName":"alpha","node":"constant1","output":"val"}]},"vec4ToVec3_1":{"type":"vec4ToVec3","params":{"vec4":{"overriden_options":{}}},"inputs":[{"index":0,"inputName":"vec4","node":"globals1","output":"gl_FragCoord"}]},"noise1":{"type":"noise","params":{"type":3,"outputType":3,"amp":{"type":"vector3","default_value":[1,1,1],"options":{"spare":true,"editable":true}},"position":{"type":"vector2","default_value":[0,0],"options":{"spare":true,"editable":false}},"freq":{"type":"vector2","default_value":[1,1],"options":{"spare":true,"editable":true}},"offset":{"type":"vector2","default_value":[0,0],"options":{"spare":true,"editable":true}}},"maxInputsCount":4,"inputs":[null,{"index":1,"inputName":"position","node":"globals1","output":"uv"}],"connection_points":{"in":[{"name":"amp","type":"vec3"},{"name":"position","type":"vec2"},{"name":"freq","type":"vec2"},{"name":"offset","type":"vec2"}],"out":[{"name":"noise","type":"vec3"}]}},"vec2ToVec3_1":{"type":"vec2ToVec3"},"constant1":{"type":"constant","params":{"float":1},"connection_points":{"in":[],"out":[{"name":"val","type":"float"}]}}},"persisted_config":{"uniforms":{"uLayer":{"value":3},"resolution":{"value":{"x":128,"y":128}}},"param_uniform_pairs":[],"uniforms_time_dependent":false,"uniforms_resolution_dependent":false}}}},"geo2":{"type":"geo","nodes":{"box1":{"type":"box"},"material1":{"type":"material","params":{"material":"../MAT/meshStandard1"},"inputs":["box1"],"flags":{"display":true}},"MAT":{"type":"materialsNetwork","nodes":{"meshStandard1":{"type":"meshStandard","params":{"emissive":[1,1,1],"useEmissiveMap":1,"emissiveMap":"../../../COP/builder2DArray1"}}}}},"params":{"t":[1.1768803217891668,0,0],"r":[0,0,-100.46359934218759],"CADLinearTolerance":{"overriden_options":{"callback":"{}"}},"CADAngularTolerance":{"overriden_options":{"callback":"{}"}},"CADCurveAbscissa":{"overriden_options":{"callback":"{}"}},"CADCurveTolerance":{"overriden_options":{"callback":"{}"}},"CADDisplayEdges":{"overriden_options":{"callback":"{}"}},"CADEdgesColor":{"overriden_options":{"callback":"{}"}},"CADDisplayMeshes":{"overriden_options":{"callback":"{}"}},"CADMeshesColor":{"overriden_options":{"callback":"{}"}},"CADWireframe":{"overriden_options":{"callback":"{}"}},"CSGFacetAngle":{"overriden_options":{"callback":"{}"}},"CSGLinesColor":{"overriden_options":{"callback":"{}"}},"CSGMeshesColor":{"overriden_options":{"callback":"{}"}},"CSGWireframe":{"overriden_options":{"callback":"{}"}},"SDFFacetAngle":{"overriden_options":{"callback":"{}"}},"SDFMeshesColor":{"overriden_options":{"callback":"{}"}},"SDFWireframe":{"overriden_options":{"callback":"{}"}}},"flags":{"display":true}},"geo3":{"type":"geo","nodes":{"box1":{"type":"box"},"fileGLTF1":{"type":"fileGLTF","params":{"url":"https://raw.githubusercontent.com/polygonjs/polygonjs-assets/master/models/sphere_with_texture.glb"},"flags":{"display":true}}},"params":{"t":[-1.203619797958408,0,0],"r":[0,-84.30530793287784,0],"CADLinearTolerance":{"overriden_options":{"callback":"{}"}},"CADAngularTolerance":{"overriden_options":{"callback":"{}"}},"CADCurveAbscissa":{"overriden_options":{"callback":"{}"}},"CADCurveTolerance":{"overriden_options":{"callback":"{}"}},"CADDisplayEdges":{"overriden_options":{"callback":"{}"}},"CADEdgesColor":{"overriden_options":{"callback":"{}"}},"CADDisplayMeshes":{"overriden_options":{"callback":"{}"}},"CADMeshesColor":{"overriden_options":{"callback":"{}"}},"CADWireframe":{"overriden_options":{"callback":"{}"}},"CSGFacetAngle":{"overriden_options":{"callback":"{}"}},"CSGLinesColor":{"overriden_options":{"callback":"{}"}},"CSGMeshesColor":{"overriden_options":{"callback":"{}"}},"CSGWireframe":{"overriden_options":{"callback":"{}"}},"SDFFacetAngle":{"overriden_options":{"callback":"{}"}},"SDFMeshesColor":{"overriden_options":{"callback":"{}"}},"SDFWireframe":{"overriden_options":{"callback":"{}"}}},"flags":{"display":true}}},"params":{"mainCameraPath":"/perspectiveCamera1","useEnvironment":1,"environment":"COP/envMap"}},"ui":{"nodes":{"geo1":{"pos":[-200,-100],"selection":["decompose1"],"nodes":{"fileGLTF1":{"pos":[-450,-100]},"decompose1":{"pos":[-450,50],"comment":"**1 SOP NODES**:\\n- [material__mesh_0](material__mesh_0)\\n**1 MAT NODES**:\\n- [meshStandard__mesh_0](MAT/meshStandard__mesh_0)\\n**1 COP NODES**:\\n- [fetch_map__mesh_0](COP/fetch_map__mesh_0)","nodes":{"subnetInput1":{"pos":[400,-400]},"subnetOutput1":{"pos":[400,0]},"MAT":{"pos":[200,0],"nodes":{"meshStandard__mesh_0":{"pos":[0,0]}}},"COP":{"pos":[0,0],"nodes":{"fetch_map__mesh_0":{"pos":[0,0]}}},"material__mesh_0":{"pos":[400,-200]}}}}},"grid":{"pos":[-50,-250],"nodes":{"planeHelper1":{"pos":[0,0]}}},"hemisphereLight1":{"pos":[100,-50]},"perspectiveCamera1":{"pos":[-200,100],"nodes":{"events1":{"pos":[-200,50],"nodes":{"cameraOrbitControls1":{"pos":[150,50]}}}}},"COP":{"pos":[-200,200],"selection":["envMap"],"nodes":{"envMap":{"pos":[50,350]},"imageEnv":{"pos":[-400,-50]},"imageUv":{"pos":[-150,250]},"builder1":{"pos":[200,0],"nodes":{"globals1":{"pos":[-400,-50]},"output1":{"pos":[750,100]},"texture1":{"pos":[-300,-50]},"vec4ToVec3_1":{"pos":[-150,-50]},"mult1":{"pos":[550,50]},"ramp1":{"pos":[150,150]},"floatToVec3_1":{"pos":[400,250]},"fitTo01_1":{"pos":[-100,250]},"fitFrom01_1":{"pos":[250,150]},"pow1":{"pos":[200,-50]},"clamp1":{"pos":[100,-150]},"fitFrom01_2":{"pos":[250,350]},"fitFrom01_3":{"pos":[250,250]},"vec3ToFloat1":{"pos":[0,250]}}},"imageEXR1":{"pos":[-300,-200]},"builder2DArray1":{"pos":[-50,0],"nodes":{"globals1":{"pos":[-200,0]},"output1":{"pos":[200,0]},"vec4ToVec3_1":{"pos":[-50,50]},"noise1":{"pos":[-50,-100]},"vec2ToVec3_1":{"pos":[-150,-150]},"constant1":{"pos":[0,0]}}}}},"geo2":{"pos":[-400,-100],"nodes":{"box1":{"pos":[0,0]},"material1":{"pos":[0,150]},"MAT":{"pos":[-200,50],"selection":["meshStandard1"],"nodes":{"meshStandard1":{"pos":[0,0]}}}}},"geo3":{"pos":[-100,-50],"nodes":{"box1":{"pos":[0,0]},"fileGLTF1":{"pos":[-150,0]}}}}},"shaders":{"/COP/builder1":{"fragment":"#include <common>\n\nuniform vec2 resolution;\n\n// removed:\n//// INSERT DEFINE\n\n\n\n// /COP/builder1/fitTo01_1\n//\n//\n// FIT\n//\n//\nfloat fit(float val, float srcMin, float srcMax, float destMin, float destMax){\n\tfloat src_range = srcMax - srcMin;\n\tfloat dest_range = destMax - destMin;\n\n\tfloat r = (val - srcMin) / src_range;\n\treturn (r * dest_range) + destMin;\n}\nvec2 fit(vec2 val, vec2 srcMin, vec2 srcMax, vec2 destMin, vec2 destMax){\n\treturn vec2(\n\t\tfit(val.x, srcMin.x, srcMax.x, destMin.x, destMax.x),\n\t\tfit(val.y, srcMin.y, srcMax.y, destMin.y, destMax.y)\n\t);\n}\nvec3 fit(vec3 val, vec3 srcMin, vec3 srcMax, vec3 destMin, vec3 destMax){\n\treturn vec3(\n\t\tfit(val.x, srcMin.x, srcMax.x, destMin.x, destMax.x),\n\t\tfit(val.y, srcMin.y, srcMax.y, destMin.y, destMax.y),\n\t\tfit(val.z, srcMin.z, srcMax.z, destMin.z, destMax.z)\n\t);\n}\nvec4 fit(vec4 val, vec4 srcMin, vec4 srcMax, vec4 destMin, vec4 destMax){\n\treturn vec4(\n\t\tfit(val.x, srcMin.x, srcMax.x, destMin.x, destMax.x),\n\t\tfit(val.y, srcMin.y, srcMax.y, destMin.y, destMax.y),\n\t\tfit(val.z, srcMin.z, srcMax.z, destMin.z, destMax.z),\n\t\tfit(val.w, srcMin.w, srcMax.w, destMin.w, destMax.w)\n\t);\n}\n\n//\n//\n// FIT TO 01\n// fits the range [srcMin, srcMax] to [0, 1]\n//\nfloat fitTo01(float val, float srcMin, float srcMax){\n\tfloat size = srcMax - srcMin;\n\treturn (val - srcMin) / size;\n}\nvec2 fitTo01(vec2 val, vec2 srcMin, vec2 srcMax){\n\treturn vec2(\n\t\tfitTo01(val.x, srcMin.x, srcMax.x),\n\t\tfitTo01(val.y, srcMin.y, srcMax.y)\n\t);\n}\nvec3 fitTo01(vec3 val, vec3 srcMin, vec3 srcMax){\n\treturn vec3(\n\t\tfitTo01(val.x, srcMin.x, srcMax.x),\n\t\tfitTo01(val.y, srcMin.y, srcMax.y),\n\t\tfitTo01(val.z, srcMin.z, srcMax.z)\n\t);\n}\nvec4 fitTo01(vec4 val, vec4 srcMin, vec4 srcMax){\n\treturn vec4(\n\t\tfitTo01(val.x, srcMin.x, srcMax.x),\n\t\tfitTo01(val.y, srcMin.y, srcMax.y),\n\t\tfitTo01(val.z, srcMin.z, srcMax.z),\n\t\tfitTo01(val.w, srcMin.w, srcMax.w)\n\t);\n}\n\n//\n//\n// FIT FROM 01\n// fits the range [0, 1] to [destMin, destMax]\n//\nfloat fitFrom01(float val, float destMin, float destMax){\n\treturn fit(val, 0.0, 1.0, destMin, destMax);\n}\nvec2 fitFrom01(vec2 val, vec2 srcMin, vec2 srcMax){\n\treturn vec2(\n\t\tfitFrom01(val.x, srcMin.x, srcMax.x),\n\t\tfitFrom01(val.y, srcMin.y, srcMax.y)\n\t);\n}\nvec3 fitFrom01(vec3 val, vec3 srcMin, vec3 srcMax){\n\treturn vec3(\n\t\tfitFrom01(val.x, srcMin.x, srcMax.x),\n\t\tfitFrom01(val.y, srcMin.y, srcMax.y),\n\t\tfitFrom01(val.z, srcMin.z, srcMax.z)\n\t);\n}\nvec4 fitFrom01(vec4 val, vec4 srcMin, vec4 srcMax){\n\treturn vec4(\n\t\tfitFrom01(val.x, srcMin.x, srcMax.x),\n\t\tfitFrom01(val.y, srcMin.y, srcMax.y),\n\t\tfitFrom01(val.z, srcMin.z, srcMax.z),\n\t\tfitFrom01(val.w, srcMin.w, srcMax.w)\n\t);\n}\n\n//\n//\n// FIT FROM 01 TO VARIANCE\n// fits the range [0, 1] to [center - variance, center + variance]\n//\nfloat fitFrom01ToVariance(float val, float center, float variance){\n\treturn fitFrom01(val, center - variance, center + variance);\n}\nvec2 fitFrom01ToVariance(vec2 val, vec2 center, vec2 variance){\n\treturn vec2(\n\t\tfitFrom01ToVariance(val.x, center.x, variance.x),\n\t\tfitFrom01ToVariance(val.y, center.y, variance.y)\n\t);\n}\nvec3 fitFrom01ToVariance(vec3 val, vec3 center, vec3 variance){\n\treturn vec3(\n\t\tfitFrom01ToVariance(val.x, center.x, variance.x),\n\t\tfitFrom01ToVariance(val.y, center.y, variance.y),\n\t\tfitFrom01ToVariance(val.z, center.z, variance.z)\n\t);\n}\nvec4 fitFrom01ToVariance(vec4 val, vec4 center, vec4 variance){\n\treturn vec4(\n\t\tfitFrom01ToVariance(val.x, center.x, variance.x),\n\t\tfitFrom01ToVariance(val.y, center.y, variance.y),\n\t\tfitFrom01ToVariance(val.z, center.z, variance.z),\n\t\tfitFrom01ToVariance(val.w, center.w, variance.w)\n\t);\n}\n\n\n\n\n\n\n\n// /COP/builder1/texture1\nuniform sampler2D v_POLY_texture_texture1;\n\n// /COP/builder1/ramp1\nuniform sampler2D v_POLY_ramp_ramp1;\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// /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// /COP/builder1/texture1\n\tvec4 v_POLY_texture1_rgba = texture2D(v_POLY_texture_texture1, v_POLY_globals1_uv);\n\t\n\t// /COP/builder1/vec4ToVec3_1\n\tvec3 v_POLY_vec4ToVec3_1_vec3 = v_POLY_texture1_rgba.xyz;\n\tfloat v_POLY_vec4ToVec3_1_w = v_POLY_texture1_rgba.w;\n\t\n\t// /COP/builder1/fitTo01_1\n\tvec3 v_POLY_fitTo01_1_val = fitTo01(v_POLY_vec4ToVec3_1_vec3, vec3(0.0, 0.0, 0.0), vec3(50.0, 50.0, 50.0));\n\t\n\t// /COP/builder1/vec3ToFloat1\n\tfloat v_POLY_vec3ToFloat1_x = v_POLY_fitTo01_1_val.x;\n\tfloat v_POLY_vec3ToFloat1_z = v_POLY_fitTo01_1_val.z;\n\tfloat v_POLY_vec3ToFloat1_y = v_POLY_fitTo01_1_val.y;\n\t\n\t// /COP/builder1/ramp1\n\tfloat v_POLY_ramp1_val = texture2D(v_POLY_ramp_ramp1, vec2(v_POLY_vec3ToFloat1_x, 0.0)).x;\n\t\n\t// /COP/builder1/fitFrom01_3\n\tfloat v_POLY_fitFrom01_3_val = fitFrom01(v_POLY_vec3ToFloat1_y, 0.0, 50.0);\n\t\n\t// /COP/builder1/fitFrom01_2\n\tfloat v_POLY_fitFrom01_2_val = fitFrom01(v_POLY_vec3ToFloat1_z, 0.0, 50.0);\n\t\n\t// /COP/builder1/fitFrom01_1\n\tfloat v_POLY_fitFrom01_1_val = fitFrom01(v_POLY_ramp1_val, 0.0, 50.0);\n\t\n\t// /COP/builder1/floatToVec3_1\n\tvec3 v_POLY_floatToVec3_1_vec3 = vec3(v_POLY_fitFrom01_1_val, v_POLY_fitFrom01_3_val, v_POLY_fitFrom01_2_val);\n\t\n\t// /COP/builder1/output1\n\tdiffuseColor.xyz = v_POLY_floatToVec3_1_vec3;\n\tdiffuseColor.a = v_POLY_vec4ToVec3_1_w;\n\n\n\n\n\tgl_FragColor = vec4( diffuseColor );\n}"},"/COP/builder2DArray1":{"fragment":"#include <common>\n\nuniform float uLayer;\nuniform vec2 resolution;\n\n// removed:\n//// INSERT DEFINE\n\n\n\n// /COP/builder2DArray1/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 simplex noise function.\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\nfloat snoise(vec2 v)\n {\n const vec4 C = vec4(0.211324865405187, // (3.0-sqrt(3.0))/6.0\n 0.366025403784439, // 0.5*(sqrt(3.0)-1.0)\n -0.577350269189626, // -1.0 + 2.0 * C.x\n 0.024390243902439); // 1.0 / 41.0\n// First corner\n vec2 i = floor(v + dot(v, C.yy) );\n vec2 x0 = v - i + dot(i, C.xx);\n\n// Other corners\n vec2 i1;\n //i1.x = step( x0.y, x0.x ); // x0.x > x0.y ? 1.0 : 0.0\n //i1.y = 1.0 - i1.x;\n i1 = (x0.x > x0.y) ? vec2(1.0, 0.0) : vec2(0.0, 1.0);\n // x0 = x0 - 0.0 + 0.0 * C.xx ;\n // x1 = x0 - i1 + 1.0 * C.xx ;\n // x2 = x0 - 1.0 + 2.0 * C.xx ;\n vec4 x12 = x0.xyxy + C.xxzz;\n x12.xy -= i1;\n\n// Permutations\n i = mod289(i); // Avoid truncation effects in permutation\n vec3 p = permute( permute( i.y + vec3(0.0, i1.y, 1.0 ))\n\t\t+ i.x + vec3(0.0, i1.x, 1.0 ));\n\n vec3 m = max(0.5 - vec3(dot(x0,x0), dot(x12.xy,x12.xy), dot(x12.zw,x12.zw)), 0.0);\n m = m*m ;\n m = m*m ;\n\n// Gradients: 41 points uniformly over a line, mapped onto a diamond.\n// The ring size 17*17 = 289 is close to a multiple of 41 (41*7 = 287)\n\n vec3 x = 2.0 * fract(p * C.www) - 1.0;\n vec3 h = abs(x) - 0.5;\n vec3 ox = floor(x + 0.5);\n vec3 a0 = x - ox;\n\n// Normalise gradients implicitly by scaling m\n// Approximation of: m *= inversesqrt( a0*a0 + h*h );\n m *= 1.79284291400159 - 0.85373472095314 * ( a0*a0 + h*h );\n\n// Compute final noise value at P\n vec3 g;\n g.x = a0.x * x0.x + h.x * x0.y;\n g.yz = a0.yz * x12.xz + h.yz * x12.yw;\n return 130.0 * dot(m, g);\n}\n\n\nfloat fbm_snoise_COP_builder2DArray1_noise1(in vec2 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\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// /COP/builder2DArray1/globals1\n\tvec4 v_POLY_globals1_gl_FragCoord = gl_FragCoord;\n\tvec2 v_POLY_globals1_uv = vec2(gl_FragCoord.x / (resolution.x-1.), gl_FragCoord.y / (resolution.y-1.));\n\t\n\t// /COP/builder2DArray1/constant1\n\tfloat v_POLY_constant1_val = 1.0;\n\t\n\t// /COP/builder2DArray1/noise1\n\tfloat v_POLY_noise1_noisex = (vec3(1.0, 1.0, 1.0)*fbm_snoise_COP_builder2DArray1_noise1((v_POLY_globals1_uv*vec2(1.0, 1.0))+(vec2(0.0, 0.0)+vec2(0.0, 0.0)))).x;\n\tfloat v_POLY_noise1_noisey = (vec3(1.0, 1.0, 1.0)*fbm_snoise_COP_builder2DArray1_noise1((v_POLY_globals1_uv*vec2(1.0, 1.0))+(vec2(0.0, 0.0)+vec2(1000.0, 1000.0)))).y;\n\tfloat v_POLY_noise1_noisez = (vec3(1.0, 1.0, 1.0)*fbm_snoise_COP_builder2DArray1_noise1((v_POLY_globals1_uv*vec2(1.0, 1.0))+(vec2(0.0, 0.0)+vec2(2000.0, 2000.0)))).z;\n\tvec3 v_POLY_noise1_noise = vec3(v_POLY_noise1_noisex, v_POLY_noise1_noisey, v_POLY_noise1_noisez);\n\t\n\t// /COP/builder2DArray1/output1\n\tdiffuseColor.xyz = v_POLY_noise1_noise;\n\tdiffuseColor.a = v_POLY_constant1_val;\n\n\n\n\n\tgl_FragColor = vec4( diffuseColor );\n}"}},"jsFunctionBodies":{}}
Code editor
{"multiple_panel":{"split_ratio":0.600459242250287,"split_panel0":{"split_ratio":0.31313131313131315,"split_panel0":{"panelTypes":["viewer","network","params"],"currentPanelIndex":0,"panel_data":{"camera":"/perspectiveCamera1","isViewerInitLayoutData":true,"linkIndex":1,"overlayedNetwork":{"allowed":false,"displayed":false,"initLayoutData":{"camera":{"position":{"x":250,"y":25},"zoom":1},"history":{"2":{"position":{"x":250,"y":25},"zoom":1},"744":{"position":{"x":100,"y":-75},"zoom":1},"835":{"position":{"x":0,"y":0},"zoom":1},"1181":{"position":{"x":0,"y":0},"zoom":1}},"paramsDisplayed":false,"linkIndex":1}}}},"split_panel1":{"split_ratio":0.48755656108597284,"split_panel0":{"panelTypes":["viewer","network","params"],"currentPanelIndex":2,"panel_data":{"active_folder":null,"linkIndex":1}},"split_panel1":{"panelTypes":["viewer","network","params"],"currentPanelIndex":1,"panel_data":{"camera":{"position":{"x":107.23142097241272,"y":-35.026503222069756},"zoom":0.6858710562414272},"history":{"2":{"position":{"x":107.23142097241272,"y":-35.026503222069756},"zoom":0.6858710562414272},"744":{"position":{"x":130,"y":-31},"zoom":0.5000000000000001},"835":{"position":{"x":-26,"y":-76},"zoom":0.14121476824050008},"1181":{"position":{"x":0,"y":0},"zoom":0.6172839506172841}},"paramsDisplayed":false,"linkIndex":1}},"split_mode":"horizontal"},"split_mode":"horizontal"},"split_panel1":{"split_ratio":0.6487956487956488,"split_panel0":{"split_ratio":0.4802395209580838,"split_panel0":{"panelTypes":["viewer","network","params","spreadsheet","nodeDocs"],"currentPanelIndex":4,"panel_data":{"linkIndex":2}},"split_panel1":{"panelTypes":["viewer","network","params"],"currentPanelIndex":2,"panel_data":{"active_folder":null,"linkIndex":2}},"split_mode":"horizontal"},"split_panel1":{"panelTypes":["viewer","network","params"],"currentPanelIndex":1,"panel_data":{"camera":{"position":{"x":-73.29980740740737,"y":18.80537722908076},"zoom":0.2657205000000005},"history":{"2":{"position":{"x":-39.4444444444444,"y":-101.66666666666663},"zoom":0.4500000000000001},"36":{"position":{"x":280.87972579999996,"y":-71.22200319999999},"zoom":1.0453757906438452},"221":{"position":{"x":-73.29980740740737,"y":18.80537722908076},"zoom":0.2657205000000005},"995":{"position":{"x":24.414464375801984,"y":24.922837541467768},"zoom":1.290587395856601}},"paramsDisplayed":false,"linkIndex":2}},"split_mode":"horizontal"},"split_mode":"vertical"},"currentNodes":["/","/COP","/geo1","/geo1","/geo1","/geo1","/geo1","/geo1"],"navigationHistory":{"nodePaths":{"1":["/geo1","/","/COP","/COP/builder1","/","/geo2","/geo2/MAT","/geo2","/","/geo2","/geo2/MAT","/geo2","/","/geo2","/","/geo3"],"2":["/geo1","/","/COP","/COP/builder2DArray1","/","/COP","/COP/builder2DArray1"],"3":["/geo1"],"4":["/geo1"],"5":["/geo1"],"6":["/geo1"],"7":["/geo1"],"8":["/geo1"]},"index":{"1":14,"2":5,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0}},"fullscreenPanelId":null,"saveOptions":{"createExport":false,"checkRemoteAssetsUse":true,"minimizeFilesCount":false,"compressJs":true,"createZip":false,"runPostExportCommand":false},"paramsModal":[]}
Used nodes
cop/builder;cop/builder2DArray;cop/envMap;cop/fetch;cop/image;cop/imageEXR;event/cameraOrbitControls;mat/meshStandard;obj/copNetwork;obj/geo;obj/hemisphereLight;obj/perspectiveCamera;sop/box;sop/copNetwork;sop/decompose;sop/eventsNetwork;sop/fileGLTF;sop/material;sop/materialsNetwork;sop/planeHelper;sop/subnetInput;sop/subnetOutput
Used operations
Used modules
Used assemblers
GL_TEXTURE;GL_TEXTURE_2D_ARRAY
Used integrations
[]
Used assets
Nodes map
{"/geo1":"obj/geo","/geo1/fileGLTF1":"sop/fileGLTF","/geo1/decompose1":"sop/decompose","/geo1/decompose1/subnetInput1":"sop/subnetInput","/geo1/decompose1/subnetOutput1":"sop/subnetOutput","/geo1/decompose1/MAT":"sop/materialsNetwork","/geo1/decompose1/MAT/meshStandard__mesh_0":"mat/meshStandard","/geo1/decompose1/COP":"sop/copNetwork","/geo1/decompose1/COP/fetch_map__mesh_0":"cop/fetch","/geo1/decompose1/material__mesh_0":"sop/material","/grid":"obj/geo","/grid/planeHelper1":"sop/planeHelper","/hemisphereLight1":"obj/hemisphereLight","/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","/COP/builder1":"cop/builder","/COP/imageEXR1":"cop/imageEXR","/COP/builder2DArray1":"cop/builder2DArray","/geo2":"obj/geo","/geo2/box1":"sop/box","/geo2/material1":"sop/material","/geo2/MAT":"sop/materialsNetwork","/geo2/MAT/meshStandard1":"mat/meshStandard","/geo3":"obj/geo","/geo3/box1":"sop/box","/geo3/fileGLTF1":"sop/fileGLTF"}
Js version
Editor version
Engine version
Name
*
Code
{"properties":{"frame":0,"maxFrame":600,"maxFrameLocked":false,"realtimeState":true,"mainCameraPath":"/perspectiveCamera1","versions":{"polygonjs":"1.4.10"}},"root":{"type":"root","nodes":{"geo1":{"type":"geo","nodes":{"fileGLTF1":{"type":"fileGLTF","params":{"url":"https://raw.githubusercontent.com/polygonjs/polygonjs-assets/master/models/photogrammetry/gui_fradin_textured.glb"}},"decompose1":{"type":"decompose","nodes":{"subnetInput1":{"type":"subnetInput","flags":{"display":true}},"subnetOutput1":{"type":"subnetOutput","inputs":["material__mesh_0"]},"MAT":{"type":"materialsNetwork","nodes":{"meshStandard__mesh_0":{"type":"meshStandard","params":{"color":{"overriden_options":{"conversion":"no conversion"}},"useMap":true,"map":"../../COP/fetch_map__mesh_0","emissive":{"overriden_options":{"conversion":"no conversion"}},"normalScale":[1,-1]}}}},"COP":{"type":"copNetwork","nodes":{"fetch_map__mesh_0":{"type":"fetch","params":{"node":"../../subnetInput1","group":"/mesh_0","name":"map"}}}},"material__mesh_0":{"type":"material","params":{"group":"/mesh_0","applyToChildren":false,"material":"../MAT/meshStandard__mesh_0"},"inputs":["subnetInput1"]}},"inputs":["fileGLTF1"],"flags":{"display":true}}},"params":{"CADLinearTolerance":{"overriden_options":{"callback":"{}"}},"CADAngularTolerance":{"overriden_options":{"callback":"{}"}},"CADCurveAbscissa":{"overriden_options":{"callback":"{}"}},"CADCurveTolerance":{"overriden_options":{"callback":"{}"}},"CADDisplayEdges":{"overriden_options":{"callback":"{}"}},"CADEdgesColor":{"overriden_options":{"callback":"{}"}},"CADDisplayMeshes":{"overriden_options":{"callback":"{}"}},"CADMeshesColor":{"overriden_options":{"callback":"{}"}},"CADWireframe":{"overriden_options":{"callback":"{}"}},"CSGFacetAngle":{"overriden_options":{"callback":"{}"}},"CSGLinesColor":{"overriden_options":{"callback":"{}"}},"CSGMeshesColor":{"overriden_options":{"callback":"{}"}},"CSGWireframe":{"overriden_options":{"callback":"{}"}},"SDFFacetAngle":{"overriden_options":{"callback":"{}"}},"SDFMeshesColor":{"overriden_options":{"callback":"{}"}},"SDFWireframe":{"overriden_options":{"callback":"{}"}}},"flags":{"display":true}},"grid":{"type":"geo","nodes":{"planeHelper1":{"type":"planeHelper","flags":{"display":true}}},"params":{"CADLinearTolerance":{"overriden_options":{"callback":"{}"}},"CADAngularTolerance":{"overriden_options":{"callback":"{}"}},"CADCurveAbscissa":{"overriden_options":{"callback":"{}"}},"CADCurveTolerance":{"overriden_options":{"callback":"{}"}},"CADDisplayEdges":{"overriden_options":{"callback":"{}"}},"CADEdgesColor":{"overriden_options":{"callback":"{}"}},"CADDisplayMeshes":{"overriden_options":{"callback":"{}"}},"CADMeshesColor":{"overriden_options":{"callback":"{}"}},"CADWireframe":{"overriden_options":{"callback":"{}"}},"CSGFacetAngle":{"overriden_options":{"callback":"{}"}},"CSGLinesColor":{"overriden_options":{"callback":"{}"}},"CSGMeshesColor":{"overriden_options":{"callback":"{}"}},"CSGWireframe":{"overriden_options":{"callback":"{}"}},"SDFFacetAngle":{"overriden_options":{"callback":"{}"}},"SDFMeshesColor":{"overriden_options":{"callback":"{}"}},"SDFWireframe":{"overriden_options":{"callback":"{}"}}},"flags":{"display":false}},"hemisphereLight1":{"type":"hemisphereLight","flags":{"display":true}},"perspectiveCamera1":{"type":"perspectiveCamera","nodes":{"events1":{"type":"eventsNetwork","nodes":{"cameraOrbitControls1":{"type":"cameraOrbitControls","params":{"target":[1.4590236309840876,-0.2520233402858222,-0.7166717830029278]}}}}},"params":{"t":[3.0161526633531355,1.1787657307191874,2.814738208647524],"r":[-22.723127930556515,44.66532130223666,16.403892417511617],"controls":"./events1/cameraOrbitControls1"},"flags":{"display":true}},"COP":{"type":"copNetwork","nodes":{"envMap":{"type":"envMap","inputs":["imageEXR1"]},"imageEnv":{"type":"imageEXR","params":{"url":"https://raw.githubusercontent.com/polygonjs/polygonjs-assets/master/textures/resources/polyhaven.com/envmaps/satara_night_1k.exr"}},"imageUv":{"type":"image","params":{"url":"https://raw.githubusercontent.com/polygonjs/polygonjs-assets/master/textures/uv.jpg","tflipY":true}},"builder1":{"type":"builder","nodes":{"globals1":{"type":"globals"},"output1":{"type":"output","inputs":[{"index":0,"inputName":"color","node":"floatToVec3_1","output":"vec3"},{"index":1,"inputName":"alpha","node":"vec4ToVec3_1","output":"w"}]},"texture1":{"type":"texture","params":{"uv":{"overriden_options":{}},"blurPixelsCountX":{"overriden_options":{}},"blurPixelsCountY":{"overriden_options":{}}},"inputs":[{"index":0,"inputName":"uv","node":"globals1","output":"uv"}]},"vec4ToVec3_1":{"type":"vec4ToVec3","params":{"vec4":{"overriden_options":{}}},"inputs":[{"index":0,"inputName":"vec4","node":"texture1","output":"rgba"}]},"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":false},"raw_input":[1.9,1.9,1.9]},"mult2":{"type":"vector3","default_value":[1,1,1],"options":{"spare":true,"editable":true}}},"maxInputsCount":3,"inputs":[{"index":0,"inputName":"mult0","node":"pow1","output":"val"},{"index":1,"inputName":"mult1","node":"floatToVec3_1","output":"vec3"}],"connection_points":{"in":[{"name":"mult0","type":"vec3"},{"name":"mult1","type":"vec3"},{"name":"mult2","type":"vec3"}],"out":[{"name":"product","type":"vec3"}]}},"ramp1":{"type":"ramp","params":{"input":{"overriden_options":{}}},"inputs":[{"index":0,"inputName":"input","node":"vec3ToFloat1","output":"x"}]},"floatToVec3_1":{"type":"floatToVec3","params":{"x":{"overriden_options":{}},"y":{"overriden_options":{}},"z":{"overriden_options":{}}},"inputs":[{"index":0,"inputName":"x","node":"fitFrom01_1","output":"val"},{"index":1,"inputName":"y","node":"fitFrom01_3","output":"val"},{"index":2,"inputName":"z","node":"fitFrom01_2","output":"val"}]},"fitTo01_1":{"type":"fitTo01","params":{"val":{"type":"vector3","default_value":[0,0,0],"options":{"spare":true,"editable":false}},"srcMin":{"type":"vector3","default_value":[0,0,0],"options":{"spare":true,"editable":true}},"srcMax":{"type":"vector3","default_value":[1,1,1],"options":{"spare":true,"editable":true},"raw_input":[50,50,50]}},"inputs":[{"index":0,"inputName":"val","node":"vec4ToVec3_1","output":"vec3"}],"connection_points":{"in":[{"name":"val","type":"vec3"},{"name":"srcMin","type":"vec3"},{"name":"srcMax","type":"vec3"}],"out":[{"name":"val","type":"vec3"}]}},"fitFrom01_1":{"type":"fitFrom01","params":{"val":{"type":"float","default_value":0,"options":{"spare":true,"editable":false}},"destMin":{"type":"float","default_value":0,"options":{"spare":true,"editable":true}},"destMax":{"type":"float","default_value":1,"options":{"spare":true,"editable":true},"raw_input":50}},"inputs":[{"index":0,"inputName":"val","node":"ramp1","output":"val"}],"connection_points":{"in":[{"name":"val","type":"float"},{"name":"destMin","type":"float"},{"name":"destMax","type":"float"}],"out":[{"name":"val","type":"float"}]}},"pow1":{"type":"pow","params":{"x":{"type":"vector3","default_value":[0,0,0],"options":{"spare":true,"editable":false}},"y":{"type":"vector3","default_value":[0,0,0],"options":{"spare":true,"editable":true},"raw_input":[1.3,1.3,1.3]}},"inputs":[{"index":0,"inputName":"x","node":"clamp1","output":"val"}],"connection_points":{"in":[{"name":"x","type":"vec3"},{"name":"y","type":"vec3"}],"out":[{"name":"val","type":"vec3"}]}},"clamp1":{"type":"clamp","params":{"value":{"type":"vector3","default_value":[0,0,0],"options":{"spare":true,"editable":false}},"min":{"type":"vector3","default_value":[0,0,0],"options":{"spare":true,"editable":true}},"max":{"type":"vector3","default_value":[1,1,1],"options":{"spare":true,"editable":true},"raw_input":[45.9,45.9,45.9]}},"inputs":[{"index":0,"inputName":"value","node":"vec4ToVec3_1","output":"vec3"}],"connection_points":{"in":[{"name":"value","type":"vec3"},{"name":"min","type":"vec3"},{"name":"max","type":"vec3"}],"out":[{"name":"val","type":"vec3"}]}},"fitFrom01_2":{"type":"fitFrom01","params":{"val":{"type":"float","default_value":0,"options":{"spare":true,"editable":false}},"destMin":{"type":"float","default_value":0,"options":{"spare":true,"editable":true}},"destMax":{"type":"float","default_value":1,"options":{"spare":true,"editable":true},"raw_input":50}},"inputs":[{"index":0,"inputName":"val","node":"vec3ToFloat1","output":"z"}],"connection_points":{"in":[{"name":"val","type":"float"},{"name":"destMin","type":"float"},{"name":"destMax","type":"float"}],"out":[{"name":"val","type":"float"}]}},"fitFrom01_3":{"type":"fitFrom01","params":{"val":{"type":"float","default_value":0,"options":{"spare":true,"editable":false}},"destMin":{"type":"float","default_value":0,"options":{"spare":true,"editable":true}},"destMax":{"type":"float","default_value":1,"options":{"spare":true,"editable":true},"raw_input":50}},"inputs":[{"index":0,"inputName":"val","node":"vec3ToFloat1","output":"y"}],"connection_points":{"in":[{"name":"val","type":"float"},{"name":"destMin","type":"float"},{"name":"destMax","type":"float"}],"out":[{"name":"val","type":"float"}]}},"vec3ToFloat1":{"type":"vec3ToFloat","params":{"vec":{"overriden_options":{}}},"inputs":[{"index":0,"inputName":"vec","node":"fitTo01_1","output":"val"}]}},"params":{"texture1":{"type":"node_path","default_value":"","options":{"spare":true,"computeOnDirty":true,"cook":false,"dependentOnFoundNode":true,"nodeSelection":{"context":"cop"}},"raw_input":"../imageEXR1","overriden_options":{"callback":"{}"}},"ramp1":{"type":"ramp","default_value":{"interpolation":"cubic","points":[{"position":0,"value":0},{"position":1,"value":1}]},"options":{"spare":true,"computeOnDirty":true,"cook":false,"dependentOnFoundNode":true},"overriden_options":{"callback":"{}"}}},"persisted_config":{"uniforms":{"v_POLY_texture_texture1":{"value":{"metadata":{"version":4.5,"type":"Texture","generator":"Texture.toJSON"},"uuid":"3fac572b-a4e3-47f1-91be-b8f3731cc33b","name":"/COP/imageEXR1","image":"28bdfb5c-8bea-4c22-bc16-4f0041483702","mapping":300,"repeat":[1,1],"offset":[0,0],"center":[0,0],"rotation":0,"wrap":[1000,1000],"format":1023,"internalFormat":null,"type":1016,"encoding":3000,"minFilter":1006,"magFilter":1006,"anisotropy":1,"flipY":false,"generateMipmaps":false,"premultiplyAlpha":false,"unpackAlignment":1}},"v_POLY_ramp_ramp1":{"value":{"metadata":{"version":4.5,"type":"Texture","generator":"Texture.toJSON"},"uuid":"7a505093-4431-41c5-aa26-6e03364afddd","name":"","image":"2f8061c9-7cd4-422a-8a04-bf8610374524","mapping":300,"repeat":[1,1],"offset":[0,0],"center":[0,0],"rotation":0,"wrap":[1001,1001],"format":1023,"internalFormat":null,"type":1015,"encoding":3000,"minFilter":1003,"magFilter":1003,"anisotropy":1,"flipY":false,"generateMipmaps":false,"premultiplyAlpha":false,"unpackAlignment":1}},"resolution":{"value":{"x":256,"y":256}}},"param_uniform_pairs":[["texture1","v_POLY_texture_texture1"],["ramp1","v_POLY_ramp_ramp1"]],"uniforms_time_dependent":false,"uniforms_resolution_dependent":false}},"imageEXR1":{"type":"imageEXR","params":{"url":"https://raw.githubusercontent.com/polygonjs/polygonjs-assets/master/textures/resources/polyhaven.com/envmaps/brown_photostudio_06_1k.exr"}},"builder2DArray1":{"type":"builder2DArray","nodes":{"globals1":{"type":"globals"},"output1":{"type":"output","inputs":[{"index":0,"inputName":"color","node":"noise1","output":"noise"},{"index":1,"inputName":"alpha","node":"constant1","output":"val"}]},"vec4ToVec3_1":{"type":"vec4ToVec3","params":{"vec4":{"overriden_options":{}}},"inputs":[{"index":0,"inputName":"vec4","node":"globals1","output":"gl_FragCoord"}]},"noise1":{"type":"noise","params":{"type":3,"outputType":3,"amp":{"type":"vector3","default_value":[1,1,1],"options":{"spare":true,"editable":true}},"position":{"type":"vector2","default_value":[0,0],"options":{"spare":true,"editable":false}},"freq":{"type":"vector2","default_value":[1,1],"options":{"spare":true,"editable":true}},"offset":{"type":"vector2","default_value":[0,0],"options":{"spare":true,"editable":true}}},"maxInputsCount":4,"inputs":[null,{"index":1,"inputName":"position","node":"globals1","output":"uv"}],"connection_points":{"in":[{"name":"amp","type":"vec3"},{"name":"position","type":"vec2"},{"name":"freq","type":"vec2"},{"name":"offset","type":"vec2"}],"out":[{"name":"noise","type":"vec3"}]}},"vec2ToVec3_1":{"type":"vec2ToVec3"},"constant1":{"type":"constant","params":{"float":1},"connection_points":{"in":[],"out":[{"name":"val","type":"float"}]}}},"persisted_config":{"uniforms":{"uLayer":{"value":3},"resolution":{"value":{"x":128,"y":128}}},"param_uniform_pairs":[],"uniforms_time_dependent":false,"uniforms_resolution_dependent":false}}}},"geo2":{"type":"geo","nodes":{"box1":{"type":"box"},"material1":{"type":"material","params":{"material":"../MAT/meshStandard1"},"inputs":["box1"],"flags":{"display":true}},"MAT":{"type":"materialsNetwork","nodes":{"meshStandard1":{"type":"meshStandard","params":{"emissive":[1,1,1],"useEmissiveMap":1,"emissiveMap":"../../../COP/builder2DArray1"}}}}},"params":{"t":[1.1768803217891668,0,0],"r":[0,0,-100.46359934218759],"CADLinearTolerance":{"overriden_options":{"callback":"{}"}},"CADAngularTolerance":{"overriden_options":{"callback":"{}"}},"CADCurveAbscissa":{"overriden_options":{"callback":"{}"}},"CADCurveTolerance":{"overriden_options":{"callback":"{}"}},"CADDisplayEdges":{"overriden_options":{"callback":"{}"}},"CADEdgesColor":{"overriden_options":{"callback":"{}"}},"CADDisplayMeshes":{"overriden_options":{"callback":"{}"}},"CADMeshesColor":{"overriden_options":{"callback":"{}"}},"CADWireframe":{"overriden_options":{"callback":"{}"}},"CSGFacetAngle":{"overriden_options":{"callback":"{}"}},"CSGLinesColor":{"overriden_options":{"callback":"{}"}},"CSGMeshesColor":{"overriden_options":{"callback":"{}"}},"CSGWireframe":{"overriden_options":{"callback":"{}"}},"SDFFacetAngle":{"overriden_options":{"callback":"{}"}},"SDFMeshesColor":{"overriden_options":{"callback":"{}"}},"SDFWireframe":{"overriden_options":{"callback":"{}"}}},"flags":{"display":true}},"geo3":{"type":"geo","nodes":{"box1":{"type":"box"},"fileGLTF1":{"type":"fileGLTF","params":{"url":"https://raw.githubusercontent.com/polygonjs/polygonjs-assets/master/models/sphere_with_texture.glb"},"flags":{"display":true}}},"params":{"t":[-1.203619797958408,0,0],"r":[0,-84.30530793287784,0],"CADLinearTolerance":{"overriden_options":{"callback":"{}"}},"CADAngularTolerance":{"overriden_options":{"callback":"{}"}},"CADCurveAbscissa":{"overriden_options":{"callback":"{}"}},"CADCurveTolerance":{"overriden_options":{"callback":"{}"}},"CADDisplayEdges":{"overriden_options":{"callback":"{}"}},"CADEdgesColor":{"overriden_options":{"callback":"{}"}},"CADDisplayMeshes":{"overriden_options":{"callback":"{}"}},"CADMeshesColor":{"overriden_options":{"callback":"{}"}},"CADWireframe":{"overriden_options":{"callback":"{}"}},"CSGFacetAngle":{"overriden_options":{"callback":"{}"}},"CSGLinesColor":{"overriden_options":{"callback":"{}"}},"CSGMeshesColor":{"overriden_options":{"callback":"{}"}},"CSGWireframe":{"overriden_options":{"callback":"{}"}},"SDFFacetAngle":{"overriden_options":{"callback":"{}"}},"SDFMeshesColor":{"overriden_options":{"callback":"{}"}},"SDFWireframe":{"overriden_options":{"callback":"{}"}}},"flags":{"display":true}}},"params":{"mainCameraPath":"/perspectiveCamera1","useEnvironment":1,"environment":"COP/envMap"}},"ui":{"nodes":{"geo1":{"pos":[-200,-100],"selection":["decompose1"],"nodes":{"fileGLTF1":{"pos":[-450,-100]},"decompose1":{"pos":[-450,50],"comment":"**1 SOP NODES**:\\n- [material__mesh_0](material__mesh_0)\\n**1 MAT NODES**:\\n- [meshStandard__mesh_0](MAT/meshStandard__mesh_0)\\n**1 COP NODES**:\\n- [fetch_map__mesh_0](COP/fetch_map__mesh_0)","nodes":{"subnetInput1":{"pos":[400,-400]},"subnetOutput1":{"pos":[400,0]},"MAT":{"pos":[200,0],"nodes":{"meshStandard__mesh_0":{"pos":[0,0]}}},"COP":{"pos":[0,0],"nodes":{"fetch_map__mesh_0":{"pos":[0,0]}}},"material__mesh_0":{"pos":[400,-200]}}}}},"grid":{"pos":[-50,-250],"nodes":{"planeHelper1":{"pos":[0,0]}}},"hemisphereLight1":{"pos":[100,-50]},"perspectiveCamera1":{"pos":[-200,100],"nodes":{"events1":{"pos":[-200,50],"nodes":{"cameraOrbitControls1":{"pos":[150,50]}}}}},"COP":{"pos":[-200,200],"selection":["envMap"],"nodes":{"envMap":{"pos":[50,350]},"imageEnv":{"pos":[-400,-50]},"imageUv":{"pos":[-150,250]},"builder1":{"pos":[200,0],"nodes":{"globals1":{"pos":[-400,-50]},"output1":{"pos":[750,100]},"texture1":{"pos":[-300,-50]},"vec4ToVec3_1":{"pos":[-150,-50]},"mult1":{"pos":[550,50]},"ramp1":{"pos":[150,150]},"floatToVec3_1":{"pos":[400,250]},"fitTo01_1":{"pos":[-100,250]},"fitFrom01_1":{"pos":[250,150]},"pow1":{"pos":[200,-50]},"clamp1":{"pos":[100,-150]},"fitFrom01_2":{"pos":[250,350]},"fitFrom01_3":{"pos":[250,250]},"vec3ToFloat1":{"pos":[0,250]}}},"imageEXR1":{"pos":[-300,-200]},"builder2DArray1":{"pos":[-50,0],"nodes":{"globals1":{"pos":[-200,0]},"output1":{"pos":[200,0]},"vec4ToVec3_1":{"pos":[-50,50]},"noise1":{"pos":[-50,-100]},"vec2ToVec3_1":{"pos":[-150,-150]},"constant1":{"pos":[0,0]}}}}},"geo2":{"pos":[-400,-100],"nodes":{"box1":{"pos":[0,0]},"material1":{"pos":[0,150]},"MAT":{"pos":[-200,50],"selection":["meshStandard1"],"nodes":{"meshStandard1":{"pos":[0,0]}}}}},"geo3":{"pos":[-100,-50],"nodes":{"box1":{"pos":[0,0]},"fileGLTF1":{"pos":[-150,0]}}}}},"shaders":{"/COP/builder1":{"fragment":"#include <common>\n\nuniform vec2 resolution;\n\n// removed:\n//// INSERT DEFINE\n\n\n\n// /COP/builder1/fitTo01_1\n//\n//\n// FIT\n//\n//\nfloat fit(float val, float srcMin, float srcMax, float destMin, float destMax){\n\tfloat src_range = srcMax - srcMin;\n\tfloat dest_range = destMax - destMin;\n\n\tfloat r = (val - srcMin) / src_range;\n\treturn (r * dest_range) + destMin;\n}\nvec2 fit(vec2 val, vec2 srcMin, vec2 srcMax, vec2 destMin, vec2 destMax){\n\treturn vec2(\n\t\tfit(val.x, srcMin.x, srcMax.x, destMin.x, destMax.x),\n\t\tfit(val.y, srcMin.y, srcMax.y, destMin.y, destMax.y)\n\t);\n}\nvec3 fit(vec3 val, vec3 srcMin, vec3 srcMax, vec3 destMin, vec3 destMax){\n\treturn vec3(\n\t\tfit(val.x, srcMin.x, srcMax.x, destMin.x, destMax.x),\n\t\tfit(val.y, srcMin.y, srcMax.y, destMin.y, destMax.y),\n\t\tfit(val.z, srcMin.z, srcMax.z, destMin.z, destMax.z)\n\t);\n}\nvec4 fit(vec4 val, vec4 srcMin, vec4 srcMax, vec4 destMin, vec4 destMax){\n\treturn vec4(\n\t\tfit(val.x, srcMin.x, srcMax.x, destMin.x, destMax.x),\n\t\tfit(val.y, srcMin.y, srcMax.y, destMin.y, destMax.y),\n\t\tfit(val.z, srcMin.z, srcMax.z, destMin.z, destMax.z),\n\t\tfit(val.w, srcMin.w, srcMax.w, destMin.w, destMax.w)\n\t);\n}\n\n//\n//\n// FIT TO 01\n// fits the range [srcMin, srcMax] to [0, 1]\n//\nfloat fitTo01(float val, float srcMin, float srcMax){\n\tfloat size = srcMax - srcMin;\n\treturn (val - srcMin) / size;\n}\nvec2 fitTo01(vec2 val, vec2 srcMin, vec2 srcMax){\n\treturn vec2(\n\t\tfitTo01(val.x, srcMin.x, srcMax.x),\n\t\tfitTo01(val.y, srcMin.y, srcMax.y)\n\t);\n}\nvec3 fitTo01(vec3 val, vec3 srcMin, vec3 srcMax){\n\treturn vec3(\n\t\tfitTo01(val.x, srcMin.x, srcMax.x),\n\t\tfitTo01(val.y, srcMin.y, srcMax.y),\n\t\tfitTo01(val.z, srcMin.z, srcMax.z)\n\t);\n}\nvec4 fitTo01(vec4 val, vec4 srcMin, vec4 srcMax){\n\treturn vec4(\n\t\tfitTo01(val.x, srcMin.x, srcMax.x),\n\t\tfitTo01(val.y, srcMin.y, srcMax.y),\n\t\tfitTo01(val.z, srcMin.z, srcMax.z),\n\t\tfitTo01(val.w, srcMin.w, srcMax.w)\n\t);\n}\n\n//\n//\n// FIT FROM 01\n// fits the range [0, 1] to [destMin, destMax]\n//\nfloat fitFrom01(float val, float destMin, float destMax){\n\treturn fit(val, 0.0, 1.0, destMin, destMax);\n}\nvec2 fitFrom01(vec2 val, vec2 srcMin, vec2 srcMax){\n\treturn vec2(\n\t\tfitFrom01(val.x, srcMin.x, srcMax.x),\n\t\tfitFrom01(val.y, srcMin.y, srcMax.y)\n\t);\n}\nvec3 fitFrom01(vec3 val, vec3 srcMin, vec3 srcMax){\n\treturn vec3(\n\t\tfitFrom01(val.x, srcMin.x, srcMax.x),\n\t\tfitFrom01(val.y, srcMin.y, srcMax.y),\n\t\tfitFrom01(val.z, srcMin.z, srcMax.z)\n\t);\n}\nvec4 fitFrom01(vec4 val, vec4 srcMin, vec4 srcMax){\n\treturn vec4(\n\t\tfitFrom01(val.x, srcMin.x, srcMax.x),\n\t\tfitFrom01(val.y, srcMin.y, srcMax.y),\n\t\tfitFrom01(val.z, srcMin.z, srcMax.z),\n\t\tfitFrom01(val.w, srcMin.w, srcMax.w)\n\t);\n}\n\n//\n//\n// FIT FROM 01 TO VARIANCE\n// fits the range [0, 1] to [center - variance, center + variance]\n//\nfloat fitFrom01ToVariance(float val, float center, float variance){\n\treturn fitFrom01(val, center - variance, center + variance);\n}\nvec2 fitFrom01ToVariance(vec2 val, vec2 center, vec2 variance){\n\treturn vec2(\n\t\tfitFrom01ToVariance(val.x, center.x, variance.x),\n\t\tfitFrom01ToVariance(val.y, center.y, variance.y)\n\t);\n}\nvec3 fitFrom01ToVariance(vec3 val, vec3 center, vec3 variance){\n\treturn vec3(\n\t\tfitFrom01ToVariance(val.x, center.x, variance.x),\n\t\tfitFrom01ToVariance(val.y, center.y, variance.y),\n\t\tfitFrom01ToVariance(val.z, center.z, variance.z)\n\t);\n}\nvec4 fitFrom01ToVariance(vec4 val, vec4 center, vec4 variance){\n\treturn vec4(\n\t\tfitFrom01ToVariance(val.x, center.x, variance.x),\n\t\tfitFrom01ToVariance(val.y, center.y, variance.y),\n\t\tfitFrom01ToVariance(val.z, center.z, variance.z),\n\t\tfitFrom01ToVariance(val.w, center.w, variance.w)\n\t);\n}\n\n\n\n\n\n\n\n// /COP/builder1/texture1\nuniform sampler2D v_POLY_texture_texture1;\n\n// /COP/builder1/ramp1\nuniform sampler2D v_POLY_ramp_ramp1;\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// /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// /COP/builder1/texture1\n\tvec4 v_POLY_texture1_rgba = texture2D(v_POLY_texture_texture1, v_POLY_globals1_uv);\n\t\n\t// /COP/builder1/vec4ToVec3_1\n\tvec3 v_POLY_vec4ToVec3_1_vec3 = v_POLY_texture1_rgba.xyz;\n\tfloat v_POLY_vec4ToVec3_1_w = v_POLY_texture1_rgba.w;\n\t\n\t// /COP/builder1/fitTo01_1\n\tvec3 v_POLY_fitTo01_1_val = fitTo01(v_POLY_vec4ToVec3_1_vec3, vec3(0.0, 0.0, 0.0), vec3(50.0, 50.0, 50.0));\n\t\n\t// /COP/builder1/vec3ToFloat1\n\tfloat v_POLY_vec3ToFloat1_x = v_POLY_fitTo01_1_val.x;\n\tfloat v_POLY_vec3ToFloat1_z = v_POLY_fitTo01_1_val.z;\n\tfloat v_POLY_vec3ToFloat1_y = v_POLY_fitTo01_1_val.y;\n\t\n\t// /COP/builder1/ramp1\n\tfloat v_POLY_ramp1_val = texture2D(v_POLY_ramp_ramp1, vec2(v_POLY_vec3ToFloat1_x, 0.0)).x;\n\t\n\t// /COP/builder1/fitFrom01_3\n\tfloat v_POLY_fitFrom01_3_val = fitFrom01(v_POLY_vec3ToFloat1_y, 0.0, 50.0);\n\t\n\t// /COP/builder1/fitFrom01_2\n\tfloat v_POLY_fitFrom01_2_val = fitFrom01(v_POLY_vec3ToFloat1_z, 0.0, 50.0);\n\t\n\t// /COP/builder1/fitFrom01_1\n\tfloat v_POLY_fitFrom01_1_val = fitFrom01(v_POLY_ramp1_val, 0.0, 50.0);\n\t\n\t// /COP/builder1/floatToVec3_1\n\tvec3 v_POLY_floatToVec3_1_vec3 = vec3(v_POLY_fitFrom01_1_val, v_POLY_fitFrom01_3_val, v_POLY_fitFrom01_2_val);\n\t\n\t// /COP/builder1/output1\n\tdiffuseColor.xyz = v_POLY_floatToVec3_1_vec3;\n\tdiffuseColor.a = v_POLY_vec4ToVec3_1_w;\n\n\n\n\n\tgl_FragColor = vec4( diffuseColor );\n}"},"/COP/builder2DArray1":{"fragment":"#include <common>\n\nuniform float uLayer;\nuniform vec2 resolution;\n\n// removed:\n//// INSERT DEFINE\n\n\n\n// /COP/builder2DArray1/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 simplex noise function.\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\nfloat snoise(vec2 v)\n {\n const vec4 C = vec4(0.211324865405187, // (3.0-sqrt(3.0))/6.0\n 0.366025403784439, // 0.5*(sqrt(3.0)-1.0)\n -0.577350269189626, // -1.0 + 2.0 * C.x\n 0.024390243902439); // 1.0 / 41.0\n// First corner\n vec2 i = floor(v + dot(v, C.yy) );\n vec2 x0 = v - i + dot(i, C.xx);\n\n// Other corners\n vec2 i1;\n //i1.x = step( x0.y, x0.x ); // x0.x > x0.y ? 1.0 : 0.0\n //i1.y = 1.0 - i1.x;\n i1 = (x0.x > x0.y) ? vec2(1.0, 0.0) : vec2(0.0, 1.0);\n // x0 = x0 - 0.0 + 0.0 * C.xx ;\n // x1 = x0 - i1 + 1.0 * C.xx ;\n // x2 = x0 - 1.0 + 2.0 * C.xx ;\n vec4 x12 = x0.xyxy + C.xxzz;\n x12.xy -= i1;\n\n// Permutations\n i = mod289(i); // Avoid truncation effects in permutation\n vec3 p = permute( permute( i.y + vec3(0.0, i1.y, 1.0 ))\n\t\t+ i.x + vec3(0.0, i1.x, 1.0 ));\n\n vec3 m = max(0.5 - vec3(dot(x0,x0), dot(x12.xy,x12.xy), dot(x12.zw,x12.zw)), 0.0);\n m = m*m ;\n m = m*m ;\n\n// Gradients: 41 points uniformly over a line, mapped onto a diamond.\n// The ring size 17*17 = 289 is close to a multiple of 41 (41*7 = 287)\n\n vec3 x = 2.0 * fract(p * C.www) - 1.0;\n vec3 h = abs(x) - 0.5;\n vec3 ox = floor(x + 0.5);\n vec3 a0 = x - ox;\n\n// Normalise gradients implicitly by scaling m\n// Approximation of: m *= inversesqrt( a0*a0 + h*h );\n m *= 1.79284291400159 - 0.85373472095314 * ( a0*a0 + h*h );\n\n// Compute final noise value at P\n vec3 g;\n g.x = a0.x * x0.x + h.x * x0.y;\n g.yz = a0.yz * x12.xz + h.yz * x12.yw;\n return 130.0 * dot(m, g);\n}\n\n\nfloat fbm_snoise_COP_builder2DArray1_noise1(in vec2 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\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// /COP/builder2DArray1/globals1\n\tvec4 v_POLY_globals1_gl_FragCoord = gl_FragCoord;\n\tvec2 v_POLY_globals1_uv = vec2(gl_FragCoord.x / (resolution.x-1.), gl_FragCoord.y / (resolution.y-1.));\n\t\n\t// /COP/builder2DArray1/constant1\n\tfloat v_POLY_constant1_val = 1.0;\n\t\n\t// /COP/builder2DArray1/noise1\n\tfloat v_POLY_noise1_noisex = (vec3(1.0, 1.0, 1.0)*fbm_snoise_COP_builder2DArray1_noise1((v_POLY_globals1_uv*vec2(1.0, 1.0))+(vec2(0.0, 0.0)+vec2(0.0, 0.0)))).x;\n\tfloat v_POLY_noise1_noisey = (vec3(1.0, 1.0, 1.0)*fbm_snoise_COP_builder2DArray1_noise1((v_POLY_globals1_uv*vec2(1.0, 1.0))+(vec2(0.0, 0.0)+vec2(1000.0, 1000.0)))).y;\n\tfloat v_POLY_noise1_noisez = (vec3(1.0, 1.0, 1.0)*fbm_snoise_COP_builder2DArray1_noise1((v_POLY_globals1_uv*vec2(1.0, 1.0))+(vec2(0.0, 0.0)+vec2(2000.0, 2000.0)))).z;\n\tvec3 v_POLY_noise1_noise = vec3(v_POLY_noise1_noisex, v_POLY_noise1_noisey, v_POLY_noise1_noisez);\n\t\n\t// /COP/builder2DArray1/output1\n\tdiffuseColor.xyz = v_POLY_noise1_noise;\n\tdiffuseColor.a = v_POLY_constant1_val;\n\n\n\n\n\tgl_FragColor = vec4( diffuseColor );\n}"}},"jsFunctionBodies":{}}
Code editor
{"multiple_panel":{"split_ratio":0.600459242250287,"split_panel0":{"split_ratio":0.31313131313131315,"split_panel0":{"panelTypes":["viewer","network","params"],"currentPanelIndex":0,"panel_data":{"camera":"/perspectiveCamera1","isViewerInitLayoutData":true,"linkIndex":1,"overlayedNetwork":{"allowed":false,"displayed":false,"initLayoutData":{"camera":{"position":{"x":250,"y":25},"zoom":1},"history":{"2":{"position":{"x":250,"y":25},"zoom":1},"744":{"position":{"x":100,"y":-75},"zoom":1},"835":{"position":{"x":0,"y":0},"zoom":1},"1181":{"position":{"x":0,"y":0},"zoom":1}},"paramsDisplayed":false,"linkIndex":1}}}},"split_panel1":{"split_ratio":0.48755656108597284,"split_panel0":{"panelTypes":["viewer","network","params"],"currentPanelIndex":2,"panel_data":{"active_folder":null,"linkIndex":1}},"split_panel1":{"panelTypes":["viewer","network","params"],"currentPanelIndex":1,"panel_data":{"camera":{"position":{"x":107.23142097241272,"y":-35.026503222069756},"zoom":0.6858710562414272},"history":{"2":{"position":{"x":107.23142097241272,"y":-35.026503222069756},"zoom":0.6858710562414272},"744":{"position":{"x":130,"y":-31},"zoom":0.5000000000000001},"835":{"position":{"x":-26,"y":-76},"zoom":0.14121476824050008},"1181":{"position":{"x":0,"y":0},"zoom":0.6172839506172841}},"paramsDisplayed":false,"linkIndex":1}},"split_mode":"horizontal"},"split_mode":"horizontal"},"split_panel1":{"split_ratio":0.6487956487956488,"split_panel0":{"split_ratio":0.4802395209580838,"split_panel0":{"panelTypes":["viewer","network","params","spreadsheet","nodeDocs"],"currentPanelIndex":4,"panel_data":{"linkIndex":2}},"split_panel1":{"panelTypes":["viewer","network","params"],"currentPanelIndex":2,"panel_data":{"active_folder":null,"linkIndex":2}},"split_mode":"horizontal"},"split_panel1":{"panelTypes":["viewer","network","params"],"currentPanelIndex":1,"panel_data":{"camera":{"position":{"x":-73.29980740740737,"y":18.80537722908076},"zoom":0.2657205000000005},"history":{"2":{"position":{"x":-39.4444444444444,"y":-101.66666666666663},"zoom":0.4500000000000001},"36":{"position":{"x":280.87972579999996,"y":-71.22200319999999},"zoom":1.0453757906438452},"221":{"position":{"x":-73.29980740740737,"y":18.80537722908076},"zoom":0.2657205000000005},"995":{"position":{"x":24.414464375801984,"y":24.922837541467768},"zoom":1.290587395856601}},"paramsDisplayed":false,"linkIndex":2}},"split_mode":"horizontal"},"split_mode":"vertical"},"currentNodes":["/","/COP","/geo1","/geo1","/geo1","/geo1","/geo1","/geo1"],"navigationHistory":{"nodePaths":{"1":["/geo1","/","/COP","/COP/builder1","/","/geo2","/geo2/MAT","/geo2","/","/geo2","/geo2/MAT","/geo2","/","/geo2","/","/geo3"],"2":["/geo1","/","/COP","/COP/builder2DArray1","/","/COP","/COP/builder2DArray1"],"3":["/geo1"],"4":["/geo1"],"5":["/geo1"],"6":["/geo1"],"7":["/geo1"],"8":["/geo1"]},"index":{"1":14,"2":5,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0}},"fullscreenPanelId":null,"saveOptions":{"createExport":false,"checkRemoteAssetsUse":true,"minimizeFilesCount":false,"compressJs":true,"createZip":false,"runPostExportCommand":false},"paramsModal":[]}
Used nodes
cop/builder;cop/builder2DArray;cop/envMap;cop/fetch;cop/image;cop/imageEXR;event/cameraOrbitControls;mat/meshStandard;obj/copNetwork;obj/geo;obj/hemisphereLight;obj/perspectiveCamera;sop/box;sop/copNetwork;sop/decompose;sop/eventsNetwork;sop/fileGLTF;sop/material;sop/materialsNetwork;sop/planeHelper;sop/subnetInput;sop/subnetOutput
Used operations
Used modules
Used assemblers
GL_TEXTURE;GL_TEXTURE_2D_ARRAY
Used integrations
[]
Used assets
Nodes map
{"/geo1":"obj/geo","/geo1/fileGLTF1":"sop/fileGLTF","/geo1/decompose1":"sop/decompose","/geo1/decompose1/subnetInput1":"sop/subnetInput","/geo1/decompose1/subnetOutput1":"sop/subnetOutput","/geo1/decompose1/MAT":"sop/materialsNetwork","/geo1/decompose1/MAT/meshStandard__mesh_0":"mat/meshStandard","/geo1/decompose1/COP":"sop/copNetwork","/geo1/decompose1/COP/fetch_map__mesh_0":"cop/fetch","/geo1/decompose1/material__mesh_0":"sop/material","/grid":"obj/geo","/grid/planeHelper1":"sop/planeHelper","/hemisphereLight1":"obj/hemisphereLight","/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","/COP/builder1":"cop/builder","/COP/imageEXR1":"cop/imageEXR","/COP/builder2DArray1":"cop/builder2DArray","/geo2":"obj/geo","/geo2/box1":"sop/box","/geo2/material1":"sop/material","/geo2/MAT":"sop/materialsNetwork","/geo2/MAT/meshStandard1":"mat/meshStandard","/geo3":"obj/geo","/geo3/box1":"sop/box","/geo3/fileGLTF1":"sop/fileGLTF"}
Js version
Editor version
Engine version
Logout
0%
There was a problem displaying your scene:
view scene source