Name
*
Code
{"properties":{"frame":0,"maxFrame":600,"maxFrameLocked":false,"realtimeState":true,"mainCameraPath":"/cameras/cameras:sopGroup/perspectiveCamera1","versions":{"polygonjs":"1.5.3"}},"root":{"type":"root","nodes":{"COP":{"type":"copNetwork","nodes":{"envMap":{"type":"envMap","inputs":["imageEnv"]},"imageEnv":{"type":"imageEXR","params":{"tminFilter":true,"tmagFilter":true,"tanisotropy":true,"useRendererMaxAnisotropy":true}},"image1":{"type":"image"}}},"lights":{"type":"geo","nodes":{"hemisphereLight1":{"type":"hemisphereLight","params":{"intensity":0.48}},"spotLight1":{"type":"spotLight","params":{"intensity":6.1,"decay":0.7,"distance":28,"castShadow":true,"shadowBias":-0.0004}},"polarTransform1":{"type":"polarTransform","params":{"center":[0,0.7,0],"latitude":25.2,"depth":11.1},"inputs":["spotLight1"]},"merge1":{"type":"merge","inputs":["hemisphereLight1","polarTransform1"],"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":"{}"}},"QUADTriangles":{"overriden_options":{"callback":"{}"}},"QUADWireframe":{"overriden_options":{"callback":"{}"}},"TetScale":{"overriden_options":{"callback":"{}"}},"TetDisplayLines":{"overriden_options":{"callback":"{}"}},"TetDisplaySharedFaces":{"overriden_options":{"callback":"{}"}},"TetDisplayPoints":{"overriden_options":{"callback":"{}"}},"TetDisplayCenter":{"overriden_options":{"callback":"{}"}},"TetDisplaySphere":{"overriden_options":{"callback":"{}"}}},"flags":{"display":true}},"cameras":{"type":"geo","nodes":{"perspectiveCamera1":{"type":"perspectiveCamera","params":{"position":[-0.9724019556285406,3.950611860567393,-3.089089823901697],"rotation":[-124.61392226015084,-5.934331136554857,-171.48087151908203]}},"perspectiveCamera_FPS":{"type":"perspectiveCamera","params":{"position":[-0.9724019556285406,3.950611860567393,-3.089089823901697],"rotation":[-124.61392226015084,-5.934331136554857,-171.48087151908203]}},"merge1":{"type":"merge","inputs":["cameraControls1","cameraControls2"],"flags":{"display":true}},"cameraControls1":{"type":"cameraControls","nodes":{"cameraOrbitControls1":{"type":"cameraOrbitControls","params":{"target":[-0.588734011890444,1.7602520344602086,-0.5007746498387672]}}},"params":{"node":"cameraOrbitControls1"},"inputs":["perspectiveCamera1"]},"cameraControls2":{"type":"cameraControls","nodes":{"firstPersonControls1":{"type":"firstPersonControls","params":{"colliderObject":"../../../level/BVH1","runSpeedMult":4,"startPosition":[0,6,3]}}},"params":{"node":"firstPersonControls1"},"inputs":["perspectiveCamera_FPS"]}},"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":"{}"}},"QUADTriangles":{"overriden_options":{"callback":"{}"}},"QUADWireframe":{"overriden_options":{"callback":"{}"}},"TetScale":{"overriden_options":{"callback":"{}"}},"TetDisplayLines":{"overriden_options":{"callback":"{}"}},"TetDisplaySharedFaces":{"overriden_options":{"callback":"{}"}},"TetDisplayPoints":{"overriden_options":{"callback":"{}"}},"TetDisplayCenter":{"overriden_options":{"callback":"{}"}},"TetDisplaySphere":{"overriden_options":{"callback":"{}"}}},"flags":{"display":true}},"level":{"type":"geo","nodes":{"fileGLTF1":{"type":"fileGLTF","params":{"url":"https://raw.githubusercontent.com/polygonjs/polygonjs-assets/master/models/tiles/basic/tile_straight.glb"}},"hierarchy2":{"type":"hierarchy","params":{"mode":1},"inputs":["fileGLTF1"]},"material1":{"type":"material","params":{"material":"../MAT/meshStandard1"},"inputs":["hierarchy2"]},"objectProperties1":{"type":"objectProperties","params":{"tname":true,"name":"tile_straight"},"inputs":["material1"]},"fileGLTF2":{"type":"fileGLTF","params":{"url":"https://raw.githubusercontent.com/polygonjs/polygonjs-assets/master/models/tiles/basic/tile_cross.glb?v=2"}},"hierarchy3":{"type":"hierarchy","params":{"mode":1},"inputs":["fileGLTF2"]},"material2":{"type":"material","params":{"material":"../MAT/meshStandard1"},"inputs":["hierarchy3"]},"objectProperties2":{"type":"objectProperties","params":{"tname":true,"name":"tile_cross"},"inputs":["material2"]},"fileGLTF3":{"type":"fileGLTF","params":{"url":"https://raw.githubusercontent.com/polygonjs/polygonjs-assets/master/models/tiles/basic/tile_t.glb?v=2"}},"hierarchy4":{"type":"hierarchy","params":{"mode":1},"inputs":["fileGLTF3"]},"material3":{"type":"material","params":{"material":"../MAT/meshStandard1"},"inputs":["hierarchy4"]},"objectProperties3":{"type":"objectProperties","params":{"tname":true,"name":"tile_t"},"inputs":["material3"]},"fileGLTF4":{"type":"fileGLTF","params":{"url":"https://raw.githubusercontent.com/polygonjs/polygonjs-assets/master/models/tiles/basic/tile_slope_full_top.glb?v=2"}},"hierarchy5":{"type":"hierarchy","params":{"mode":1},"inputs":["fileGLTF4"]},"material4":{"type":"material","params":{"material":"../MAT/meshStandard1"},"inputs":["hierarchy5"]},"objectProperties4":{"type":"objectProperties","params":{"tname":true,"name":"tile_slope_full_top"},"inputs":["material4"]},"fileGLTF5":{"type":"fileGLTF","params":{"url":"https://raw.githubusercontent.com/polygonjs/polygonjs-assets/master/models/tiles/basic/tile_slope_full_bottom.glb?v=2"}},"hierarchy6":{"type":"hierarchy","params":{"mode":1},"inputs":["fileGLTF5"]},"material5":{"type":"material","params":{"material":"../MAT/meshStandard1"},"inputs":["hierarchy6"]},"objectProperties5":{"type":"objectProperties","params":{"tname":true,"name":"tile_slope_full_bottom"},"inputs":["material5"]},"merge2":{"type":"merge","params":{"inputsCount":6},"maxInputsCount":6,"inputs":["WFCTileSideName8","WFCTileSideName14","WFCTileSideName12","WFCTileSideName9","WFCTileSideName10","WFCTileSideName11"]},"WFCTileSideName1":{"type":"WFCTileSideName","params":{"west":true,"east":true,"sideName":"default"},"inputs":["objectProperties1"]},"WFCTileSideName2":{"type":"WFCTileSideName","params":{"south":true,"north":true,"west":true,"east":true,"sideName":"default"},"inputs":["objectProperties2"]},"WFCTileSideName3":{"type":"WFCTileSideName","params":{"south":true,"west":true,"east":true,"sideName":"default"},"inputs":["objectProperties3"]},"WFCTileSideName4":{"type":"WFCTileSideName","params":{"west":true,"sideName":"default"},"inputs":["objectProperties4"]},"WFCTileSideName5":{"type":"WFCTileSideName","params":{"sameNameForSelectedSides":false,"bottom":true,"bottomName":"slope_full","sideName":"default"},"inputs":["WFCTileSideName4"]},"WFCTileSideName6":{"type":"WFCTileSideName","params":{"top":true,"sideName":"slope_full"},"inputs":["WFCTileSideName7"]},"WFCTileSideName7":{"type":"WFCTileSideName","params":{"east":true,"sideName":"default"},"inputs":["objectProperties5"]},"WFCTileSideName8":{"type":"WFCTileSideName","params":{"south":true,"north":true,"bottom":true,"top":true,"sideName":"empty"},"inputs":["WFCTileSideName1"]},"WFCTileSideName9":{"type":"WFCTileSideName","params":{"north":true,"bottom":true,"top":true,"sideName":"empty"},"inputs":["WFCTileSideName3"]},"WFCTileSideName10":{"type":"WFCTileSideName","params":{"south":true,"north":true,"east":true,"top":true,"sideName":"empty"},"inputs":["WFCTileSideName5"]},"WFCTileSideName11":{"type":"WFCTileSideName","params":{"south":true,"north":true,"west":true,"bottom":true,"sideName":"empty"},"inputs":["WFCTileSideName6"]},"WFCTileSideName12":{"type":"WFCTileSideName","params":{"bottom":true,"top":true,"sideName":"empty"},"inputs":["WFCTileSideName2"]},"fileGLTF6":{"type":"fileGLTF","params":{"url":"https://raw.githubusercontent.com/polygonjs/polygonjs-assets/master/models/tiles/basic/tile_turn_90.glb?v=2"}},"hierarchy7":{"type":"hierarchy","params":{"mode":1},"inputs":["fileGLTF6"]},"material6":{"type":"material","params":{"material":"../MAT/meshStandard1"},"inputs":["hierarchy7"]},"objectProperties6":{"type":"objectProperties","params":{"tname":true,"name":"tile_turn_90"},"inputs":["material6"]},"WFCTileSideName13":{"type":"WFCTileSideName","params":{"south":true,"west":true,"sideName":"default"},"inputs":["objectProperties6"]},"WFCTileSideName14":{"type":"WFCTileSideName","params":{"north":true,"east":true,"bottom":true,"top":true,"sideName":"empty"},"inputs":["WFCTileSideName13"]},"WFCTileProperties1":{"type":"WFCTileProperties","params":{"id":"`@objname`"},"inputs":["merge2"]},"attribCreate2":{"type":"attribCreate","params":{"class":3,"name":"floorIndex","value1":"@objnum"},"inputs":["copy2"]},"attribCreate3":{"type":"attribCreate","params":{"class":2,"name":"quadId","value1":"@primnum"},"inputs":["quadPlane_10x10"]},"copy2":{"type":"copy","params":{"count":4,"t":[0,1,0]},"inputs":["attribCreate3"]},"attribPromote1":{"type":"attribPromote","params":{"classFrom":3,"classTo":2,"name":"floorIndex"},"inputs":["attribCreate2"]},"merge4":{"type":"merge","params":{"compact":true},"inputs":["attribPromote1"]},"hexagons1":{"type":"hexagons","params":{"size":[10,10],"hexagonRadius":1}},"quadrangulate1":{"type":"quadrangulate","params":{"regular":false},"inputs":["hexagons1"]},"quadSmooth1":{"type":"quadSmooth","inputs":["quadrangulate1"]},"quadTriangulate1":{"type":"quadTriangulate","params":{"triangles":false,"wireframe":true},"inputs":["merge4"]},"WFCSolver1":{"type":"WFCSolver","params":{"quadSeed":-6},"inputs":["attribCreate4","WFCTileUnresolvedObject1"]},"merge3":{"type":"merge","inputs":["quadTriangulate1","WFCBuilder1"]},"merge5":{"type":"merge","params":{"compact":true,"preserveMaterials":false},"inputs":["WFCSolver1"],"flags":{"bypass":true}},"objectProperties7":{"type":"objectProperties","params":{"tcastShadow":true,"treceiveShadow":true},"inputs":["merge5"],"flags":{"bypass":true}},"quadPlane_10x10":{"type":"quadPlane","params":{"size":[10,10]}},"quadPlane_2x2":{"type":"quadPlane","params":{"size":[2,2]}},"WFCRuleTileWeight1":{"type":"WFCRuleTileWeight","params":{"tileId":"tile_t","weight":0},"inputs":["WFCRuleConnectionToGridBorder1"],"flags":{"bypass":true}},"WFCRuleConnectionFromSideName1":{"type":"WFCRuleConnectionFromSideName","inputs":["merge1"]},"WFCRuleConnectionToGridBorder1":{"type":"WFCRuleConnectionToGridBorder","params":{"sideName":"empty"},"inputs":["WFCRuleConnectionFromSideName1"]},"WFCTileUnresolvedObject1":{"type":"WFCTileUnresolvedObject","inputs":["WFCTileErrorObject1","emptyObject1"]},"WFCTileErrorObject1":{"type":"WFCTileErrorObject","inputs":["WFCRuleTileWeight1","emptyObject1"]},"sphere1":{"type":"sphere","params":{"radius":0.42}},"WFCDebug2":{"type":"WFCDebug","params":{"srcTileId":"tile_turn_90","destTileId":"__EMPTY_TILE__","sideName":"empty"},"inputs":["WFCTileUnresolvedObject1"]},"emptyObject1":{"type":"emptyObject"},"quadPlane_3x3":{"type":"quadPlane","params":{"size":[3,3]}},"WFCTileEmptyObject1":{"type":"WFCTileEmptyObject","inputs":["emptyObject2"]},"merge1":{"type":"merge","inputs":["WFCTileProperties1","WFCTileEmptyObject1"]},"emptyObject2":{"type":"emptyObject"},"WFCDebug3":{"type":"WFCDebug","params":{"srcTileId":"tile_slope_full_top","destTileId":"tile_slope_full_bottom"},"inputs":["WFCTileUnresolvedObject1"]},"plane1":{"type":"plane"},"transform1":{"type":"transform","params":{"t":[-0.45548341151592053,0.5342256927412665,0]},"inputs":["plane1"]},"WFCBuilder1":{"type":"WFCBuilder","inputs":["WFCSolver1","WFCTileUnresolvedObject1"]},"quadPlane_4x3":{"type":"quadPlane","params":{"size":[4,3]}},"quadPlane_4x4":{"type":"quadPlane","params":{"size":[4,4]}},"quadPlane_5x5":{"type":"quadPlane","params":{"size":[4,4]}},"attribCreate1":{"type":"attribCreate","params":{"class":2,"type":1,"name":"tileId"},"inputs":["merge4"],"flags":{"bypass":true}},"attribCreate4":{"type":"attribCreate","params":{"group":"21","class":2,"type":1,"name":"tileId","string":"tile_slope_full_top"},"inputs":["attribCreate1"],"flags":{"bypass":true}},"WFCDebug4":{"type":"WFCDebug","params":{"srcTileId":"tile_slope_full_*","destTileId":"tile_slope_full_*","sideName":"slope_full"},"inputs":["WFCRuleConnectionFromSideName1"]},"merge6":{"type":"merge","params":{"inputsCount":6},"maxInputsCount":6,"inputs":[null,null,null,null,"WFCTileSideName10","WFCTileSideName11"]},"quadPlane_2x1":{"type":"quadPlane","params":{"size":[2,1]}},"fileGLTF7":{"type":"fileGLTF","params":{"url":"https://raw.githubusercontent.com/polygonjs/polygonjs-assets/master/models/tiles/basic/tile_straight.glb"}},"WFCTileErrorObject2":{"type":"WFCTileErrorObject"},"WFCTileUnresolvedObject2":{"type":"WFCTileUnresolvedObject"},"WFCTileEmptyObject2":{"type":"WFCTileEmptyObject"},"merge7":{"type":"merge","params":{"compact":true},"inputs":["WFCBuilder1"]},"BVH1":{"type":"BVH","inputs":["transform2"],"flags":{"display":true}},"BVHVisualizer1":{"type":"BVHVisualizer","params":{"depth":27},"inputs":["BVH1"]},"transform2":{"type":"transform","params":{"scale":2},"inputs":["merge7"]},"MAT":{"type":"materialsNetwork","nodes":{"meshStandard1":{"type":"meshStandard","params":{"useVertexColors":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":"{}"}},"QUADTriangles":{"overriden_options":{"callback":"{}"}},"QUADWireframe":{"overriden_options":{"callback":"{}"}},"TetScale":{"overriden_options":{"callback":"{}"}},"TetDisplayLines":{"overriden_options":{"callback":"{}"}},"TetDisplaySharedFaces":{"overriden_options":{"callback":"{}"}},"TetDisplayPoints":{"overriden_options":{"callback":"{}"}},"TetDisplayCenter":{"overriden_options":{"callback":"{}"}},"TetDisplaySphere":{"overriden_options":{"callback":"{}"}}},"flags":{"display":true}},"env":{"type":"geo","nodes":{"material1":{"type":"material","params":{"material":"../MAT/meshStandardBuilder1"},"inputs":["box1"]},"box1":{"type":"box","params":{"sizes":[9.98,1,9.98],"center":[0,-0.5,0]}},"sphere1":{"type":"sphere","params":{"radius":25,"center":[0,0.015844103874672055,0]}},"material2":{"type":"material","params":{"material":"../MAT/sky1"},"inputs":["transform1"],"flags":{"display":true}},"merge1":{"type":"merge","inputs":["material1","material2"]},"transform1":{"type":"transform","params":{"applyOn":1},"inputs":["sphere1"],"flags":{"bypass":true}},"MAT":{"type":"materialsNetwork","nodes":{"sky1":{"type":"sky","params":{"azimuth":0.61}},"meshStandardBuilder1":{"type":"meshStandardBuilder","nodes":{"globals1":{"type":"globals"},"output1":{"type":"output","inputs":[null,null,{"index":2,"inputName":"color","node":"mix1","output":"mix"}]},"vec3ToFloat1":{"type":"vec3ToFloat","params":{"vec":{"overriden_options":{}}},"inputs":[{"index":0,"inputName":"vec","node":"globals1","output":"position"}]},"floatToVec2_1":{"type":"floatToVec2","params":{"x":{"overriden_options":{}},"y":{"overriden_options":{}}},"inputs":[{"index":0,"inputName":"x","node":"vec3ToFloat1","output":"x"},{"index":1,"inputName":"y","node":"vec3ToFloat1","output":"z"}]},"checkers1":{"type":"checkers","params":{"uv":{"overriden_options":{}},"freq":{"overriden_options":{}},"freqMult":{"overriden_options":{}}},"inputs":[{"index":0,"inputName":"uv","node":"floatToVec2_1","output":"vec2"}]},"mix1":{"type":"mix","params":{"value0":{"type":"vector3","default_value":[0,0,0],"options":{"spare":true,"editable":false,"computeOnDirty":true,"dependentOnFoundParam":false}},"value1":{"type":"vector3","default_value":[0,0,0],"options":{"spare":true,"editable":false,"computeOnDirty":true,"dependentOnFoundParam":false}},"blend":{"type":"float","default_value":0.5,"options":{"spare":true,"editable":false,"computeOnDirty":true,"dependentOnFoundParam":false}}},"inputs":[{"index":0,"inputName":"value0","node":"constant1","output":"val"},{"index":1,"inputName":"value1","node":"constant2","output":"val"},{"index":2,"inputName":"blend","node":"checkers1","output":"checker"}],"connection_points":{"in":[{"name":"value0","type":"vec3"},{"name":"value1","type":"vec3"},{"name":"blend","type":"float"}],"out":[{"name":"mix","type":"vec3"}]}},"constant1":{"type":"constant","params":{"type":4,"color":[0.24313725490196078,0.5098039215686274,0.8549019607843137],"asColor":true},"connection_points":{"in":[],"out":[{"name":"val","type":"vec3"}]}},"constant2":{"type":"constant","params":{"type":4,"color":[0.047058823529411764,0.10196078431372549,0.17647058823529413],"asColor":true},"connection_points":{"in":[],"out":[{"name":"val","type":"vec3"}]}}},"persisted_config":{"material":{"metadata":{"version":4.5,"type":"Material","generator":"Material.toJSON"},"uuid":"/env/MAT/meshStandardBuilder1-main","type":"MeshStandardMaterial","color":16777215,"roughness":1,"metalness":0,"emissive":0,"envMapIntensity":1,"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":"/env/MAT/meshStandardBuilder1-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":"/env/MAT/meshStandardBuilder1-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":"/env/MAT/meshStandardBuilder1-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}}}}}}}},"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":"{}"}},"QUADTriangles":{"overriden_options":{"callback":"{}"}},"QUADWireframe":{"overriden_options":{"callback":"{}"}},"TetScale":{"overriden_options":{"callback":"{}"}},"TetDisplayLines":{"overriden_options":{"callback":"{}"}},"TetDisplaySharedFaces":{"overriden_options":{"callback":"{}"}},"TetDisplayPoints":{"overriden_options":{"callback":"{}"}},"TetDisplayCenter":{"overriden_options":{"callback":"{}"}},"TetDisplaySphere":{"overriden_options":{"callback":"{}"}}},"flags":{"display":true}}},"params":{"mainCameraPath":"/cameras/cameras:sopGroup/perspectiveCamera1"}},"ui":{"nodes":{"COP":{"pos":[-200,0],"selection":["image1"],"nodes":{"envMap":{"pos":[50,250]},"imageEnv":{"pos":[50,100]},"image1":{"pos":[-200,100]}}},"lights":{"pos":[50,-200],"selection":["spotLight1"],"nodes":{"hemisphereLight1":{"pos":[0,-100]},"spotLight1":{"pos":[250,-100]},"polarTransform1":{"pos":[250,100]},"merge1":{"pos":[50,250]}}},"cameras":{"pos":[50,-100],"nodes":{"perspectiveCamera1":{"pos":[0,-50]},"perspectiveCamera_FPS":{"pos":[300,-50]},"merge1":{"pos":[150,350]},"cameraControls1":{"pos":[0,150],"selection":["cameraOrbitControls1"],"nodes":{"cameraOrbitControls1":{"pos":[0,0]}}},"cameraControls2":{"pos":[300,150],"nodes":{"firstPersonControls1":{"pos":[-50,50]}}}}},"level":{"pos":[50,-300],"nodes":{"fileGLTF1":{"pos":[-950,-200]},"hierarchy2":{"pos":[-950,-50]},"material1":{"pos":[-950,100]},"objectProperties1":{"pos":[-950,250]},"fileGLTF2":{"pos":[-350,-200]},"hierarchy3":{"pos":[-350,-50]},"material2":{"pos":[-350,100]},"objectProperties2":{"pos":[-350,250]},"fileGLTF3":{"pos":[-50,-200]},"hierarchy4":{"pos":[-50,-50]},"material3":{"pos":[-50,100]},"objectProperties3":{"pos":[-50,250]},"fileGLTF4":{"pos":[250,-300]},"hierarchy5":{"pos":[250,-150]},"material4":{"pos":[250,0]},"objectProperties4":{"pos":[250,150]},"fileGLTF5":{"pos":[550,-300]},"hierarchy6":{"pos":[550,-150]},"material5":{"pos":[550,0]},"objectProperties5":{"pos":[550,150]},"merge2":{"pos":[50,700]},"WFCTileSideName1":{"pos":[-950,350]},"WFCTileSideName2":{"pos":[-350,350]},"WFCTileSideName3":{"pos":[-50,350]},"WFCTileSideName4":{"pos":[250,250]},"WFCTileSideName5":{"pos":[250,350]},"WFCTileSideName6":{"pos":[550,350]},"WFCTileSideName7":{"pos":[550,250]},"WFCTileSideName8":{"pos":[-950,450]},"WFCTileSideName9":{"pos":[-50,450]},"WFCTileSideName10":{"pos":[250,450]},"WFCTileSideName11":{"pos":[550,450]},"WFCTileSideName12":{"pos":[-350,450]},"fileGLTF6":{"pos":[-650,-200]},"hierarchy7":{"pos":[-650,-50]},"material6":{"pos":[-650,100]},"objectProperties6":{"pos":[-650,250]},"WFCTileSideName13":{"pos":[-650,350]},"WFCTileSideName14":{"pos":[-650,450]},"WFCTileProperties1":{"pos":[50,800]},"attribCreate2":{"pos":[-900,1750]},"attribCreate3":{"pos":[-900,1400]},"copy2":{"pos":[-900,1600]},"attribPromote1":{"pos":[-900,1900]},"merge4":{"pos":[-900,2050]},"hexagons1":{"pos":[-700,900]},"quadrangulate1":{"pos":[-700,1050]},"quadSmooth1":{"pos":[-700,1200]},"quadTriangulate1":{"pos":[-1100,2450]},"WFCSolver1":{"pos":[-700,2450]},"merge3":{"pos":[-950,3000]},"merge5":{"pos":[-700,2650]},"objectProperties7":{"pos":[-700,2750]},"quadPlane_10x10":{"pos":[-850,1100]},"quadPlane_2x2":{"pos":[-1950,1100]},"WFCRuleTileWeight1":{"pos":[-450,1900]},"WFCRuleConnectionFromSideName1":{"pos":[50,1150]},"WFCRuleConnectionToGridBorder1":{"pos":[50,1450]},"WFCTileUnresolvedObject1":{"pos":[-450,2250]},"WFCTileErrorObject1":{"pos":[-450,2100]},"sphere1":{"pos":[-250,2150]},"WFCDebug2":{"pos":[-250,2400]},"emptyObject1":{"pos":[-250,2000]},"quadPlane_3x3":{"pos":[-1750,1100]},"WFCTileEmptyObject1":{"pos":[350,850]},"merge1":{"pos":[50,1000]},"emptyObject2":{"pos":[350,700]},"WFCDebug3":{"pos":[-300,2550]},"plane1":{"pos":[-1400,2050]},"transform1":{"pos":[-1400,2250]},"WFCBuilder1":{"pos":[-500,2800]},"quadPlane_4x3":{"pos":[-1550,1100]},"quadPlane_4x4":{"pos":[-1300,1100]},"quadPlane_5x5":{"pos":[-1100,1100]},"attribCreate1":{"pos":[-900,2200]},"attribCreate4":{"pos":[-900,2300]},"WFCDebug4":{"pos":[300,1350]},"merge6":{"pos":[-250,800]},"quadPlane_2x1":{"pos":[-2150,1100]},"fileGLTF7":{"pos":[-1350,-200]},"WFCTileErrorObject2":{"pos":[0,2150]},"WFCTileUnresolvedObject2":{"pos":[0,2300]},"WFCTileEmptyObject2":{"pos":[0,2450]},"merge7":{"pos":[-500,3000]},"BVH1":{"pos":[-500,3250]},"BVHVisualizer1":{"pos":[-550,3400]},"transform2":{"pos":[-500,3150]},"MAT":{"pos":[-1600,650],"nodes":{"meshStandard1":{"pos":[-300,-50]}}}}},"env":{"pos":[50,-400],"nodes":{"material1":{"pos":[0,300]},"box1":{"pos":[0,100]},"sphere1":{"pos":[300,100]},"material2":{"pos":[300,350]},"merge1":{"pos":[100,550]},"transform1":{"pos":[300,200]},"MAT":{"pos":[-200,300],"nodes":{"sky1":{"pos":[0,400]},"meshStandardBuilder1":{"pos":[0,200],"nodes":{"globals1":{"pos":[-450,0]},"output1":{"pos":[400,0]},"vec3ToFloat1":{"pos":[-200,200]},"floatToVec2_1":{"pos":[-100,200]},"checkers1":{"pos":[50,200]},"mix1":{"pos":[250,0]},"constant1":{"pos":[50,-150]},"constant2":{"pos":[0,0]}}}}}}}}},"shaders":{"/env/MAT/meshStandardBuilder1":{"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 <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\n\n\n// /env/MAT/meshStandardBuilder1/globals1\nvarying vec3 v_POLY_globals1_position;\n\n\n\n\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 <color_vertex>\n\n\n\n\t// /env/MAT/meshStandardBuilder1/globals1\n\tv_POLY_globals1_position = vec3(position);\n\t\n\t// /env/MAT/meshStandardBuilder1/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 USE_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 USE_SPECULAR\n\tuniform float specularIntensity;\n\tuniform vec3 specularColor;\n\t#ifdef USE_SPECULAR_COLORMAP\n\t\tuniform sampler2D specularColorMap;\n\t#endif\n\t#ifdef USE_SPECULAR_INTENSITYMAP\n\t\tuniform sampler2D specularIntensityMap;\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_SHEEN_COLORMAP\n\t\tuniform sampler2D sheenColorMap;\n\t#endif\n\t#ifdef USE_SHEEN_ROUGHNESSMAP\n\t\tuniform sampler2D sheenRoughnessMap;\n\t#endif\n#endif\nvarying vec3 vViewPosition;\n#include <common>\n\n\n\n// /env/MAT/meshStandardBuilder1/checkers1\n// https://iquilezles.org/articles/checkerfiltering/\nfloat checkers(vec2 p) {\n\tvec2 s = sign(fract(p*.5)-.5);\n\treturn .5 - .5*s.x*s.y;\n}\nfloat checkersGrad( in vec2 p, in vec2 ddx, in vec2 ddy )\n{\n // filter kernel\n vec2 w = max(abs(ddx), abs(ddy)) + 0.01;\n // analytical integral (box filter)\n vec2 i = 2.0*(abs(fract((p-0.5*w)/2.0)-0.5)-abs(fract((p+0.5*w)/2.0)-0.5))/w;\n // xor pattern\n return 0.5 - 0.5*i.x*i.y;\n}\n\n\n\n\n\n\n\n\n// /env/MAT/meshStandardBuilder1/globals1\nvarying vec3 v_POLY_globals1_position;\n\n\n\n\n#include <packing>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_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 <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// /env/MAT/meshStandardBuilder1/constant1\n\tvec3 v_POLY_constant1_val = vec3(0.24313725490196078, 0.5098039215686274, 0.8549019607843137);\n\t\n\t// /env/MAT/meshStandardBuilder1/constant2\n\tvec3 v_POLY_constant2_val = vec3(0.047058823529411764, 0.10196078431372549, 0.17647058823529413);\n\t\n\t// /env/MAT/meshStandardBuilder1/vec3ToFloat1\n\tfloat v_POLY_vec3ToFloat1_x = v_POLY_globals1_position.x;\n\tfloat v_POLY_vec3ToFloat1_z = v_POLY_globals1_position.z;\n\t\n\t// /env/MAT/meshStandardBuilder1/floatToVec2_1\n\tvec2 v_POLY_floatToVec2_1_vec2 = vec2(v_POLY_vec3ToFloat1_x, v_POLY_vec3ToFloat1_z);\n\t\n\t// /env/MAT/meshStandardBuilder1/checkers1\n\tvec2 v_POLY_checkers1_coord = v_POLY_floatToVec2_1_vec2*vec2(1.0, 1.0)*1.0;\n\tfloat v_POLY_checkers1_checker = checkersGrad(v_POLY_checkers1_coord, dFdx(v_POLY_checkers1_coord), dFdy(v_POLY_checkers1_coord));\n\t\n\t// /env/MAT/meshStandardBuilder1/mix1\n\tvec3 v_POLY_mix1_mix = mix(v_POLY_constant1_val, v_POLY_constant2_val, v_POLY_checkers1_checker);\n\t\n\t// /env/MAT/meshStandardBuilder1/output1\n\tdiffuseColor.xyz = v_POLY_mix1_mix;\n\tfloat POLY_metalness = 1.0;\n\tfloat POLY_roughness = 1.0;\n\tvec3 POLY_emissive = vec3(1.0, 1.0, 1.0);\n\tSSSModel POLY_SSSModel = SSSModel(/*isActive*/false,/*color*/vec3(1.0, 1.0, 1.0), /*thickness*/0.1, /*power*/2.0, /*scale*/16.0, /*distortion*/0.1,/*ambient*/0.4,/*attenuation*/0.8 );\n\n\n\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive * POLY_emissive;\n\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#include <transmission_fragment>\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\n\n\n// /env/MAT/meshStandardBuilder1/globals1\nvarying vec3 v_POLY_globals1_position;\n\n\n\n\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// /env/MAT/meshStandardBuilder1/globals1\n\tv_POLY_globals1_position = vec3(position);\n\t\n\t// /env/MAT/meshStandardBuilder1/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\n\n\n// /env/MAT/meshStandardBuilder1/checkers1\n// https://iquilezles.org/articles/checkerfiltering/\nfloat checkers(vec2 p) {\n\tvec2 s = sign(fract(p*.5)-.5);\n\treturn .5 - .5*s.x*s.y;\n}\nfloat checkersGrad( in vec2 p, in vec2 ddx, in vec2 ddy )\n{\n // filter kernel\n vec2 w = max(abs(ddx), abs(ddy)) + 0.01;\n // analytical integral (box filter)\n vec2 i = 2.0*(abs(fract((p-0.5*w)/2.0)-0.5)-abs(fract((p+0.5*w)/2.0)-0.5))/w;\n // xor pattern\n return 0.5 - 0.5*i.x*i.y;\n}\n\n\n\n\n\n\n\n\n// /env/MAT/meshStandardBuilder1/globals1\nvarying vec3 v_POLY_globals1_position;\n\n\n\n\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// /env/MAT/meshStandardBuilder1/constant1\n\tvec3 v_POLY_constant1_val = vec3(0.24313725490196078, 0.5098039215686274, 0.8549019607843137);\n\t\n\t// /env/MAT/meshStandardBuilder1/constant2\n\tvec3 v_POLY_constant2_val = vec3(0.047058823529411764, 0.10196078431372549, 0.17647058823529413);\n\t\n\t// /env/MAT/meshStandardBuilder1/vec3ToFloat1\n\tfloat v_POLY_vec3ToFloat1_x = v_POLY_globals1_position.x;\n\tfloat v_POLY_vec3ToFloat1_z = v_POLY_globals1_position.z;\n\t\n\t// /env/MAT/meshStandardBuilder1/floatToVec2_1\n\tvec2 v_POLY_floatToVec2_1_vec2 = vec2(v_POLY_vec3ToFloat1_x, v_POLY_vec3ToFloat1_z);\n\t\n\t// /env/MAT/meshStandardBuilder1/checkers1\n\tvec2 v_POLY_checkers1_coord = v_POLY_floatToVec2_1_vec2*vec2(1.0, 1.0)*1.0;\n\tfloat v_POLY_checkers1_checker = checkersGrad(v_POLY_checkers1_coord, dFdx(v_POLY_checkers1_coord), dFdy(v_POLY_checkers1_coord));\n\t\n\t// /env/MAT/meshStandardBuilder1/mix1\n\tvec3 v_POLY_mix1_mix = mix(v_POLY_constant1_val, v_POLY_constant2_val, v_POLY_checkers1_checker);\n\t\n\t// /env/MAT/meshStandardBuilder1/output1\n\tdiffuseColor.xyz = v_POLY_mix1_mix;\n\tfloat POLY_metalness = 1.0;\n\tfloat POLY_roughness = 1.0;\n\tvec3 POLY_emissive = vec3(1.0, 1.0, 1.0);\n\tSSSModel POLY_SSSModel = SSSModel(/*isActive*/false,/*color*/vec3(1.0, 1.0, 1.0), /*thickness*/0.1, /*power*/2.0, /*scale*/16.0, /*distortion*/0.1,/*ambient*/0.4,/*attenuation*/0.8 );\n\n\n\n\n\t// 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\n\n\n// /env/MAT/meshStandardBuilder1/globals1\nvarying vec3 v_POLY_globals1_position;\n\n\n\n\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// /env/MAT/meshStandardBuilder1/globals1\n\tv_POLY_globals1_position = vec3(position);\n\t\n\t// /env/MAT/meshStandardBuilder1/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\n\n\n// /env/MAT/meshStandardBuilder1/checkers1\n// https://iquilezles.org/articles/checkerfiltering/\nfloat checkers(vec2 p) {\n\tvec2 s = sign(fract(p*.5)-.5);\n\treturn .5 - .5*s.x*s.y;\n}\nfloat checkersGrad( in vec2 p, in vec2 ddx, in vec2 ddy )\n{\n // filter kernel\n vec2 w = max(abs(ddx), abs(ddy)) + 0.01;\n // analytical integral (box filter)\n vec2 i = 2.0*(abs(fract((p-0.5*w)/2.0)-0.5)-abs(fract((p+0.5*w)/2.0)-0.5))/w;\n // xor pattern\n return 0.5 - 0.5*i.x*i.y;\n}\n\n\n\n\n\n\n\n\n// /env/MAT/meshStandardBuilder1/globals1\nvarying vec3 v_POLY_globals1_position;\n\n\n\n\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// /env/MAT/meshStandardBuilder1/constant1\n\tvec3 v_POLY_constant1_val = vec3(0.24313725490196078, 0.5098039215686274, 0.8549019607843137);\n\t\n\t// /env/MAT/meshStandardBuilder1/constant2\n\tvec3 v_POLY_constant2_val = vec3(0.047058823529411764, 0.10196078431372549, 0.17647058823529413);\n\t\n\t// /env/MAT/meshStandardBuilder1/vec3ToFloat1\n\tfloat v_POLY_vec3ToFloat1_x = v_POLY_globals1_position.x;\n\tfloat v_POLY_vec3ToFloat1_z = v_POLY_globals1_position.z;\n\t\n\t// /env/MAT/meshStandardBuilder1/floatToVec2_1\n\tvec2 v_POLY_floatToVec2_1_vec2 = vec2(v_POLY_vec3ToFloat1_x, v_POLY_vec3ToFloat1_z);\n\t\n\t// /env/MAT/meshStandardBuilder1/checkers1\n\tvec2 v_POLY_checkers1_coord = v_POLY_floatToVec2_1_vec2*vec2(1.0, 1.0)*1.0;\n\tfloat v_POLY_checkers1_checker = checkersGrad(v_POLY_checkers1_coord, dFdx(v_POLY_checkers1_coord), dFdy(v_POLY_checkers1_coord));\n\t\n\t// /env/MAT/meshStandardBuilder1/mix1\n\tvec3 v_POLY_mix1_mix = mix(v_POLY_constant1_val, v_POLY_constant2_val, v_POLY_checkers1_checker);\n\t\n\t// /env/MAT/meshStandardBuilder1/output1\n\tdiffuseColor.xyz = v_POLY_mix1_mix;\n\tfloat POLY_metalness = 1.0;\n\tfloat POLY_roughness = 1.0;\n\tvec3 POLY_emissive = vec3(1.0, 1.0, 1.0);\n\tSSSModel POLY_SSSModel = SSSModel(/*isActive*/false,/*color*/vec3(1.0, 1.0, 1.0), /*thickness*/0.1, /*power*/2.0, /*scale*/16.0, /*distortion*/0.1,/*ambient*/0.4,/*attenuation*/0.8 );\n\n\n\n\n\t// 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\n\n\n// /env/MAT/meshStandardBuilder1/globals1\nvarying vec3 v_POLY_globals1_position;\n\n\n\n\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// /env/MAT/meshStandardBuilder1/globals1\n\tv_POLY_globals1_position = vec3(position);\n\t\n\t// /env/MAT/meshStandardBuilder1/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\n\n\n// /env/MAT/meshStandardBuilder1/checkers1\n// https://iquilezles.org/articles/checkerfiltering/\nfloat checkers(vec2 p) {\n\tvec2 s = sign(fract(p*.5)-.5);\n\treturn .5 - .5*s.x*s.y;\n}\nfloat checkersGrad( in vec2 p, in vec2 ddx, in vec2 ddy )\n{\n // filter kernel\n vec2 w = max(abs(ddx), abs(ddy)) + 0.01;\n // analytical integral (box filter)\n vec2 i = 2.0*(abs(fract((p-0.5*w)/2.0)-0.5)-abs(fract((p+0.5*w)/2.0)-0.5))/w;\n // xor pattern\n return 0.5 - 0.5*i.x*i.y;\n}\n\n\n\n\n\n\n\n\n// /env/MAT/meshStandardBuilder1/globals1\nvarying vec3 v_POLY_globals1_position;\n\n\n\n\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// /env/MAT/meshStandardBuilder1/constant1\n\tvec3 v_POLY_constant1_val = vec3(0.24313725490196078, 0.5098039215686274, 0.8549019607843137);\n\t\n\t// /env/MAT/meshStandardBuilder1/constant2\n\tvec3 v_POLY_constant2_val = vec3(0.047058823529411764, 0.10196078431372549, 0.17647058823529413);\n\t\n\t// /env/MAT/meshStandardBuilder1/vec3ToFloat1\n\tfloat v_POLY_vec3ToFloat1_x = v_POLY_globals1_position.x;\n\tfloat v_POLY_vec3ToFloat1_z = v_POLY_globals1_position.z;\n\t\n\t// /env/MAT/meshStandardBuilder1/floatToVec2_1\n\tvec2 v_POLY_floatToVec2_1_vec2 = vec2(v_POLY_vec3ToFloat1_x, v_POLY_vec3ToFloat1_z);\n\t\n\t// /env/MAT/meshStandardBuilder1/checkers1\n\tvec2 v_POLY_checkers1_coord = v_POLY_floatToVec2_1_vec2*vec2(1.0, 1.0)*1.0;\n\tfloat v_POLY_checkers1_checker = checkersGrad(v_POLY_checkers1_coord, dFdx(v_POLY_checkers1_coord), dFdy(v_POLY_checkers1_coord));\n\t\n\t// /env/MAT/meshStandardBuilder1/mix1\n\tvec3 v_POLY_mix1_mix = mix(v_POLY_constant1_val, v_POLY_constant2_val, v_POLY_checkers1_checker);\n\t\n\t// /env/MAT/meshStandardBuilder1/output1\n\tdiffuseColor.xyz = v_POLY_mix1_mix;\n\tfloat POLY_metalness = 1.0;\n\tfloat POLY_roughness = 1.0;\n\tvec3 POLY_emissive = vec3(1.0, 1.0, 1.0);\n\tSSSModel POLY_SSSModel = SSSModel(/*isActive*/false,/*color*/vec3(1.0, 1.0, 1.0), /*thickness*/0.1, /*power*/2.0, /*scale*/16.0, /*distortion*/0.1,/*ambient*/0.4,/*attenuation*/0.8 );\n\n\n\n\n\t// 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"}},"jsFunctionBodies":{}}
Code editor
{"multiple_panel":{"split_ratio":0.5,"split_panel0":{"split_ratio":0.5543217692883486,"split_panel0":{"panelTypes":["viewer"],"currentPanelIndex":0,"panel_data":{"camera":"/cameras/cameras:sopGroup/perspectiveCamera_FPS","isViewerInitLayoutData":true,"linkIndex":1,"overlayedNetwork":{"allowed":false,"displayed":false,"initLayoutData":{"camera":{"position":{"x":800,"y":-1550},"zoom":1},"history":{"2":{"position":{"x":0,"y":0},"zoom":1}},"paramsDisplayed":false,"linkIndex":1}}}},"split_panel1":{"panelTypes":["params"],"currentPanelIndex":0,"panel_data":{"active_folder":null,"linkIndex":1}},"split_mode":"vertical"},"split_panel1":{"panelTypes":["network","params","viewer"],"currentPanelIndex":0,"panel_data":{"camera":{"position":{"x":412.5531069946153,"y":-2147.535429726355},"zoom":0.5962221069335931},"history":{"2":{"position":{"x":51.784661147475845,"y":227.07137330820697},"zoom":1.0222221069335933},"169":{"position":{"x":412.5531069946153,"y":-2147.535429726355},"zoom":0.5962221069335931},"1360":{"position":{"x":380.68578812293146,"y":-1914.400833770352},"zoom":0.5962221069335931}},"paramsDisplayed":false,"linkIndex":1}},"split_mode":"horizontal"},"currentNodes":["/level","/","/","/","/","/","/","/"],"navigationHistory":{"nodePaths":{"1":["/","/level"],"2":["/"],"3":["/"],"4":["/"],"5":["/"],"6":["/"],"7":["/"],"8":["/"]},"index":{"1":1,"2":0,"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/envMap;cop/image;cop/imageEXR;event/cameraOrbitControls;event/firstPersonControls;mat/meshStandard;mat/meshStandardBuilder;mat/sky;obj/copNetwork;obj/geo;sop/BVH;sop/BVHVisualizer;sop/WFCBuilder;sop/WFCDebug;sop/WFCRuleConnectionFromSideName;sop/WFCRuleConnectionToGridBorder;sop/WFCRuleTileWeight;sop/WFCSolver;sop/WFCTileEmptyObject;sop/WFCTileErrorObject;sop/WFCTileProperties;sop/WFCTileSideName;sop/WFCTileUnresolvedObject;sop/attribCreate;sop/attribPromote;sop/box;sop/cameraControls;sop/copy;sop/emptyObject;sop/fileGLTF;sop/hemisphereLight;sop/hexagons;sop/hierarchy;sop/material;sop/materialsNetwork;sop/merge;sop/objectProperties;sop/perspectiveCamera;sop/plane;sop/polarTransform;sop/quadPlane;sop/quadSmooth;sop/quadTriangulate;sop/quadrangulate;sop/sphere;sop/spotLight;sop/transform
Used operations
Used modules
Used assemblers
GL_MESH_STANDARD
Used integrations
[]
Used assets
Nodes map
{"/COP":"obj/copNetwork","/COP/envMap":"cop/envMap","/COP/imageEnv":"cop/imageEXR","/COP/image1":"cop/image","/lights":"obj/geo","/lights/hemisphereLight1":"sop/hemisphereLight","/lights/spotLight1":"sop/spotLight","/lights/polarTransform1":"sop/polarTransform","/lights/merge1":"sop/merge","/cameras":"obj/geo","/cameras/perspectiveCamera1":"sop/perspectiveCamera","/cameras/perspectiveCamera_FPS":"sop/perspectiveCamera","/cameras/merge1":"sop/merge","/cameras/cameraControls1":"sop/cameraControls","/cameras/cameraControls1/cameraOrbitControls1":"event/cameraOrbitControls","/cameras/cameraControls2":"sop/cameraControls","/cameras/cameraControls2/firstPersonControls1":"event/firstPersonControls","/level":"obj/geo","/level/fileGLTF1":"sop/fileGLTF","/level/hierarchy2":"sop/hierarchy","/level/material1":"sop/material","/level/objectProperties1":"sop/objectProperties","/level/fileGLTF2":"sop/fileGLTF","/level/hierarchy3":"sop/hierarchy","/level/material2":"sop/material","/level/objectProperties2":"sop/objectProperties","/level/fileGLTF3":"sop/fileGLTF","/level/hierarchy4":"sop/hierarchy","/level/material3":"sop/material","/level/objectProperties3":"sop/objectProperties","/level/fileGLTF4":"sop/fileGLTF","/level/hierarchy5":"sop/hierarchy","/level/material4":"sop/material","/level/objectProperties4":"sop/objectProperties","/level/fileGLTF5":"sop/fileGLTF","/level/hierarchy6":"sop/hierarchy","/level/material5":"sop/material","/level/objectProperties5":"sop/objectProperties","/level/merge2":"sop/merge","/level/WFCTileSideName1":"sop/WFCTileSideName","/level/WFCTileSideName2":"sop/WFCTileSideName","/level/WFCTileSideName3":"sop/WFCTileSideName","/level/WFCTileSideName4":"sop/WFCTileSideName","/level/WFCTileSideName5":"sop/WFCTileSideName","/level/WFCTileSideName6":"sop/WFCTileSideName","/level/WFCTileSideName7":"sop/WFCTileSideName","/level/WFCTileSideName8":"sop/WFCTileSideName","/level/WFCTileSideName9":"sop/WFCTileSideName","/level/WFCTileSideName10":"sop/WFCTileSideName","/level/WFCTileSideName11":"sop/WFCTileSideName","/level/WFCTileSideName12":"sop/WFCTileSideName","/level/fileGLTF6":"sop/fileGLTF","/level/hierarchy7":"sop/hierarchy","/level/material6":"sop/material","/level/objectProperties6":"sop/objectProperties","/level/WFCTileSideName13":"sop/WFCTileSideName","/level/WFCTileSideName14":"sop/WFCTileSideName","/level/WFCTileProperties1":"sop/WFCTileProperties","/level/attribCreate2":"sop/attribCreate","/level/attribCreate3":"sop/attribCreate","/level/copy2":"sop/copy","/level/attribPromote1":"sop/attribPromote","/level/merge4":"sop/merge","/level/hexagons1":"sop/hexagons","/level/quadrangulate1":"sop/quadrangulate","/level/quadSmooth1":"sop/quadSmooth","/level/quadTriangulate1":"sop/quadTriangulate","/level/WFCSolver1":"sop/WFCSolver","/level/merge3":"sop/merge","/level/merge5":"sop/merge","/level/objectProperties7":"sop/objectProperties","/level/quadPlane_10x10":"sop/quadPlane","/level/quadPlane_2x2":"sop/quadPlane","/level/WFCRuleTileWeight1":"sop/WFCRuleTileWeight","/level/WFCRuleConnectionFromSideName1":"sop/WFCRuleConnectionFromSideName","/level/WFCRuleConnectionToGridBorder1":"sop/WFCRuleConnectionToGridBorder","/level/WFCTileUnresolvedObject1":"sop/WFCTileUnresolvedObject","/level/WFCTileErrorObject1":"sop/WFCTileErrorObject","/level/sphere1":"sop/sphere","/level/WFCDebug2":"sop/WFCDebug","/level/emptyObject1":"sop/emptyObject","/level/quadPlane_3x3":"sop/quadPlane","/level/WFCTileEmptyObject1":"sop/WFCTileEmptyObject","/level/merge1":"sop/merge","/level/emptyObject2":"sop/emptyObject","/level/WFCDebug3":"sop/WFCDebug","/level/plane1":"sop/plane","/level/transform1":"sop/transform","/level/WFCBuilder1":"sop/WFCBuilder","/level/quadPlane_4x3":"sop/quadPlane","/level/quadPlane_4x4":"sop/quadPlane","/level/quadPlane_5x5":"sop/quadPlane","/level/attribCreate1":"sop/attribCreate","/level/attribCreate4":"sop/attribCreate","/level/WFCDebug4":"sop/WFCDebug","/level/merge6":"sop/merge","/level/quadPlane_2x1":"sop/quadPlane","/level/fileGLTF7":"sop/fileGLTF","/level/WFCTileErrorObject2":"sop/WFCTileErrorObject","/level/WFCTileUnresolvedObject2":"sop/WFCTileUnresolvedObject","/level/WFCTileEmptyObject2":"sop/WFCTileEmptyObject","/level/merge7":"sop/merge","/level/BVH1":"sop/BVH","/level/BVHVisualizer1":"sop/BVHVisualizer","/level/transform2":"sop/transform","/level/MAT":"sop/materialsNetwork","/level/MAT/meshStandard1":"mat/meshStandard","/env":"obj/geo","/env/material1":"sop/material","/env/box1":"sop/box","/env/sphere1":"sop/sphere","/env/material2":"sop/material","/env/merge1":"sop/merge","/env/transform1":"sop/transform","/env/MAT":"sop/materialsNetwork","/env/MAT/sky1":"mat/sky","/env/MAT/meshStandardBuilder1":"mat/meshStandardBuilder"}
Js version
Editor version
Engine version
Name
*
Code
{"properties":{"frame":0,"maxFrame":600,"maxFrameLocked":false,"realtimeState":true,"mainCameraPath":"/cameras/cameras:sopGroup/perspectiveCamera1","versions":{"polygonjs":"1.5.3"}},"root":{"type":"root","nodes":{"COP":{"type":"copNetwork","nodes":{"envMap":{"type":"envMap","inputs":["imageEnv"]},"imageEnv":{"type":"imageEXR","params":{"tminFilter":true,"tmagFilter":true,"tanisotropy":true,"useRendererMaxAnisotropy":true}},"image1":{"type":"image"}}},"lights":{"type":"geo","nodes":{"hemisphereLight1":{"type":"hemisphereLight","params":{"intensity":0.48}},"spotLight1":{"type":"spotLight","params":{"intensity":6.1,"decay":0.7,"distance":28,"castShadow":true,"shadowBias":-0.0004}},"polarTransform1":{"type":"polarTransform","params":{"center":[0,0.7,0],"latitude":25.2,"depth":11.1},"inputs":["spotLight1"]},"merge1":{"type":"merge","inputs":["hemisphereLight1","polarTransform1"],"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":"{}"}},"QUADTriangles":{"overriden_options":{"callback":"{}"}},"QUADWireframe":{"overriden_options":{"callback":"{}"}},"TetScale":{"overriden_options":{"callback":"{}"}},"TetDisplayLines":{"overriden_options":{"callback":"{}"}},"TetDisplaySharedFaces":{"overriden_options":{"callback":"{}"}},"TetDisplayPoints":{"overriden_options":{"callback":"{}"}},"TetDisplayCenter":{"overriden_options":{"callback":"{}"}},"TetDisplaySphere":{"overriden_options":{"callback":"{}"}}},"flags":{"display":true}},"cameras":{"type":"geo","nodes":{"perspectiveCamera1":{"type":"perspectiveCamera","params":{"position":[-0.9724019556285406,3.950611860567393,-3.089089823901697],"rotation":[-124.61392226015084,-5.934331136554857,-171.48087151908203]}},"perspectiveCamera_FPS":{"type":"perspectiveCamera","params":{"position":[-0.9724019556285406,3.950611860567393,-3.089089823901697],"rotation":[-124.61392226015084,-5.934331136554857,-171.48087151908203]}},"merge1":{"type":"merge","inputs":["cameraControls1","cameraControls2"],"flags":{"display":true}},"cameraControls1":{"type":"cameraControls","nodes":{"cameraOrbitControls1":{"type":"cameraOrbitControls","params":{"target":[-0.588734011890444,1.7602520344602086,-0.5007746498387672]}}},"params":{"node":"cameraOrbitControls1"},"inputs":["perspectiveCamera1"]},"cameraControls2":{"type":"cameraControls","nodes":{"firstPersonControls1":{"type":"firstPersonControls","params":{"colliderObject":"../../../level/BVH1","runSpeedMult":4,"startPosition":[0,6,3]}}},"params":{"node":"firstPersonControls1"},"inputs":["perspectiveCamera_FPS"]}},"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":"{}"}},"QUADTriangles":{"overriden_options":{"callback":"{}"}},"QUADWireframe":{"overriden_options":{"callback":"{}"}},"TetScale":{"overriden_options":{"callback":"{}"}},"TetDisplayLines":{"overriden_options":{"callback":"{}"}},"TetDisplaySharedFaces":{"overriden_options":{"callback":"{}"}},"TetDisplayPoints":{"overriden_options":{"callback":"{}"}},"TetDisplayCenter":{"overriden_options":{"callback":"{}"}},"TetDisplaySphere":{"overriden_options":{"callback":"{}"}}},"flags":{"display":true}},"level":{"type":"geo","nodes":{"fileGLTF1":{"type":"fileGLTF","params":{"url":"https://raw.githubusercontent.com/polygonjs/polygonjs-assets/master/models/tiles/basic/tile_straight.glb"}},"hierarchy2":{"type":"hierarchy","params":{"mode":1},"inputs":["fileGLTF1"]},"material1":{"type":"material","params":{"material":"../MAT/meshStandard1"},"inputs":["hierarchy2"]},"objectProperties1":{"type":"objectProperties","params":{"tname":true,"name":"tile_straight"},"inputs":["material1"]},"fileGLTF2":{"type":"fileGLTF","params":{"url":"https://raw.githubusercontent.com/polygonjs/polygonjs-assets/master/models/tiles/basic/tile_cross.glb?v=2"}},"hierarchy3":{"type":"hierarchy","params":{"mode":1},"inputs":["fileGLTF2"]},"material2":{"type":"material","params":{"material":"../MAT/meshStandard1"},"inputs":["hierarchy3"]},"objectProperties2":{"type":"objectProperties","params":{"tname":true,"name":"tile_cross"},"inputs":["material2"]},"fileGLTF3":{"type":"fileGLTF","params":{"url":"https://raw.githubusercontent.com/polygonjs/polygonjs-assets/master/models/tiles/basic/tile_t.glb?v=2"}},"hierarchy4":{"type":"hierarchy","params":{"mode":1},"inputs":["fileGLTF3"]},"material3":{"type":"material","params":{"material":"../MAT/meshStandard1"},"inputs":["hierarchy4"]},"objectProperties3":{"type":"objectProperties","params":{"tname":true,"name":"tile_t"},"inputs":["material3"]},"fileGLTF4":{"type":"fileGLTF","params":{"url":"https://raw.githubusercontent.com/polygonjs/polygonjs-assets/master/models/tiles/basic/tile_slope_full_top.glb?v=2"}},"hierarchy5":{"type":"hierarchy","params":{"mode":1},"inputs":["fileGLTF4"]},"material4":{"type":"material","params":{"material":"../MAT/meshStandard1"},"inputs":["hierarchy5"]},"objectProperties4":{"type":"objectProperties","params":{"tname":true,"name":"tile_slope_full_top"},"inputs":["material4"]},"fileGLTF5":{"type":"fileGLTF","params":{"url":"https://raw.githubusercontent.com/polygonjs/polygonjs-assets/master/models/tiles/basic/tile_slope_full_bottom.glb?v=2"}},"hierarchy6":{"type":"hierarchy","params":{"mode":1},"inputs":["fileGLTF5"]},"material5":{"type":"material","params":{"material":"../MAT/meshStandard1"},"inputs":["hierarchy6"]},"objectProperties5":{"type":"objectProperties","params":{"tname":true,"name":"tile_slope_full_bottom"},"inputs":["material5"]},"merge2":{"type":"merge","params":{"inputsCount":6},"maxInputsCount":6,"inputs":["WFCTileSideName8","WFCTileSideName14","WFCTileSideName12","WFCTileSideName9","WFCTileSideName10","WFCTileSideName11"]},"WFCTileSideName1":{"type":"WFCTileSideName","params":{"west":true,"east":true,"sideName":"default"},"inputs":["objectProperties1"]},"WFCTileSideName2":{"type":"WFCTileSideName","params":{"south":true,"north":true,"west":true,"east":true,"sideName":"default"},"inputs":["objectProperties2"]},"WFCTileSideName3":{"type":"WFCTileSideName","params":{"south":true,"west":true,"east":true,"sideName":"default"},"inputs":["objectProperties3"]},"WFCTileSideName4":{"type":"WFCTileSideName","params":{"west":true,"sideName":"default"},"inputs":["objectProperties4"]},"WFCTileSideName5":{"type":"WFCTileSideName","params":{"sameNameForSelectedSides":false,"bottom":true,"bottomName":"slope_full","sideName":"default"},"inputs":["WFCTileSideName4"]},"WFCTileSideName6":{"type":"WFCTileSideName","params":{"top":true,"sideName":"slope_full"},"inputs":["WFCTileSideName7"]},"WFCTileSideName7":{"type":"WFCTileSideName","params":{"east":true,"sideName":"default"},"inputs":["objectProperties5"]},"WFCTileSideName8":{"type":"WFCTileSideName","params":{"south":true,"north":true,"bottom":true,"top":true,"sideName":"empty"},"inputs":["WFCTileSideName1"]},"WFCTileSideName9":{"type":"WFCTileSideName","params":{"north":true,"bottom":true,"top":true,"sideName":"empty"},"inputs":["WFCTileSideName3"]},"WFCTileSideName10":{"type":"WFCTileSideName","params":{"south":true,"north":true,"east":true,"top":true,"sideName":"empty"},"inputs":["WFCTileSideName5"]},"WFCTileSideName11":{"type":"WFCTileSideName","params":{"south":true,"north":true,"west":true,"bottom":true,"sideName":"empty"},"inputs":["WFCTileSideName6"]},"WFCTileSideName12":{"type":"WFCTileSideName","params":{"bottom":true,"top":true,"sideName":"empty"},"inputs":["WFCTileSideName2"]},"fileGLTF6":{"type":"fileGLTF","params":{"url":"https://raw.githubusercontent.com/polygonjs/polygonjs-assets/master/models/tiles/basic/tile_turn_90.glb?v=2"}},"hierarchy7":{"type":"hierarchy","params":{"mode":1},"inputs":["fileGLTF6"]},"material6":{"type":"material","params":{"material":"../MAT/meshStandard1"},"inputs":["hierarchy7"]},"objectProperties6":{"type":"objectProperties","params":{"tname":true,"name":"tile_turn_90"},"inputs":["material6"]},"WFCTileSideName13":{"type":"WFCTileSideName","params":{"south":true,"west":true,"sideName":"default"},"inputs":["objectProperties6"]},"WFCTileSideName14":{"type":"WFCTileSideName","params":{"north":true,"east":true,"bottom":true,"top":true,"sideName":"empty"},"inputs":["WFCTileSideName13"]},"WFCTileProperties1":{"type":"WFCTileProperties","params":{"id":"`@objname`"},"inputs":["merge2"]},"attribCreate2":{"type":"attribCreate","params":{"class":3,"name":"floorIndex","value1":"@objnum"},"inputs":["copy2"]},"attribCreate3":{"type":"attribCreate","params":{"class":2,"name":"quadId","value1":"@primnum"},"inputs":["quadPlane_10x10"]},"copy2":{"type":"copy","params":{"count":4,"t":[0,1,0]},"inputs":["attribCreate3"]},"attribPromote1":{"type":"attribPromote","params":{"classFrom":3,"classTo":2,"name":"floorIndex"},"inputs":["attribCreate2"]},"merge4":{"type":"merge","params":{"compact":true},"inputs":["attribPromote1"]},"hexagons1":{"type":"hexagons","params":{"size":[10,10],"hexagonRadius":1}},"quadrangulate1":{"type":"quadrangulate","params":{"regular":false},"inputs":["hexagons1"]},"quadSmooth1":{"type":"quadSmooth","inputs":["quadrangulate1"]},"quadTriangulate1":{"type":"quadTriangulate","params":{"triangles":false,"wireframe":true},"inputs":["merge4"]},"WFCSolver1":{"type":"WFCSolver","params":{"quadSeed":-6},"inputs":["attribCreate4","WFCTileUnresolvedObject1"]},"merge3":{"type":"merge","inputs":["quadTriangulate1","WFCBuilder1"]},"merge5":{"type":"merge","params":{"compact":true,"preserveMaterials":false},"inputs":["WFCSolver1"],"flags":{"bypass":true}},"objectProperties7":{"type":"objectProperties","params":{"tcastShadow":true,"treceiveShadow":true},"inputs":["merge5"],"flags":{"bypass":true}},"quadPlane_10x10":{"type":"quadPlane","params":{"size":[10,10]}},"quadPlane_2x2":{"type":"quadPlane","params":{"size":[2,2]}},"WFCRuleTileWeight1":{"type":"WFCRuleTileWeight","params":{"tileId":"tile_t","weight":0},"inputs":["WFCRuleConnectionToGridBorder1"],"flags":{"bypass":true}},"WFCRuleConnectionFromSideName1":{"type":"WFCRuleConnectionFromSideName","inputs":["merge1"]},"WFCRuleConnectionToGridBorder1":{"type":"WFCRuleConnectionToGridBorder","params":{"sideName":"empty"},"inputs":["WFCRuleConnectionFromSideName1"]},"WFCTileUnresolvedObject1":{"type":"WFCTileUnresolvedObject","inputs":["WFCTileErrorObject1","emptyObject1"]},"WFCTileErrorObject1":{"type":"WFCTileErrorObject","inputs":["WFCRuleTileWeight1","emptyObject1"]},"sphere1":{"type":"sphere","params":{"radius":0.42}},"WFCDebug2":{"type":"WFCDebug","params":{"srcTileId":"tile_turn_90","destTileId":"__EMPTY_TILE__","sideName":"empty"},"inputs":["WFCTileUnresolvedObject1"]},"emptyObject1":{"type":"emptyObject"},"quadPlane_3x3":{"type":"quadPlane","params":{"size":[3,3]}},"WFCTileEmptyObject1":{"type":"WFCTileEmptyObject","inputs":["emptyObject2"]},"merge1":{"type":"merge","inputs":["WFCTileProperties1","WFCTileEmptyObject1"]},"emptyObject2":{"type":"emptyObject"},"WFCDebug3":{"type":"WFCDebug","params":{"srcTileId":"tile_slope_full_top","destTileId":"tile_slope_full_bottom"},"inputs":["WFCTileUnresolvedObject1"]},"plane1":{"type":"plane"},"transform1":{"type":"transform","params":{"t":[-0.45548341151592053,0.5342256927412665,0]},"inputs":["plane1"]},"WFCBuilder1":{"type":"WFCBuilder","inputs":["WFCSolver1","WFCTileUnresolvedObject1"]},"quadPlane_4x3":{"type":"quadPlane","params":{"size":[4,3]}},"quadPlane_4x4":{"type":"quadPlane","params":{"size":[4,4]}},"quadPlane_5x5":{"type":"quadPlane","params":{"size":[4,4]}},"attribCreate1":{"type":"attribCreate","params":{"class":2,"type":1,"name":"tileId"},"inputs":["merge4"],"flags":{"bypass":true}},"attribCreate4":{"type":"attribCreate","params":{"group":"21","class":2,"type":1,"name":"tileId","string":"tile_slope_full_top"},"inputs":["attribCreate1"],"flags":{"bypass":true}},"WFCDebug4":{"type":"WFCDebug","params":{"srcTileId":"tile_slope_full_*","destTileId":"tile_slope_full_*","sideName":"slope_full"},"inputs":["WFCRuleConnectionFromSideName1"]},"merge6":{"type":"merge","params":{"inputsCount":6},"maxInputsCount":6,"inputs":[null,null,null,null,"WFCTileSideName10","WFCTileSideName11"]},"quadPlane_2x1":{"type":"quadPlane","params":{"size":[2,1]}},"fileGLTF7":{"type":"fileGLTF","params":{"url":"https://raw.githubusercontent.com/polygonjs/polygonjs-assets/master/models/tiles/basic/tile_straight.glb"}},"WFCTileErrorObject2":{"type":"WFCTileErrorObject"},"WFCTileUnresolvedObject2":{"type":"WFCTileUnresolvedObject"},"WFCTileEmptyObject2":{"type":"WFCTileEmptyObject"},"merge7":{"type":"merge","params":{"compact":true},"inputs":["WFCBuilder1"]},"BVH1":{"type":"BVH","inputs":["transform2"],"flags":{"display":true}},"BVHVisualizer1":{"type":"BVHVisualizer","params":{"depth":27},"inputs":["BVH1"]},"transform2":{"type":"transform","params":{"scale":2},"inputs":["merge7"]},"MAT":{"type":"materialsNetwork","nodes":{"meshStandard1":{"type":"meshStandard","params":{"useVertexColors":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":"{}"}},"QUADTriangles":{"overriden_options":{"callback":"{}"}},"QUADWireframe":{"overriden_options":{"callback":"{}"}},"TetScale":{"overriden_options":{"callback":"{}"}},"TetDisplayLines":{"overriden_options":{"callback":"{}"}},"TetDisplaySharedFaces":{"overriden_options":{"callback":"{}"}},"TetDisplayPoints":{"overriden_options":{"callback":"{}"}},"TetDisplayCenter":{"overriden_options":{"callback":"{}"}},"TetDisplaySphere":{"overriden_options":{"callback":"{}"}}},"flags":{"display":true}},"env":{"type":"geo","nodes":{"material1":{"type":"material","params":{"material":"../MAT/meshStandardBuilder1"},"inputs":["box1"]},"box1":{"type":"box","params":{"sizes":[9.98,1,9.98],"center":[0,-0.5,0]}},"sphere1":{"type":"sphere","params":{"radius":25,"center":[0,0.015844103874672055,0]}},"material2":{"type":"material","params":{"material":"../MAT/sky1"},"inputs":["transform1"],"flags":{"display":true}},"merge1":{"type":"merge","inputs":["material1","material2"]},"transform1":{"type":"transform","params":{"applyOn":1},"inputs":["sphere1"],"flags":{"bypass":true}},"MAT":{"type":"materialsNetwork","nodes":{"sky1":{"type":"sky","params":{"azimuth":0.61}},"meshStandardBuilder1":{"type":"meshStandardBuilder","nodes":{"globals1":{"type":"globals"},"output1":{"type":"output","inputs":[null,null,{"index":2,"inputName":"color","node":"mix1","output":"mix"}]},"vec3ToFloat1":{"type":"vec3ToFloat","params":{"vec":{"overriden_options":{}}},"inputs":[{"index":0,"inputName":"vec","node":"globals1","output":"position"}]},"floatToVec2_1":{"type":"floatToVec2","params":{"x":{"overriden_options":{}},"y":{"overriden_options":{}}},"inputs":[{"index":0,"inputName":"x","node":"vec3ToFloat1","output":"x"},{"index":1,"inputName":"y","node":"vec3ToFloat1","output":"z"}]},"checkers1":{"type":"checkers","params":{"uv":{"overriden_options":{}},"freq":{"overriden_options":{}},"freqMult":{"overriden_options":{}}},"inputs":[{"index":0,"inputName":"uv","node":"floatToVec2_1","output":"vec2"}]},"mix1":{"type":"mix","params":{"value0":{"type":"vector3","default_value":[0,0,0],"options":{"spare":true,"editable":false,"computeOnDirty":true,"dependentOnFoundParam":false}},"value1":{"type":"vector3","default_value":[0,0,0],"options":{"spare":true,"editable":false,"computeOnDirty":true,"dependentOnFoundParam":false}},"blend":{"type":"float","default_value":0.5,"options":{"spare":true,"editable":false,"computeOnDirty":true,"dependentOnFoundParam":false}}},"inputs":[{"index":0,"inputName":"value0","node":"constant1","output":"val"},{"index":1,"inputName":"value1","node":"constant2","output":"val"},{"index":2,"inputName":"blend","node":"checkers1","output":"checker"}],"connection_points":{"in":[{"name":"value0","type":"vec3"},{"name":"value1","type":"vec3"},{"name":"blend","type":"float"}],"out":[{"name":"mix","type":"vec3"}]}},"constant1":{"type":"constant","params":{"type":4,"color":[0.24313725490196078,0.5098039215686274,0.8549019607843137],"asColor":true},"connection_points":{"in":[],"out":[{"name":"val","type":"vec3"}]}},"constant2":{"type":"constant","params":{"type":4,"color":[0.047058823529411764,0.10196078431372549,0.17647058823529413],"asColor":true},"connection_points":{"in":[],"out":[{"name":"val","type":"vec3"}]}}},"persisted_config":{"material":{"metadata":{"version":4.5,"type":"Material","generator":"Material.toJSON"},"uuid":"/env/MAT/meshStandardBuilder1-main","type":"MeshStandardMaterial","color":16777215,"roughness":1,"metalness":0,"emissive":0,"envMapIntensity":1,"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":"/env/MAT/meshStandardBuilder1-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":"/env/MAT/meshStandardBuilder1-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":"/env/MAT/meshStandardBuilder1-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}}}}}}}},"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":"{}"}},"QUADTriangles":{"overriden_options":{"callback":"{}"}},"QUADWireframe":{"overriden_options":{"callback":"{}"}},"TetScale":{"overriden_options":{"callback":"{}"}},"TetDisplayLines":{"overriden_options":{"callback":"{}"}},"TetDisplaySharedFaces":{"overriden_options":{"callback":"{}"}},"TetDisplayPoints":{"overriden_options":{"callback":"{}"}},"TetDisplayCenter":{"overriden_options":{"callback":"{}"}},"TetDisplaySphere":{"overriden_options":{"callback":"{}"}}},"flags":{"display":true}}},"params":{"mainCameraPath":"/cameras/cameras:sopGroup/perspectiveCamera1"}},"ui":{"nodes":{"COP":{"pos":[-200,0],"selection":["image1"],"nodes":{"envMap":{"pos":[50,250]},"imageEnv":{"pos":[50,100]},"image1":{"pos":[-200,100]}}},"lights":{"pos":[50,-200],"selection":["spotLight1"],"nodes":{"hemisphereLight1":{"pos":[0,-100]},"spotLight1":{"pos":[250,-100]},"polarTransform1":{"pos":[250,100]},"merge1":{"pos":[50,250]}}},"cameras":{"pos":[50,-100],"nodes":{"perspectiveCamera1":{"pos":[0,-50]},"perspectiveCamera_FPS":{"pos":[300,-50]},"merge1":{"pos":[150,350]},"cameraControls1":{"pos":[0,150],"selection":["cameraOrbitControls1"],"nodes":{"cameraOrbitControls1":{"pos":[0,0]}}},"cameraControls2":{"pos":[300,150],"nodes":{"firstPersonControls1":{"pos":[-50,50]}}}}},"level":{"pos":[50,-300],"nodes":{"fileGLTF1":{"pos":[-950,-200]},"hierarchy2":{"pos":[-950,-50]},"material1":{"pos":[-950,100]},"objectProperties1":{"pos":[-950,250]},"fileGLTF2":{"pos":[-350,-200]},"hierarchy3":{"pos":[-350,-50]},"material2":{"pos":[-350,100]},"objectProperties2":{"pos":[-350,250]},"fileGLTF3":{"pos":[-50,-200]},"hierarchy4":{"pos":[-50,-50]},"material3":{"pos":[-50,100]},"objectProperties3":{"pos":[-50,250]},"fileGLTF4":{"pos":[250,-300]},"hierarchy5":{"pos":[250,-150]},"material4":{"pos":[250,0]},"objectProperties4":{"pos":[250,150]},"fileGLTF5":{"pos":[550,-300]},"hierarchy6":{"pos":[550,-150]},"material5":{"pos":[550,0]},"objectProperties5":{"pos":[550,150]},"merge2":{"pos":[50,700]},"WFCTileSideName1":{"pos":[-950,350]},"WFCTileSideName2":{"pos":[-350,350]},"WFCTileSideName3":{"pos":[-50,350]},"WFCTileSideName4":{"pos":[250,250]},"WFCTileSideName5":{"pos":[250,350]},"WFCTileSideName6":{"pos":[550,350]},"WFCTileSideName7":{"pos":[550,250]},"WFCTileSideName8":{"pos":[-950,450]},"WFCTileSideName9":{"pos":[-50,450]},"WFCTileSideName10":{"pos":[250,450]},"WFCTileSideName11":{"pos":[550,450]},"WFCTileSideName12":{"pos":[-350,450]},"fileGLTF6":{"pos":[-650,-200]},"hierarchy7":{"pos":[-650,-50]},"material6":{"pos":[-650,100]},"objectProperties6":{"pos":[-650,250]},"WFCTileSideName13":{"pos":[-650,350]},"WFCTileSideName14":{"pos":[-650,450]},"WFCTileProperties1":{"pos":[50,800]},"attribCreate2":{"pos":[-900,1750]},"attribCreate3":{"pos":[-900,1400]},"copy2":{"pos":[-900,1600]},"attribPromote1":{"pos":[-900,1900]},"merge4":{"pos":[-900,2050]},"hexagons1":{"pos":[-700,900]},"quadrangulate1":{"pos":[-700,1050]},"quadSmooth1":{"pos":[-700,1200]},"quadTriangulate1":{"pos":[-1100,2450]},"WFCSolver1":{"pos":[-700,2450]},"merge3":{"pos":[-950,3000]},"merge5":{"pos":[-700,2650]},"objectProperties7":{"pos":[-700,2750]},"quadPlane_10x10":{"pos":[-850,1100]},"quadPlane_2x2":{"pos":[-1950,1100]},"WFCRuleTileWeight1":{"pos":[-450,1900]},"WFCRuleConnectionFromSideName1":{"pos":[50,1150]},"WFCRuleConnectionToGridBorder1":{"pos":[50,1450]},"WFCTileUnresolvedObject1":{"pos":[-450,2250]},"WFCTileErrorObject1":{"pos":[-450,2100]},"sphere1":{"pos":[-250,2150]},"WFCDebug2":{"pos":[-250,2400]},"emptyObject1":{"pos":[-250,2000]},"quadPlane_3x3":{"pos":[-1750,1100]},"WFCTileEmptyObject1":{"pos":[350,850]},"merge1":{"pos":[50,1000]},"emptyObject2":{"pos":[350,700]},"WFCDebug3":{"pos":[-300,2550]},"plane1":{"pos":[-1400,2050]},"transform1":{"pos":[-1400,2250]},"WFCBuilder1":{"pos":[-500,2800]},"quadPlane_4x3":{"pos":[-1550,1100]},"quadPlane_4x4":{"pos":[-1300,1100]},"quadPlane_5x5":{"pos":[-1100,1100]},"attribCreate1":{"pos":[-900,2200]},"attribCreate4":{"pos":[-900,2300]},"WFCDebug4":{"pos":[300,1350]},"merge6":{"pos":[-250,800]},"quadPlane_2x1":{"pos":[-2150,1100]},"fileGLTF7":{"pos":[-1350,-200]},"WFCTileErrorObject2":{"pos":[0,2150]},"WFCTileUnresolvedObject2":{"pos":[0,2300]},"WFCTileEmptyObject2":{"pos":[0,2450]},"merge7":{"pos":[-500,3000]},"BVH1":{"pos":[-500,3250]},"BVHVisualizer1":{"pos":[-550,3400]},"transform2":{"pos":[-500,3150]},"MAT":{"pos":[-1600,650],"nodes":{"meshStandard1":{"pos":[-300,-50]}}}}},"env":{"pos":[50,-400],"nodes":{"material1":{"pos":[0,300]},"box1":{"pos":[0,100]},"sphere1":{"pos":[300,100]},"material2":{"pos":[300,350]},"merge1":{"pos":[100,550]},"transform1":{"pos":[300,200]},"MAT":{"pos":[-200,300],"nodes":{"sky1":{"pos":[0,400]},"meshStandardBuilder1":{"pos":[0,200],"nodes":{"globals1":{"pos":[-450,0]},"output1":{"pos":[400,0]},"vec3ToFloat1":{"pos":[-200,200]},"floatToVec2_1":{"pos":[-100,200]},"checkers1":{"pos":[50,200]},"mix1":{"pos":[250,0]},"constant1":{"pos":[50,-150]},"constant2":{"pos":[0,0]}}}}}}}}},"shaders":{"/env/MAT/meshStandardBuilder1":{"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 <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\n\n\n// /env/MAT/meshStandardBuilder1/globals1\nvarying vec3 v_POLY_globals1_position;\n\n\n\n\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 <color_vertex>\n\n\n\n\t// /env/MAT/meshStandardBuilder1/globals1\n\tv_POLY_globals1_position = vec3(position);\n\t\n\t// /env/MAT/meshStandardBuilder1/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 USE_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 USE_SPECULAR\n\tuniform float specularIntensity;\n\tuniform vec3 specularColor;\n\t#ifdef USE_SPECULAR_COLORMAP\n\t\tuniform sampler2D specularColorMap;\n\t#endif\n\t#ifdef USE_SPECULAR_INTENSITYMAP\n\t\tuniform sampler2D specularIntensityMap;\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_SHEEN_COLORMAP\n\t\tuniform sampler2D sheenColorMap;\n\t#endif\n\t#ifdef USE_SHEEN_ROUGHNESSMAP\n\t\tuniform sampler2D sheenRoughnessMap;\n\t#endif\n#endif\nvarying vec3 vViewPosition;\n#include <common>\n\n\n\n// /env/MAT/meshStandardBuilder1/checkers1\n// https://iquilezles.org/articles/checkerfiltering/\nfloat checkers(vec2 p) {\n\tvec2 s = sign(fract(p*.5)-.5);\n\treturn .5 - .5*s.x*s.y;\n}\nfloat checkersGrad( in vec2 p, in vec2 ddx, in vec2 ddy )\n{\n // filter kernel\n vec2 w = max(abs(ddx), abs(ddy)) + 0.01;\n // analytical integral (box filter)\n vec2 i = 2.0*(abs(fract((p-0.5*w)/2.0)-0.5)-abs(fract((p+0.5*w)/2.0)-0.5))/w;\n // xor pattern\n return 0.5 - 0.5*i.x*i.y;\n}\n\n\n\n\n\n\n\n\n// /env/MAT/meshStandardBuilder1/globals1\nvarying vec3 v_POLY_globals1_position;\n\n\n\n\n#include <packing>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_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 <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// /env/MAT/meshStandardBuilder1/constant1\n\tvec3 v_POLY_constant1_val = vec3(0.24313725490196078, 0.5098039215686274, 0.8549019607843137);\n\t\n\t// /env/MAT/meshStandardBuilder1/constant2\n\tvec3 v_POLY_constant2_val = vec3(0.047058823529411764, 0.10196078431372549, 0.17647058823529413);\n\t\n\t// /env/MAT/meshStandardBuilder1/vec3ToFloat1\n\tfloat v_POLY_vec3ToFloat1_x = v_POLY_globals1_position.x;\n\tfloat v_POLY_vec3ToFloat1_z = v_POLY_globals1_position.z;\n\t\n\t// /env/MAT/meshStandardBuilder1/floatToVec2_1\n\tvec2 v_POLY_floatToVec2_1_vec2 = vec2(v_POLY_vec3ToFloat1_x, v_POLY_vec3ToFloat1_z);\n\t\n\t// /env/MAT/meshStandardBuilder1/checkers1\n\tvec2 v_POLY_checkers1_coord = v_POLY_floatToVec2_1_vec2*vec2(1.0, 1.0)*1.0;\n\tfloat v_POLY_checkers1_checker = checkersGrad(v_POLY_checkers1_coord, dFdx(v_POLY_checkers1_coord), dFdy(v_POLY_checkers1_coord));\n\t\n\t// /env/MAT/meshStandardBuilder1/mix1\n\tvec3 v_POLY_mix1_mix = mix(v_POLY_constant1_val, v_POLY_constant2_val, v_POLY_checkers1_checker);\n\t\n\t// /env/MAT/meshStandardBuilder1/output1\n\tdiffuseColor.xyz = v_POLY_mix1_mix;\n\tfloat POLY_metalness = 1.0;\n\tfloat POLY_roughness = 1.0;\n\tvec3 POLY_emissive = vec3(1.0, 1.0, 1.0);\n\tSSSModel POLY_SSSModel = SSSModel(/*isActive*/false,/*color*/vec3(1.0, 1.0, 1.0), /*thickness*/0.1, /*power*/2.0, /*scale*/16.0, /*distortion*/0.1,/*ambient*/0.4,/*attenuation*/0.8 );\n\n\n\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive * POLY_emissive;\n\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#include <transmission_fragment>\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\n\n\n// /env/MAT/meshStandardBuilder1/globals1\nvarying vec3 v_POLY_globals1_position;\n\n\n\n\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// /env/MAT/meshStandardBuilder1/globals1\n\tv_POLY_globals1_position = vec3(position);\n\t\n\t// /env/MAT/meshStandardBuilder1/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\n\n\n// /env/MAT/meshStandardBuilder1/checkers1\n// https://iquilezles.org/articles/checkerfiltering/\nfloat checkers(vec2 p) {\n\tvec2 s = sign(fract(p*.5)-.5);\n\treturn .5 - .5*s.x*s.y;\n}\nfloat checkersGrad( in vec2 p, in vec2 ddx, in vec2 ddy )\n{\n // filter kernel\n vec2 w = max(abs(ddx), abs(ddy)) + 0.01;\n // analytical integral (box filter)\n vec2 i = 2.0*(abs(fract((p-0.5*w)/2.0)-0.5)-abs(fract((p+0.5*w)/2.0)-0.5))/w;\n // xor pattern\n return 0.5 - 0.5*i.x*i.y;\n}\n\n\n\n\n\n\n\n\n// /env/MAT/meshStandardBuilder1/globals1\nvarying vec3 v_POLY_globals1_position;\n\n\n\n\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// /env/MAT/meshStandardBuilder1/constant1\n\tvec3 v_POLY_constant1_val = vec3(0.24313725490196078, 0.5098039215686274, 0.8549019607843137);\n\t\n\t// /env/MAT/meshStandardBuilder1/constant2\n\tvec3 v_POLY_constant2_val = vec3(0.047058823529411764, 0.10196078431372549, 0.17647058823529413);\n\t\n\t// /env/MAT/meshStandardBuilder1/vec3ToFloat1\n\tfloat v_POLY_vec3ToFloat1_x = v_POLY_globals1_position.x;\n\tfloat v_POLY_vec3ToFloat1_z = v_POLY_globals1_position.z;\n\t\n\t// /env/MAT/meshStandardBuilder1/floatToVec2_1\n\tvec2 v_POLY_floatToVec2_1_vec2 = vec2(v_POLY_vec3ToFloat1_x, v_POLY_vec3ToFloat1_z);\n\t\n\t// /env/MAT/meshStandardBuilder1/checkers1\n\tvec2 v_POLY_checkers1_coord = v_POLY_floatToVec2_1_vec2*vec2(1.0, 1.0)*1.0;\n\tfloat v_POLY_checkers1_checker = checkersGrad(v_POLY_checkers1_coord, dFdx(v_POLY_checkers1_coord), dFdy(v_POLY_checkers1_coord));\n\t\n\t// /env/MAT/meshStandardBuilder1/mix1\n\tvec3 v_POLY_mix1_mix = mix(v_POLY_constant1_val, v_POLY_constant2_val, v_POLY_checkers1_checker);\n\t\n\t// /env/MAT/meshStandardBuilder1/output1\n\tdiffuseColor.xyz = v_POLY_mix1_mix;\n\tfloat POLY_metalness = 1.0;\n\tfloat POLY_roughness = 1.0;\n\tvec3 POLY_emissive = vec3(1.0, 1.0, 1.0);\n\tSSSModel POLY_SSSModel = SSSModel(/*isActive*/false,/*color*/vec3(1.0, 1.0, 1.0), /*thickness*/0.1, /*power*/2.0, /*scale*/16.0, /*distortion*/0.1,/*ambient*/0.4,/*attenuation*/0.8 );\n\n\n\n\n\t// 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\n\n\n// /env/MAT/meshStandardBuilder1/globals1\nvarying vec3 v_POLY_globals1_position;\n\n\n\n\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// /env/MAT/meshStandardBuilder1/globals1\n\tv_POLY_globals1_position = vec3(position);\n\t\n\t// /env/MAT/meshStandardBuilder1/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\n\n\n// /env/MAT/meshStandardBuilder1/checkers1\n// https://iquilezles.org/articles/checkerfiltering/\nfloat checkers(vec2 p) {\n\tvec2 s = sign(fract(p*.5)-.5);\n\treturn .5 - .5*s.x*s.y;\n}\nfloat checkersGrad( in vec2 p, in vec2 ddx, in vec2 ddy )\n{\n // filter kernel\n vec2 w = max(abs(ddx), abs(ddy)) + 0.01;\n // analytical integral (box filter)\n vec2 i = 2.0*(abs(fract((p-0.5*w)/2.0)-0.5)-abs(fract((p+0.5*w)/2.0)-0.5))/w;\n // xor pattern\n return 0.5 - 0.5*i.x*i.y;\n}\n\n\n\n\n\n\n\n\n// /env/MAT/meshStandardBuilder1/globals1\nvarying vec3 v_POLY_globals1_position;\n\n\n\n\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// /env/MAT/meshStandardBuilder1/constant1\n\tvec3 v_POLY_constant1_val = vec3(0.24313725490196078, 0.5098039215686274, 0.8549019607843137);\n\t\n\t// /env/MAT/meshStandardBuilder1/constant2\n\tvec3 v_POLY_constant2_val = vec3(0.047058823529411764, 0.10196078431372549, 0.17647058823529413);\n\t\n\t// /env/MAT/meshStandardBuilder1/vec3ToFloat1\n\tfloat v_POLY_vec3ToFloat1_x = v_POLY_globals1_position.x;\n\tfloat v_POLY_vec3ToFloat1_z = v_POLY_globals1_position.z;\n\t\n\t// /env/MAT/meshStandardBuilder1/floatToVec2_1\n\tvec2 v_POLY_floatToVec2_1_vec2 = vec2(v_POLY_vec3ToFloat1_x, v_POLY_vec3ToFloat1_z);\n\t\n\t// /env/MAT/meshStandardBuilder1/checkers1\n\tvec2 v_POLY_checkers1_coord = v_POLY_floatToVec2_1_vec2*vec2(1.0, 1.0)*1.0;\n\tfloat v_POLY_checkers1_checker = checkersGrad(v_POLY_checkers1_coord, dFdx(v_POLY_checkers1_coord), dFdy(v_POLY_checkers1_coord));\n\t\n\t// /env/MAT/meshStandardBuilder1/mix1\n\tvec3 v_POLY_mix1_mix = mix(v_POLY_constant1_val, v_POLY_constant2_val, v_POLY_checkers1_checker);\n\t\n\t// /env/MAT/meshStandardBuilder1/output1\n\tdiffuseColor.xyz = v_POLY_mix1_mix;\n\tfloat POLY_metalness = 1.0;\n\tfloat POLY_roughness = 1.0;\n\tvec3 POLY_emissive = vec3(1.0, 1.0, 1.0);\n\tSSSModel POLY_SSSModel = SSSModel(/*isActive*/false,/*color*/vec3(1.0, 1.0, 1.0), /*thickness*/0.1, /*power*/2.0, /*scale*/16.0, /*distortion*/0.1,/*ambient*/0.4,/*attenuation*/0.8 );\n\n\n\n\n\t// 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\n\n\n// /env/MAT/meshStandardBuilder1/globals1\nvarying vec3 v_POLY_globals1_position;\n\n\n\n\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// /env/MAT/meshStandardBuilder1/globals1\n\tv_POLY_globals1_position = vec3(position);\n\t\n\t// /env/MAT/meshStandardBuilder1/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\n\n\n// /env/MAT/meshStandardBuilder1/checkers1\n// https://iquilezles.org/articles/checkerfiltering/\nfloat checkers(vec2 p) {\n\tvec2 s = sign(fract(p*.5)-.5);\n\treturn .5 - .5*s.x*s.y;\n}\nfloat checkersGrad( in vec2 p, in vec2 ddx, in vec2 ddy )\n{\n // filter kernel\n vec2 w = max(abs(ddx), abs(ddy)) + 0.01;\n // analytical integral (box filter)\n vec2 i = 2.0*(abs(fract((p-0.5*w)/2.0)-0.5)-abs(fract((p+0.5*w)/2.0)-0.5))/w;\n // xor pattern\n return 0.5 - 0.5*i.x*i.y;\n}\n\n\n\n\n\n\n\n\n// /env/MAT/meshStandardBuilder1/globals1\nvarying vec3 v_POLY_globals1_position;\n\n\n\n\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// /env/MAT/meshStandardBuilder1/constant1\n\tvec3 v_POLY_constant1_val = vec3(0.24313725490196078, 0.5098039215686274, 0.8549019607843137);\n\t\n\t// /env/MAT/meshStandardBuilder1/constant2\n\tvec3 v_POLY_constant2_val = vec3(0.047058823529411764, 0.10196078431372549, 0.17647058823529413);\n\t\n\t// /env/MAT/meshStandardBuilder1/vec3ToFloat1\n\tfloat v_POLY_vec3ToFloat1_x = v_POLY_globals1_position.x;\n\tfloat v_POLY_vec3ToFloat1_z = v_POLY_globals1_position.z;\n\t\n\t// /env/MAT/meshStandardBuilder1/floatToVec2_1\n\tvec2 v_POLY_floatToVec2_1_vec2 = vec2(v_POLY_vec3ToFloat1_x, v_POLY_vec3ToFloat1_z);\n\t\n\t// /env/MAT/meshStandardBuilder1/checkers1\n\tvec2 v_POLY_checkers1_coord = v_POLY_floatToVec2_1_vec2*vec2(1.0, 1.0)*1.0;\n\tfloat v_POLY_checkers1_checker = checkersGrad(v_POLY_checkers1_coord, dFdx(v_POLY_checkers1_coord), dFdy(v_POLY_checkers1_coord));\n\t\n\t// /env/MAT/meshStandardBuilder1/mix1\n\tvec3 v_POLY_mix1_mix = mix(v_POLY_constant1_val, v_POLY_constant2_val, v_POLY_checkers1_checker);\n\t\n\t// /env/MAT/meshStandardBuilder1/output1\n\tdiffuseColor.xyz = v_POLY_mix1_mix;\n\tfloat POLY_metalness = 1.0;\n\tfloat POLY_roughness = 1.0;\n\tvec3 POLY_emissive = vec3(1.0, 1.0, 1.0);\n\tSSSModel POLY_SSSModel = SSSModel(/*isActive*/false,/*color*/vec3(1.0, 1.0, 1.0), /*thickness*/0.1, /*power*/2.0, /*scale*/16.0, /*distortion*/0.1,/*ambient*/0.4,/*attenuation*/0.8 );\n\n\n\n\n\t// 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"}},"jsFunctionBodies":{}}
Code editor
{"multiple_panel":{"split_ratio":0.5,"split_panel0":{"split_ratio":0.5543217692883486,"split_panel0":{"panelTypes":["viewer"],"currentPanelIndex":0,"panel_data":{"camera":"/cameras/cameras:sopGroup/perspectiveCamera_FPS","isViewerInitLayoutData":true,"linkIndex":1,"overlayedNetwork":{"allowed":false,"displayed":false,"initLayoutData":{"camera":{"position":{"x":800,"y":-1550},"zoom":1},"history":{"2":{"position":{"x":0,"y":0},"zoom":1}},"paramsDisplayed":false,"linkIndex":1}}}},"split_panel1":{"panelTypes":["params"],"currentPanelIndex":0,"panel_data":{"active_folder":null,"linkIndex":1}},"split_mode":"vertical"},"split_panel1":{"panelTypes":["network","params","viewer"],"currentPanelIndex":0,"panel_data":{"camera":{"position":{"x":412.5531069946153,"y":-2147.535429726355},"zoom":0.5962221069335931},"history":{"2":{"position":{"x":51.784661147475845,"y":227.07137330820697},"zoom":1.0222221069335933},"169":{"position":{"x":412.5531069946153,"y":-2147.535429726355},"zoom":0.5962221069335931},"1360":{"position":{"x":380.68578812293146,"y":-1914.400833770352},"zoom":0.5962221069335931}},"paramsDisplayed":false,"linkIndex":1}},"split_mode":"horizontal"},"currentNodes":["/level","/","/","/","/","/","/","/"],"navigationHistory":{"nodePaths":{"1":["/","/level"],"2":["/"],"3":["/"],"4":["/"],"5":["/"],"6":["/"],"7":["/"],"8":["/"]},"index":{"1":1,"2":0,"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/envMap;cop/image;cop/imageEXR;event/cameraOrbitControls;event/firstPersonControls;mat/meshStandard;mat/meshStandardBuilder;mat/sky;obj/copNetwork;obj/geo;sop/BVH;sop/BVHVisualizer;sop/WFCBuilder;sop/WFCDebug;sop/WFCRuleConnectionFromSideName;sop/WFCRuleConnectionToGridBorder;sop/WFCRuleTileWeight;sop/WFCSolver;sop/WFCTileEmptyObject;sop/WFCTileErrorObject;sop/WFCTileProperties;sop/WFCTileSideName;sop/WFCTileUnresolvedObject;sop/attribCreate;sop/attribPromote;sop/box;sop/cameraControls;sop/copy;sop/emptyObject;sop/fileGLTF;sop/hemisphereLight;sop/hexagons;sop/hierarchy;sop/material;sop/materialsNetwork;sop/merge;sop/objectProperties;sop/perspectiveCamera;sop/plane;sop/polarTransform;sop/quadPlane;sop/quadSmooth;sop/quadTriangulate;sop/quadrangulate;sop/sphere;sop/spotLight;sop/transform
Used operations
Used modules
Used assemblers
GL_MESH_STANDARD
Used integrations
[]
Used assets
Nodes map
{"/COP":"obj/copNetwork","/COP/envMap":"cop/envMap","/COP/imageEnv":"cop/imageEXR","/COP/image1":"cop/image","/lights":"obj/geo","/lights/hemisphereLight1":"sop/hemisphereLight","/lights/spotLight1":"sop/spotLight","/lights/polarTransform1":"sop/polarTransform","/lights/merge1":"sop/merge","/cameras":"obj/geo","/cameras/perspectiveCamera1":"sop/perspectiveCamera","/cameras/perspectiveCamera_FPS":"sop/perspectiveCamera","/cameras/merge1":"sop/merge","/cameras/cameraControls1":"sop/cameraControls","/cameras/cameraControls1/cameraOrbitControls1":"event/cameraOrbitControls","/cameras/cameraControls2":"sop/cameraControls","/cameras/cameraControls2/firstPersonControls1":"event/firstPersonControls","/level":"obj/geo","/level/fileGLTF1":"sop/fileGLTF","/level/hierarchy2":"sop/hierarchy","/level/material1":"sop/material","/level/objectProperties1":"sop/objectProperties","/level/fileGLTF2":"sop/fileGLTF","/level/hierarchy3":"sop/hierarchy","/level/material2":"sop/material","/level/objectProperties2":"sop/objectProperties","/level/fileGLTF3":"sop/fileGLTF","/level/hierarchy4":"sop/hierarchy","/level/material3":"sop/material","/level/objectProperties3":"sop/objectProperties","/level/fileGLTF4":"sop/fileGLTF","/level/hierarchy5":"sop/hierarchy","/level/material4":"sop/material","/level/objectProperties4":"sop/objectProperties","/level/fileGLTF5":"sop/fileGLTF","/level/hierarchy6":"sop/hierarchy","/level/material5":"sop/material","/level/objectProperties5":"sop/objectProperties","/level/merge2":"sop/merge","/level/WFCTileSideName1":"sop/WFCTileSideName","/level/WFCTileSideName2":"sop/WFCTileSideName","/level/WFCTileSideName3":"sop/WFCTileSideName","/level/WFCTileSideName4":"sop/WFCTileSideName","/level/WFCTileSideName5":"sop/WFCTileSideName","/level/WFCTileSideName6":"sop/WFCTileSideName","/level/WFCTileSideName7":"sop/WFCTileSideName","/level/WFCTileSideName8":"sop/WFCTileSideName","/level/WFCTileSideName9":"sop/WFCTileSideName","/level/WFCTileSideName10":"sop/WFCTileSideName","/level/WFCTileSideName11":"sop/WFCTileSideName","/level/WFCTileSideName12":"sop/WFCTileSideName","/level/fileGLTF6":"sop/fileGLTF","/level/hierarchy7":"sop/hierarchy","/level/material6":"sop/material","/level/objectProperties6":"sop/objectProperties","/level/WFCTileSideName13":"sop/WFCTileSideName","/level/WFCTileSideName14":"sop/WFCTileSideName","/level/WFCTileProperties1":"sop/WFCTileProperties","/level/attribCreate2":"sop/attribCreate","/level/attribCreate3":"sop/attribCreate","/level/copy2":"sop/copy","/level/attribPromote1":"sop/attribPromote","/level/merge4":"sop/merge","/level/hexagons1":"sop/hexagons","/level/quadrangulate1":"sop/quadrangulate","/level/quadSmooth1":"sop/quadSmooth","/level/quadTriangulate1":"sop/quadTriangulate","/level/WFCSolver1":"sop/WFCSolver","/level/merge3":"sop/merge","/level/merge5":"sop/merge","/level/objectProperties7":"sop/objectProperties","/level/quadPlane_10x10":"sop/quadPlane","/level/quadPlane_2x2":"sop/quadPlane","/level/WFCRuleTileWeight1":"sop/WFCRuleTileWeight","/level/WFCRuleConnectionFromSideName1":"sop/WFCRuleConnectionFromSideName","/level/WFCRuleConnectionToGridBorder1":"sop/WFCRuleConnectionToGridBorder","/level/WFCTileUnresolvedObject1":"sop/WFCTileUnresolvedObject","/level/WFCTileErrorObject1":"sop/WFCTileErrorObject","/level/sphere1":"sop/sphere","/level/WFCDebug2":"sop/WFCDebug","/level/emptyObject1":"sop/emptyObject","/level/quadPlane_3x3":"sop/quadPlane","/level/WFCTileEmptyObject1":"sop/WFCTileEmptyObject","/level/merge1":"sop/merge","/level/emptyObject2":"sop/emptyObject","/level/WFCDebug3":"sop/WFCDebug","/level/plane1":"sop/plane","/level/transform1":"sop/transform","/level/WFCBuilder1":"sop/WFCBuilder","/level/quadPlane_4x3":"sop/quadPlane","/level/quadPlane_4x4":"sop/quadPlane","/level/quadPlane_5x5":"sop/quadPlane","/level/attribCreate1":"sop/attribCreate","/level/attribCreate4":"sop/attribCreate","/level/WFCDebug4":"sop/WFCDebug","/level/merge6":"sop/merge","/level/quadPlane_2x1":"sop/quadPlane","/level/fileGLTF7":"sop/fileGLTF","/level/WFCTileErrorObject2":"sop/WFCTileErrorObject","/level/WFCTileUnresolvedObject2":"sop/WFCTileUnresolvedObject","/level/WFCTileEmptyObject2":"sop/WFCTileEmptyObject","/level/merge7":"sop/merge","/level/BVH1":"sop/BVH","/level/BVHVisualizer1":"sop/BVHVisualizer","/level/transform2":"sop/transform","/level/MAT":"sop/materialsNetwork","/level/MAT/meshStandard1":"mat/meshStandard","/env":"obj/geo","/env/material1":"sop/material","/env/box1":"sop/box","/env/sphere1":"sop/sphere","/env/material2":"sop/material","/env/merge1":"sop/merge","/env/transform1":"sop/transform","/env/MAT":"sop/materialsNetwork","/env/MAT/sky1":"mat/sky","/env/MAT/meshStandardBuilder1":"mat/meshStandardBuilder"}
Js version
Editor version
Engine version
Logout
0%
There was a problem displaying your scene:
view scene source