eab52f757e9fe1109a4e67e8d67930c6316521e2980f4554cc49eb245b53df6f.json 7.9 KB

1
  1. {"ast":null,"code":"import { TransformBlock } from \"./Blocks/transformBlock.js\";\nimport { VertexOutputBlock } from \"./Blocks/Vertex/vertexOutputBlock.js\";\nimport { FragmentOutputBlock } from \"./Blocks/Fragment/fragmentOutputBlock.js\";\nimport { InputBlock } from \"./Blocks/Input/inputBlock.js\";\nimport { GaussianSplattingBlock } from \"./Blocks/GaussianSplatting/gaussianSplattingBlock.js\";\nimport { GaussianBlock } from \"./Blocks/GaussianSplatting/gaussianBlock.js\";\nimport { SplatReaderBlock } from \"./Blocks/GaussianSplatting/splatReaderBlock.js\";\nimport { NodeMaterialModes } from \"./Enums/nodeMaterialModes.js\";\nimport { NodeMaterialSystemValues } from \"./Enums/nodeMaterialSystemValues.js\";\n/**\n * Clear the material and set it to a default state for gaussian splatting\n * @param nodeMaterial node material to use\n */\nexport function SetToDefaultGaussianSplatting(nodeMaterial) {\n nodeMaterial.clear();\n nodeMaterial.editorData = null;\n // reading splat datas\n const splatIndex = new InputBlock(\"SplatIndex\");\n splatIndex.setAsAttribute(\"splatIndex\");\n const splatReader = new SplatReaderBlock(\"SplatReader\");\n splatIndex.connectTo(splatReader);\n // transforming datas into renderable positions\n const gs = new GaussianSplattingBlock(\"GaussianSplatting\");\n splatReader.connectTo(gs);\n // world transformation\n const worldInput = new InputBlock(\"World\");\n worldInput.setAsSystemValue(NodeMaterialSystemValues.World);\n const worldPos = new TransformBlock(\"WorldPos\");\n splatReader.connectTo(worldPos);\n worldInput.connectTo(worldPos);\n worldPos.connectTo(gs, {\n output: \"xyz\",\n input: \"splatPosition\"\n });\n // view and projections\n const view = new InputBlock(\"view\");\n view.setAsSystemValue(NodeMaterialSystemValues.View);\n const projection = new InputBlock(\"Projection\");\n projection.setAsSystemValue(NodeMaterialSystemValues.Projection);\n worldInput.connectTo(gs, {\n input: \"world\"\n });\n view.connectTo(gs, {\n input: \"view\"\n });\n projection.connectTo(gs, {\n input: \"projection\"\n });\n // from color to gaussian color\n const gaussian = new GaussianBlock(\"Gaussian\");\n splatReader.connectTo(gaussian, {\n input: \"splatColor\",\n output: \"splatColor\"\n });\n // fragment and vertex outputs\n const fragmentOutput = new FragmentOutputBlock(\"FragmentOutput\");\n gaussian.connectTo(fragmentOutput);\n const vertexOutput = new VertexOutputBlock(\"VertexOutput\");\n gs.connectTo(vertexOutput);\n // Add to nodes\n nodeMaterial.addOutputNode(vertexOutput);\n nodeMaterial.addOutputNode(fragmentOutput);\n nodeMaterial._mode = NodeMaterialModes.GaussianSplatting;\n}","map":{"version":3,"names":["TransformBlock","VertexOutputBlock","FragmentOutputBlock","InputBlock","GaussianSplattingBlock","GaussianBlock","SplatReaderBlock","NodeMaterialModes","NodeMaterialSystemValues","SetToDefaultGaussianSplatting","nodeMaterial","clear","editorData","splatIndex","setAsAttribute","splatReader","connectTo","gs","worldInput","setAsSystemValue","World","worldPos","output","input","view","View","projection","Projection","gaussian","fragmentOutput","vertexOutput","addOutputNode","_mode","GaussianSplatting"],"sources":["F:/workspace/202226701027/huinongbao-app/node_modules/@babylonjs/core/Materials/Node/nodeMaterialDefault.js"],"sourcesContent":["import { TransformBlock } from \"./Blocks/transformBlock.js\";\nimport { VertexOutputBlock } from \"./Blocks/Vertex/vertexOutputBlock.js\";\nimport { FragmentOutputBlock } from \"./Blocks/Fragment/fragmentOutputBlock.js\";\nimport { InputBlock } from \"./Blocks/Input/inputBlock.js\";\nimport { GaussianSplattingBlock } from \"./Blocks/GaussianSplatting/gaussianSplattingBlock.js\";\nimport { GaussianBlock } from \"./Blocks/GaussianSplatting/gaussianBlock.js\";\nimport { SplatReaderBlock } from \"./Blocks/GaussianSplatting/splatReaderBlock.js\";\nimport { NodeMaterialModes } from \"./Enums/nodeMaterialModes.js\";\nimport { NodeMaterialSystemValues } from \"./Enums/nodeMaterialSystemValues.js\";\n/**\n * Clear the material and set it to a default state for gaussian splatting\n * @param nodeMaterial node material to use\n */\nexport function SetToDefaultGaussianSplatting(nodeMaterial) {\n nodeMaterial.clear();\n nodeMaterial.editorData = null;\n // reading splat datas\n const splatIndex = new InputBlock(\"SplatIndex\");\n splatIndex.setAsAttribute(\"splatIndex\");\n const splatReader = new SplatReaderBlock(\"SplatReader\");\n splatIndex.connectTo(splatReader);\n // transforming datas into renderable positions\n const gs = new GaussianSplattingBlock(\"GaussianSplatting\");\n splatReader.connectTo(gs);\n // world transformation\n const worldInput = new InputBlock(\"World\");\n worldInput.setAsSystemValue(NodeMaterialSystemValues.World);\n const worldPos = new TransformBlock(\"WorldPos\");\n splatReader.connectTo(worldPos);\n worldInput.connectTo(worldPos);\n worldPos.connectTo(gs, { output: \"xyz\", input: \"splatPosition\" });\n // view and projections\n const view = new InputBlock(\"view\");\n view.setAsSystemValue(NodeMaterialSystemValues.View);\n const projection = new InputBlock(\"Projection\");\n projection.setAsSystemValue(NodeMaterialSystemValues.Projection);\n worldInput.connectTo(gs, { input: \"world\" });\n view.connectTo(gs, { input: \"view\" });\n projection.connectTo(gs, { input: \"projection\" });\n // from color to gaussian color\n const gaussian = new GaussianBlock(\"Gaussian\");\n splatReader.connectTo(gaussian, { input: \"splatColor\", output: \"splatColor\" });\n // fragment and vertex outputs\n const fragmentOutput = new FragmentOutputBlock(\"FragmentOutput\");\n gaussian.connectTo(fragmentOutput);\n const vertexOutput = new VertexOutputBlock(\"VertexOutput\");\n gs.connectTo(vertexOutput);\n // Add to nodes\n nodeMaterial.addOutputNode(vertexOutput);\n nodeMaterial.addOutputNode(fragmentOutput);\n nodeMaterial._mode = NodeMaterialModes.GaussianSplatting;\n}\n"],"mappings":"AAAA,SAASA,cAAc,QAAQ,4BAA4B;AAC3D,SAASC,iBAAiB,QAAQ,sCAAsC;AACxE,SAASC,mBAAmB,QAAQ,0CAA0C;AAC9E,SAASC,UAAU,QAAQ,8BAA8B;AACzD,SAASC,sBAAsB,QAAQ,sDAAsD;AAC7F,SAASC,aAAa,QAAQ,6CAA6C;AAC3E,SAASC,gBAAgB,QAAQ,gDAAgD;AACjF,SAASC,iBAAiB,QAAQ,8BAA8B;AAChE,SAASC,wBAAwB,QAAQ,qCAAqC;AAC9E;AACA;AACA;AACA;AACA,OAAO,SAASC,6BAA6BA,CAACC,YAAY,EAAE;EACxDA,YAAY,CAACC,KAAK,CAAC,CAAC;EACpBD,YAAY,CAACE,UAAU,GAAG,IAAI;EAC9B;EACA,MAAMC,UAAU,GAAG,IAAIV,UAAU,CAAC,YAAY,CAAC;EAC/CU,UAAU,CAACC,cAAc,CAAC,YAAY,CAAC;EACvC,MAAMC,WAAW,GAAG,IAAIT,gBAAgB,CAAC,aAAa,CAAC;EACvDO,UAAU,CAACG,SAAS,CAACD,WAAW,CAAC;EACjC;EACA,MAAME,EAAE,GAAG,IAAIb,sBAAsB,CAAC,mBAAmB,CAAC;EAC1DW,WAAW,CAACC,SAAS,CAACC,EAAE,CAAC;EACzB;EACA,MAAMC,UAAU,GAAG,IAAIf,UAAU,CAAC,OAAO,CAAC;EAC1Ce,UAAU,CAACC,gBAAgB,CAACX,wBAAwB,CAACY,KAAK,CAAC;EAC3D,MAAMC,QAAQ,GAAG,IAAIrB,cAAc,CAAC,UAAU,CAAC;EAC/Ce,WAAW,CAACC,SAAS,CAACK,QAAQ,CAAC;EAC/BH,UAAU,CAACF,SAAS,CAACK,QAAQ,CAAC;EAC9BA,QAAQ,CAACL,SAAS,CAACC,EAAE,EAAE;IAAEK,MAAM,EAAE,KAAK;IAAEC,KAAK,EAAE;EAAgB,CAAC,CAAC;EACjE;EACA,MAAMC,IAAI,GAAG,IAAIrB,UAAU,CAAC,MAAM,CAAC;EACnCqB,IAAI,CAACL,gBAAgB,CAACX,wBAAwB,CAACiB,IAAI,CAAC;EACpD,MAAMC,UAAU,GAAG,IAAIvB,UAAU,CAAC,YAAY,CAAC;EAC/CuB,UAAU,CAACP,gBAAgB,CAACX,wBAAwB,CAACmB,UAAU,CAAC;EAChET,UAAU,CAACF,SAAS,CAACC,EAAE,EAAE;IAAEM,KAAK,EAAE;EAAQ,CAAC,CAAC;EAC5CC,IAAI,CAACR,SAAS,CAACC,EAAE,EAAE;IAAEM,KAAK,EAAE;EAAO,CAAC,CAAC;EACrCG,UAAU,CAACV,SAAS,CAACC,EAAE,EAAE;IAAEM,KAAK,EAAE;EAAa,CAAC,CAAC;EACjD;EACA,MAAMK,QAAQ,GAAG,IAAIvB,aAAa,CAAC,UAAU,CAAC;EAC9CU,WAAW,CAACC,SAAS,CAACY,QAAQ,EAAE;IAAEL,KAAK,EAAE,YAAY;IAAED,MAAM,EAAE;EAAa,CAAC,CAAC;EAC9E;EACA,MAAMO,cAAc,GAAG,IAAI3B,mBAAmB,CAAC,gBAAgB,CAAC;EAChE0B,QAAQ,CAACZ,SAAS,CAACa,cAAc,CAAC;EAClC,MAAMC,YAAY,GAAG,IAAI7B,iBAAiB,CAAC,cAAc,CAAC;EAC1DgB,EAAE,CAACD,SAAS,CAACc,YAAY,CAAC;EAC1B;EACApB,YAAY,CAACqB,aAAa,CAACD,YAAY,CAAC;EACxCpB,YAAY,CAACqB,aAAa,CAACF,cAAc,CAAC;EAC1CnB,YAAY,CAACsB,KAAK,GAAGzB,iBAAiB,CAAC0B,iBAAiB;AAC5D","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}