[{"data":1,"prerenderedAt":1469},["ShallowReactive",2],{"navigation":3,"\u002Fapi\u002Fabstractions\u002Fmerged":498,"\u002Fapi\u002Fabstractions\u002Fmerged-surround":1464},[4,26],{"title":5,"path":6,"stem":7,"children":8},"Getting Started","\u002Fgetting-started","1.getting-started\u002F1.index",[9,10,14,18,22],{"title":5,"path":6,"stem":7},{"title":11,"path":12,"stem":13},"Installation Guide","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F2.installation",{"title":15,"path":16,"stem":17},"Usage","\u002Fgetting-started\u002Fusage","1.getting-started\u002F3.usage",{"title":19,"path":20,"stem":21},"Loading Models","\u002Fgetting-started\u002Floading-models","1.getting-started\u002F4.loading-models",{"title":23,"path":24,"stem":25},"Upgrade Guide","\u002Fgetting-started\u002Fupgrade-guide","1.getting-started\u002F5.upgrade-guide",{"title":27,"path":28,"stem":29,"children":30},"Api","\u002Fapi","2.api",[31,34,96,126,168,210,308,334,368,418,464],{"title":32,"path":28,"stem":33},"All","2.api\u002Findex",{"title":35,"path":36,"stem":37,"children":38},"Abstractions","\u002Fapi\u002Fabstractions","2.api\u002F1.abstractions\u002Findex",[39,40,44,48,52,56,60,64,68,72,76,80,84,88,92],{"title":35,"path":36,"stem":37},{"title":41,"path":42,"stem":43},"Align","\u002Fapi\u002Fabstractions\u002Falign","2.api\u002F1.abstractions\u002Falign",{"title":45,"path":46,"stem":47},"Billboard","\u002Fapi\u002Fabstractions\u002Fbillboard","2.api\u002F1.abstractions\u002Fbillboard",{"title":49,"path":50,"stem":51},"Camera Shake","\u002Fapi\u002Fabstractions\u002Fcamera-shake","2.api\u002F1.abstractions\u002Fcamera-shake",{"title":53,"path":54,"stem":55},"Decal","\u002Fapi\u002Fabstractions\u002Fdecal","2.api\u002F1.abstractions\u002Fdecal",{"title":57,"path":58,"stem":59},"Edges","\u002Fapi\u002Fabstractions\u002Fedges","2.api\u002F1.abstractions\u002Fedges",{"title":61,"path":62,"stem":63},"Fit","\u002Fapi\u002Fabstractions\u002Ffit","2.api\u002F1.abstractions\u002Ffit",{"title":65,"path":66,"stem":67},"Instances","\u002Fapi\u002Fabstractions\u002Finstances","2.api\u002F1.abstractions\u002Finstances",{"title":69,"path":70,"stem":71},"Levioso (Float)","\u002Fapi\u002Fabstractions\u002Flevioso","2.api\u002F1.abstractions\u002Flevioso",{"title":73,"path":74,"stem":75},"Mask","\u002Fapi\u002Fabstractions\u002Fmask","2.api\u002F1.abstractions\u002Fmask",{"title":77,"path":78,"stem":79},"Merged","\u002Fapi\u002Fabstractions\u002Fmerged","2.api\u002F1.abstractions\u002Fmerged",{"title":81,"path":82,"stem":83},"Outline","\u002Fapi\u002Fabstractions\u002Foutline","2.api\u002F1.abstractions\u002Foutline",{"title":85,"path":86,"stem":87},"Sampler","\u002Fapi\u002Fabstractions\u002Fsampler","2.api\u002F1.abstractions\u002Fsampler",{"title":89,"path":90,"stem":91},"ScreenSizer","\u002Fapi\u002Fabstractions\u002Fscreen-sizer","2.api\u002F1.abstractions\u002Fscreen-sizer",{"title":93,"path":94,"stem":95},"ScreenSpace","\u002Fapi\u002Fabstractions\u002Fscreen-space","2.api\u002F1.abstractions\u002Fscreen-space",{"title":97,"path":98,"stem":99,"children":100},"Controls","\u002Fapi\u002Fcontrols","2.api\u002F2.controls\u002Findex",[101,102,106,110,114,118,122],{"title":97,"path":98,"stem":99},{"title":103,"path":104,"stem":105},"Camera Controls","\u002Fapi\u002Fcontrols\u002Fcamera-controls","2.api\u002F2.controls\u002Fcamera-controls",{"title":107,"path":108,"stem":109},"Keyboard Controls","\u002Fapi\u002Fcontrols\u002Fkeyboard-controls","2.api\u002F2.controls\u002Fkeyboard-controls",{"title":111,"path":112,"stem":113},"Map Controls","\u002Fapi\u002Fcontrols\u002Fmap-controls","2.api\u002F2.controls\u002Fmap-controls",{"title":115,"path":116,"stem":117},"Orbit Controls","\u002Fapi\u002Fcontrols\u002Forbit-controls","2.api\u002F2.controls\u002Forbit-controls",{"title":119,"path":120,"stem":121},"PointerLock Controls","\u002Fapi\u002Fcontrols\u002Fpointer-lock-controls","2.api\u002F2.controls\u002Fpointer-lock-controls",{"title":123,"path":124,"stem":125},"Transform Controls","\u002Fapi\u002Fcontrols\u002Ftransform-controls","2.api\u002F2.controls\u002Ftransform-controls",{"title":127,"path":128,"stem":129,"children":130},"Loaders","\u002Fapi\u002Floaders","2.api\u002F3.loaders\u002Findex",[131,132,136,140,144,148,152,156,160,164],{"title":127,"path":128,"stem":129},{"title":133,"path":134,"stem":135},"useGLTF","\u002Fapi\u002Floaders\u002Fuse-gltf","2.api\u002F3.loaders\u002F1.use-gltf",{"title":137,"path":138,"stem":139},"GLTFModel","\u002Fapi\u002Floaders\u002Fgltf-model","2.api\u002F3.loaders\u002F2.gltf-model",{"title":141,"path":142,"stem":143},"useFBX","\u002Fapi\u002Floaders\u002Fuse-fbx","2.api\u002F3.loaders\u002F3.use-fbx",{"title":145,"path":146,"stem":147},"FBXModel","\u002Fapi\u002Floaders\u002Ffbx-model","2.api\u002F3.loaders\u002F4.fbx-model",{"title":149,"path":150,"stem":151},"useTexture","\u002Fapi\u002Floaders\u002Fuse-texture","2.api\u002F3.loaders\u002F5.use-texture",{"title":153,"path":154,"stem":155},"useTextures","\u002Fapi\u002Floaders\u002Fuse-textures","2.api\u002F3.loaders\u002F6.use-textures",{"title":157,"path":158,"stem":159},"useSVG","\u002Fapi\u002Floaders\u002Fuse-svg","2.api\u002F3.loaders\u002F7.use-svg",{"title":161,"path":162,"stem":163},"useProgress","\u002Fapi\u002Floaders\u002Fuse-progress","2.api\u002F3.loaders\u002Fuse-progress",{"title":165,"path":166,"stem":167},"useVideoTexture","\u002Fapi\u002Floaders\u002Fuse-video-texture","2.api\u002F3.loaders\u002Fuse-video-texture",{"title":169,"path":170,"stem":171,"children":172},"Materials","\u002Fapi\u002Fmaterials","2.api\u002F4.materials\u002Findex",[173,174,178,182,186,190,194,198,202,206],{"title":169,"path":170,"stem":171},{"title":175,"path":176,"stem":177},"Custom Shader Material","\u002Fapi\u002Fmaterials\u002Fcustom-shader-material","2.api\u002F4.materials\u002Fcustom-shader-material",{"title":179,"path":180,"stem":181},"Mesh Glass Material","\u002Fapi\u002Fmaterials\u002Fglass-material","2.api\u002F4.materials\u002Fglass-material",{"title":183,"path":184,"stem":185},"Holographic Material","\u002Fapi\u002Fmaterials\u002Fholographic-material","2.api\u002F4.materials\u002Fholographic-material",{"title":187,"path":188,"stem":189},"Mesh Discard Material","\u002Fapi\u002Fmaterials\u002Fmesh-discard-material","2.api\u002F4.materials\u002Fmesh-discard-material",{"title":191,"path":192,"stem":193},"Mesh Portal Material","\u002Fapi\u002Fmaterials\u002Fmesh-portal-material","2.api\u002F4.materials\u002Fmesh-portal-material",{"title":195,"path":196,"stem":197},"Mesh Reflection Material","\u002Fapi\u002Fmaterials\u002Fmesh-reflection-material","2.api\u002F4.materials\u002Fmesh-reflection-material",{"title":199,"path":200,"stem":201},"Mesh Transmission Material","\u002Fapi\u002Fmaterials\u002Fmesh-transmission-material","2.api\u002F4.materials\u002Fmesh-transmission-material",{"title":203,"path":204,"stem":205},"Point Material","\u002Fapi\u002Fmaterials\u002Fpoint-material","2.api\u002F4.materials\u002Fpoint-material",{"title":207,"path":208,"stem":209},"Wobble Material","\u002Fapi\u002Fmaterials\u002Fwobble-material","2.api\u002F4.materials\u002Fwobble-material",{"title":211,"path":212,"stem":213,"children":214},"Shapes","\u002Fapi\u002Fshapes","2.api\u002F5.shapes\u002Findex",[215,216,220,224,228,232,236,240,244,248,252,256,260,264,268,272,276,280,284,288,292,296,300,304],{"title":211,"path":212,"stem":213},{"title":217,"path":218,"stem":219},"Box","\u002Fapi\u002Fshapes\u002Fbox","2.api\u002F5.shapes\u002Fbox",{"title":221,"path":222,"stem":223},"CatmullRomCurve3","\u002Fapi\u002Fshapes\u002Fcatmullromcurve3","2.api\u002F5.shapes\u002Fcatmullromcurve3",{"title":225,"path":226,"stem":227},"Circle","\u002Fapi\u002Fshapes\u002Fcircle","2.api\u002F5.shapes\u002Fcircle",{"title":229,"path":230,"stem":231},"Cone","\u002Fapi\u002Fshapes\u002Fcone","2.api\u002F5.shapes\u002Fcone",{"title":233,"path":234,"stem":235},"Cubic Bezier Line","\u002Fapi\u002Fshapes\u002Fcubic-bezier-line","2.api\u002F5.shapes\u002Fcubic-bezier-line",{"title":237,"path":238,"stem":239},"Cylinder","\u002Fapi\u002Fshapes\u002Fcylinder","2.api\u002F5.shapes\u002Fcylinder",{"title":241,"path":242,"stem":243},"Dodecahedron","\u002Fapi\u002Fshapes\u002Fdodecahedron","2.api\u002F5.shapes\u002Fdodecahedron",{"title":245,"path":246,"stem":247},"Grid","\u002Fapi\u002Fshapes\u002Fgrid","2.api\u002F5.shapes\u002Fgrid",{"title":249,"path":250,"stem":251},"Icosahedron","\u002Fapi\u002Fshapes\u002Ficosahedron","2.api\u002F5.shapes\u002Ficosahedron",{"title":253,"path":254,"stem":255},"Line2","\u002Fapi\u002Fshapes\u002Fline2","2.api\u002F5.shapes\u002Fline2",{"title":257,"path":258,"stem":259},"Octahedron","\u002Fapi\u002Fshapes\u002Foctahedron","2.api\u002F5.shapes\u002Foctahedron",{"title":261,"path":262,"stem":263},"Plane","\u002Fapi\u002Fshapes\u002Fplane","2.api\u002F5.shapes\u002Fplane",{"title":265,"path":266,"stem":267},"Quadratic Bezier Line","\u002Fapi\u002Fshapes\u002Fquadratic-bezier-line","2.api\u002F5.shapes\u002Fquadratic-bezier-line",{"title":269,"path":270,"stem":271},"Ring","\u002Fapi\u002Fshapes\u002Fring","2.api\u002F5.shapes\u002Fring",{"title":273,"path":274,"stem":275},"Rounded Box","\u002Fapi\u002Fshapes\u002Frounded-box","2.api\u002F5.shapes\u002Frounded-box",{"title":277,"path":278,"stem":279},"Rounded Plane","\u002Fapi\u002Fshapes\u002Frounded-plane","2.api\u002F5.shapes\u002Frounded-plane",{"title":281,"path":282,"stem":283},"Screen Quad","\u002Fapi\u002Fshapes\u002Fscreen-quad","2.api\u002F5.shapes\u002Fscreen-quad",{"title":285,"path":286,"stem":287},"Sphere","\u002Fapi\u002Fshapes\u002Fsphere","2.api\u002F5.shapes\u002Fsphere",{"title":289,"path":290,"stem":291},"Superformula","\u002Fapi\u002Fshapes\u002Fsuperformula","2.api\u002F5.shapes\u002Fsuperformula",{"title":293,"path":294,"stem":295},"Tetrahedron","\u002Fapi\u002Fshapes\u002Ftetrahedron","2.api\u002F5.shapes\u002Ftetrahedron",{"title":297,"path":298,"stem":299},"Torus","\u002Fapi\u002Fshapes\u002Ftorus","2.api\u002F5.shapes\u002Ftorus",{"title":301,"path":302,"stem":303},"Torus Knot","\u002Fapi\u002Fshapes\u002Ftorus-knot","2.api\u002F5.shapes\u002Ftorus-knot",{"title":305,"path":306,"stem":307},"Tube","\u002Fapi\u002Fshapes\u002Ftube","2.api\u002F5.shapes\u002Ftube",{"title":309,"path":310,"stem":311,"children":312},"Debug\u002FPerformance","\u002Fapi\u002Fdebug-performance","2.api\u002F6.debug-performance\u002Findex",[313,314,318,322,326,330],{"title":309,"path":310,"stem":311},{"title":315,"path":316,"stem":317},"Helper","\u002Fapi\u002Fdebug-performance\u002Fhelper","2.api\u002F6.debug-performance\u002Fhelper",{"title":319,"path":320,"stem":321},"LOD","\u002Fapi\u002Fdebug-performance\u002Flod","2.api\u002F6.debug-performance\u002Flod",{"title":323,"path":324,"stem":325},"Stats","\u002Fapi\u002Fdebug-performance\u002Fstats","2.api\u002F6.debug-performance\u002Fstats",{"title":327,"path":328,"stem":329},"StatsGl","\u002Fapi\u002Fdebug-performance\u002Fstats-gl","2.api\u002F6.debug-performance\u002Fstats-gl",{"title":331,"path":332,"stem":333},"useBVH","\u002Fapi\u002Fdebug-performance\u002Fuse-bvh","2.api\u002F6.debug-performance\u002Fuse-bvh",{"title":335,"path":336,"stem":337,"children":338},"Light\u002FShadow","\u002Fapi\u002Flight-shadow","2.api\u002F7.light-shadow\u002Findex",[339,340,344,348,352,356,360,364],{"title":335,"path":336,"stem":337},{"title":341,"path":342,"stem":343},"Accumulative Shadows","\u002Fapi\u002Flight-shadow\u002Faccumulative-shadows","2.api\u002F7.light-shadow\u002Faccumulative-shadows",{"title":345,"path":346,"stem":347},"Bake Shadows","\u002Fapi\u002Flight-shadow\u002Fbake-shadows","2.api\u002F7.light-shadow\u002Fbake-shadows",{"title":349,"path":350,"stem":351},"Circle Shadow","\u002Fapi\u002Flight-shadow\u002Fcircle-shadow","2.api\u002F7.light-shadow\u002Fcircle-shadow",{"title":353,"path":354,"stem":355},"Contact Shadows","\u002Fapi\u002Flight-shadow\u002Fcontact-shadows","2.api\u002F7.light-shadow\u002Fcontact-shadows",{"title":357,"path":358,"stem":359},"Lensflare","\u002Fapi\u002Flight-shadow\u002Flensflare","2.api\u002F7.light-shadow\u002Flensflare",{"title":361,"path":362,"stem":363},"Randomized Lights","\u002Fapi\u002Flight-shadow\u002Frandomized-lights","2.api\u002F7.light-shadow\u002Frandomized-lights",{"title":365,"path":366,"stem":367},"Soft Shadows","\u002Fapi\u002Flight-shadow\u002Fsoft-shadows","2.api\u002F7.light-shadow\u002Fsoft-shadows",{"title":369,"path":370,"stem":371,"children":372},"Staging","\u002Fapi\u002Fstaging","2.api\u002F8.staging\u002Findex",[373,374,378,382,386,390,394,398,402,406,410,414],{"title":369,"path":370,"stem":371},{"title":375,"path":376,"stem":377},"Environment","\u002Fapi\u002Fstaging\u002Fenvironment","2.api\u002F8.staging\u002F1.environment",{"title":379,"path":380,"stem":381},"useEnvironment","\u002Fapi\u002Fstaging\u002Fuse-environment","2.api\u002F8.staging\u002F2.use-environment",{"title":383,"path":384,"stem":385},"Lightformer","\u002Fapi\u002Fstaging\u002Flightformer","2.api\u002F8.staging\u002F3.lightformer",{"title":387,"path":388,"stem":389},"Backdrop","\u002Fapi\u002Fstaging\u002Fbackdrop","2.api\u002F8.staging\u002Fbackdrop",{"title":391,"path":392,"stem":393},"Ocean","\u002Fapi\u002Fstaging\u002Focean","2.api\u002F8.staging\u002Focean",{"title":395,"path":396,"stem":397},"Precipitation","\u002Fapi\u002Fstaging\u002Fprecipitation","2.api\u002F8.staging\u002Fprecipitation",{"title":399,"path":400,"stem":401},"Sky","\u002Fapi\u002Fstaging\u002Fsky","2.api\u002F8.staging\u002Fsky",{"title":403,"path":404,"stem":405},"Smoke","\u002Fapi\u002Fstaging\u002Fsmoke","2.api\u002F8.staging\u002Fsmoke",{"title":407,"path":408,"stem":409},"Sparkles","\u002Fapi\u002Fstaging\u002Fsparkles","2.api\u002F8.staging\u002Fsparkles",{"title":411,"path":412,"stem":413},"Stage","\u002Fapi\u002Fstaging\u002Fstage","2.api\u002F8.staging\u002Fstage",{"title":415,"path":416,"stem":417},"Stars","\u002Fapi\u002Fstaging\u002Fstars","2.api\u002F8.staging\u002Fstars",{"title":419,"path":420,"stem":421,"children":422},"Objects","\u002Fapi\u002Fobjects","2.api\u002F9.objects\u002Findex",[423,424,428,432,436,440,444,448,452,456,460],{"title":419,"path":420,"stem":421},{"title":425,"path":426,"stem":427},"AnimatedSprite","\u002Fapi\u002Fobjects\u002Fanimated-sprite","2.api\u002F9.objects\u002Fanimated-sprite",{"title":429,"path":430,"stem":431},"CubeCamera","\u002Fapi\u002Fobjects\u002Fcube-camera","2.api\u002F9.objects\u002Fcube-camera",{"title":433,"path":434,"stem":435},"Fbo","\u002Fapi\u002Fobjects\u002Ffbo","2.api\u002F9.objects\u002Ffbo",{"title":437,"path":438,"stem":439},"GradientTexture","\u002Fapi\u002Fobjects\u002Fgradient-texture","2.api\u002F9.objects\u002Fgradient-texture",{"title":441,"path":442,"stem":443},"HTML","\u002Fapi\u002Fobjects\u002Fhtml","2.api\u002F9.objects\u002Fhtml",{"title":445,"path":446,"stem":447},"Image","\u002Fapi\u002Fobjects\u002Fimage","2.api\u002F9.objects\u002Fimage",{"title":449,"path":450,"stem":451},"MarchingCubes","\u002Fapi\u002Fobjects\u002Fmarching-cubes","2.api\u002F9.objects\u002Fmarching-cubes",{"title":453,"path":454,"stem":455},"Reflector","\u002Fapi\u002Fobjects\u002Freflector","2.api\u002F9.objects\u002Freflector",{"title":457,"path":458,"stem":459},"Refractor","\u002Fapi\u002Fobjects\u002Frefractor","2.api\u002F9.objects\u002Frefractor",{"title":461,"path":462,"stem":463},"Text3D","\u002Fapi\u002Fobjects\u002Ftext-3d","2.api\u002F9.objects\u002Ftext-3d",{"title":465,"path":466,"stem":467,"children":468},"Miscellaneous","\u002Fapi\u002Fmiscellaneous","2.api\u002Fmiscellaneous\u002Findex",[469,470,474,478,482,486,490,494],{"title":465,"path":466,"stem":467},{"title":471,"path":472,"stem":473},"Bounds","\u002Fapi\u002Fmiscellaneous\u002Fbounds","2.api\u002Fmiscellaneous\u002Fbounds",{"title":475,"path":476,"stem":477},"GlobalAudio","\u002Fapi\u002Fmiscellaneous\u002Fglobal-audio","2.api\u002Fmiscellaneous\u002Fglobal-audio",{"title":479,"path":480,"stem":481},"MouseParallax","\u002Fapi\u002Fmiscellaneous\u002Fmouse-parallax","2.api\u002Fmiscellaneous\u002Fmouse-parallax",{"title":483,"path":484,"stem":485},"PositionalAudio","\u002Fapi\u002Fmiscellaneous\u002Fpositional-audio","2.api\u002Fmiscellaneous\u002Fpositional-audio",{"title":487,"path":488,"stem":489},"useAnimations","\u002Fapi\u002Fmiscellaneous\u002Fuse-animations","2.api\u002Fmiscellaneous\u002Fuse-animations",{"title":491,"path":492,"stem":493},"useGLTFExporter","\u002Fapi\u002Fmiscellaneous\u002Fuse-gltf-exporter","2.api\u002Fmiscellaneous\u002Fuse-gltf-exporter",{"title":495,"path":496,"stem":497},"useIntersect","\u002Fapi\u002Fmiscellaneous\u002Fuse-intersect","2.api\u002Fmiscellaneous\u002Fuse-intersect",{"id":499,"title":77,"body":500,"description":1458,"extension":1459,"links":1460,"meta":1461,"navigation":629,"path":78,"seo":1462,"stem":79,"__hash__":1463},"docs\u002F2.api\u002F1.abstractions\u002Fmerged.md",{"type":501,"value":502,"toc":1452},"minimark",[503,509,525,533,537,540,875,878,1253,1263,1267,1275,1344,1347,1351,1364,1368,1431,1437,1448],[504,505,506],"scene-controls-wrapper",{},[507,508],"abstractions-merged",{},[510,511,512,516,517,520,521,524],"p",{},[513,514,515],"code",{},"\u003CMerged \u002F>"," takes a ",[513,518,519],{},"{ name: mesh }"," map and builds one instanced batch per entry. Any descendant,\nat any depth and in any component, joins one by key with ",[513,522,523],{},"\u003CInstance batch=\"...\" \u002F>",".",[510,526,527,528,532],{},"That is what makes repeating a whole model cheap: a robot made of two meshes drawn 49 times is\n",[529,530,531],"strong",{},"two"," drawcalls, not 98.",[534,535,15],"h2",{"id":536},"usage",[510,538,539],{},"The model becomes its own component, and knows nothing about the batches beyond their names:",[541,542,548],"pre",{"className":543,"code":544,"filename":545,"language":546,"meta":547,"style":547},"language-vue shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u003Cscript setup lang=\"ts\">\nimport { Instance } from '@tresjs\u002Fcientos'\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003CTresGroup>\n    \u003CInstance batch=\"Body\" :position=\"[0, 0.6, 0]\" \u002F>\n    \u003CInstance batch=\"Body\" :position=\"[0, 1.6, 0]\" :scale=\"0.6\" \u002F>\n    \u003CInstance batch=\"Eye\" :position=\"[-0.18, 1.7, 0.32]\" \u002F>\n    \u003CInstance batch=\"Eye\" :position=\"[0.18, 1.7, 0.32]\" \u002F>\n  \u003C\u002FTresGroup>\n\u003C\u002Ftemplate>\n","Robot.vue","vue","",[513,549,550,585,614,624,631,641,652,708,765,813,856,866],{"__ignoreMap":547},[551,552,555,559,563,567,570,573,576,580,582],"span",{"class":553,"line":554},"line",1,[551,556,558],{"class":557},"sMK4o","\u003C",[551,560,562],{"class":561},"swJcz","script",[551,564,566],{"class":565},"spNyl"," setup",[551,568,569],{"class":565}," lang",[551,571,572],{"class":557},"=",[551,574,575],{"class":557},"\"",[551,577,579],{"class":578},"sfazB","ts",[551,581,575],{"class":557},[551,583,584],{"class":557},">\n",[551,586,588,592,595,599,602,605,608,611],{"class":553,"line":587},2,[551,589,591],{"class":590},"s7zQu","import",[551,593,594],{"class":557}," {",[551,596,598],{"class":597},"sTEyZ"," Instance",[551,600,601],{"class":557}," }",[551,603,604],{"class":590}," from",[551,606,607],{"class":557}," '",[551,609,610],{"class":578},"@tresjs\u002Fcientos",[551,612,613],{"class":557},"'\n",[551,615,617,620,622],{"class":553,"line":616},3,[551,618,619],{"class":557},"\u003C\u002F",[551,621,562],{"class":561},[551,623,584],{"class":557},[551,625,627],{"class":553,"line":626},4,[551,628,630],{"emptyLinePlaceholder":629},true,"\n",[551,632,634,636,639],{"class":553,"line":633},5,[551,635,558],{"class":557},[551,637,638],{"class":561},"template",[551,640,584],{"class":557},[551,642,644,647,650],{"class":553,"line":643},6,[551,645,646],{"class":557},"  \u003C",[551,648,649],{"class":561},"TresGroup",[551,651,584],{"class":557},[551,653,655,658,661,664,666,668,671,673,676,679,681,683,686,690,693,696,698,700,703,705],{"class":553,"line":654},7,[551,656,657],{"class":557},"    \u003C",[551,659,660],{"class":561},"Instance",[551,662,663],{"class":565}," batch",[551,665,572],{"class":557},[551,667,575],{"class":557},[551,669,670],{"class":578},"Body",[551,672,575],{"class":557},[551,674,675],{"class":557}," :",[551,677,678],{"class":565},"position",[551,680,572],{"class":557},[551,682,575],{"class":557},[551,684,685],{"class":557},"[",[551,687,689],{"class":688},"sbssI","0",[551,691,692],{"class":557},", ",[551,694,695],{"class":688},"0.6",[551,697,692],{"class":557},[551,699,689],{"class":688},[551,701,702],{"class":557},"]",[551,704,575],{"class":557},[551,706,707],{"class":557}," \u002F>\n",[551,709,711,713,715,717,719,721,723,725,727,729,731,733,735,737,739,742,744,746,748,750,752,755,757,759,761,763],{"class":553,"line":710},8,[551,712,657],{"class":557},[551,714,660],{"class":561},[551,716,663],{"class":565},[551,718,572],{"class":557},[551,720,575],{"class":557},[551,722,670],{"class":578},[551,724,575],{"class":557},[551,726,675],{"class":557},[551,728,678],{"class":565},[551,730,572],{"class":557},[551,732,575],{"class":557},[551,734,685],{"class":557},[551,736,689],{"class":688},[551,738,692],{"class":557},[551,740,741],{"class":688},"1.6",[551,743,692],{"class":557},[551,745,689],{"class":688},[551,747,702],{"class":557},[551,749,575],{"class":557},[551,751,675],{"class":557},[551,753,754],{"class":565},"scale",[551,756,572],{"class":557},[551,758,575],{"class":557},[551,760,695],{"class":688},[551,762,575],{"class":557},[551,764,707],{"class":557},[551,766,768,770,772,774,776,778,781,783,785,787,789,791,794,797,799,802,804,807,809,811],{"class":553,"line":767},9,[551,769,657],{"class":557},[551,771,660],{"class":561},[551,773,663],{"class":565},[551,775,572],{"class":557},[551,777,575],{"class":557},[551,779,780],{"class":578},"Eye",[551,782,575],{"class":557},[551,784,675],{"class":557},[551,786,678],{"class":565},[551,788,572],{"class":557},[551,790,575],{"class":557},[551,792,793],{"class":557},"[-",[551,795,796],{"class":688},"0.18",[551,798,692],{"class":557},[551,800,801],{"class":688},"1.7",[551,803,692],{"class":557},[551,805,806],{"class":688},"0.32",[551,808,702],{"class":557},[551,810,575],{"class":557},[551,812,707],{"class":557},[551,814,816,818,820,822,824,826,828,830,832,834,836,838,840,842,844,846,848,850,852,854],{"class":553,"line":815},10,[551,817,657],{"class":557},[551,819,660],{"class":561},[551,821,663],{"class":565},[551,823,572],{"class":557},[551,825,575],{"class":557},[551,827,780],{"class":578},[551,829,575],{"class":557},[551,831,675],{"class":557},[551,833,678],{"class":565},[551,835,572],{"class":557},[551,837,575],{"class":557},[551,839,685],{"class":557},[551,841,796],{"class":688},[551,843,692],{"class":557},[551,845,801],{"class":688},[551,847,692],{"class":557},[551,849,806],{"class":688},[551,851,702],{"class":557},[551,853,575],{"class":557},[551,855,707],{"class":557},[551,857,859,862,864],{"class":553,"line":858},11,[551,860,861],{"class":557},"  \u003C\u002F",[551,863,649],{"class":561},[551,865,584],{"class":557},[551,867,869,871,873],{"class":553,"line":868},12,[551,870,619],{"class":557},[551,872,638],{"class":561},[551,874,584],{"class":557},[510,876,877],{},"The provider hands over the meshes and renders as many copies as it likes:",[541,879,888],{"className":543,"code":880,"highlights":881,"language":546,"meta":547,"style":547},"\u003Cscript setup lang=\"ts\">\nimport { TresCanvas } from '@tresjs\u002Fcore'\nimport { Merged, useGLTF } from '@tresjs\u002Fcientos'\nimport Robot from '.\u002FRobot.vue'\n\nconst { nodes } = useGLTF('\u002Frobot.glb')\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003CTresCanvas>\n    \u003CTresPerspectiveCamera :position=\"[12, 9, 12]\" \u002F>\n    \u003CMerged :meshes=\"{ Body: nodes.Body, Eye: nodes.Eye }\">\n      \u003CRobot :position=\"[-2, 0, 0]\" \u002F>\n      \u003CRobot :position=\"[0, 0, 0]\" \u002F>\n      \u003CRobot :position=\"[2, 0, 0]\" \u002F>\n    \u003C\u002FMerged>\n  \u003C\u002FTresCanvas>\n\u003C\u002Ftemplate>\n",[868,882,883,884,885,886,887],13,14,15,16,17,18,[513,889,890,910,930,955,972,976,1009,1017,1021,1029,1038,1073,1123,1159,1192,1225,1235,1244],{"__ignoreMap":547},[551,891,892,894,896,898,900,902,904,906,908],{"class":553,"line":554},[551,893,558],{"class":557},[551,895,562],{"class":561},[551,897,566],{"class":565},[551,899,569],{"class":565},[551,901,572],{"class":557},[551,903,575],{"class":557},[551,905,579],{"class":578},[551,907,575],{"class":557},[551,909,584],{"class":557},[551,911,912,914,916,919,921,923,925,928],{"class":553,"line":587},[551,913,591],{"class":590},[551,915,594],{"class":557},[551,917,918],{"class":597}," TresCanvas",[551,920,601],{"class":557},[551,922,604],{"class":590},[551,924,607],{"class":557},[551,926,927],{"class":578},"@tresjs\u002Fcore",[551,929,613],{"class":557},[551,931,932,934,936,939,942,945,947,949,951,953],{"class":553,"line":616},[551,933,591],{"class":590},[551,935,594],{"class":557},[551,937,938],{"class":597}," Merged",[551,940,941],{"class":557},",",[551,943,944],{"class":597}," useGLTF",[551,946,601],{"class":557},[551,948,604],{"class":590},[551,950,607],{"class":557},[551,952,610],{"class":578},[551,954,613],{"class":557},[551,956,957,959,962,965,967,970],{"class":553,"line":626},[551,958,591],{"class":590},[551,960,961],{"class":597}," Robot ",[551,963,964],{"class":590},"from",[551,966,607],{"class":557},[551,968,969],{"class":578},".\u002FRobot.vue",[551,971,613],{"class":557},[551,973,974],{"class":553,"line":633},[551,975,630],{"emptyLinePlaceholder":629},[551,977,978,981,983,986,989,992,995,998,1001,1004,1006],{"class":553,"line":643},[551,979,980],{"class":565},"const",[551,982,594],{"class":557},[551,984,985],{"class":597}," nodes ",[551,987,988],{"class":557},"}",[551,990,991],{"class":557}," =",[551,993,944],{"class":994},"s2Zo4",[551,996,997],{"class":597},"(",[551,999,1000],{"class":557},"'",[551,1002,1003],{"class":578},"\u002Frobot.glb",[551,1005,1000],{"class":557},[551,1007,1008],{"class":597},")\n",[551,1010,1011,1013,1015],{"class":553,"line":654},[551,1012,619],{"class":557},[551,1014,562],{"class":561},[551,1016,584],{"class":557},[551,1018,1019],{"class":553,"line":710},[551,1020,630],{"emptyLinePlaceholder":629},[551,1022,1023,1025,1027],{"class":553,"line":767},[551,1024,558],{"class":557},[551,1026,638],{"class":561},[551,1028,584],{"class":557},[551,1030,1031,1033,1036],{"class":553,"line":815},[551,1032,646],{"class":557},[551,1034,1035],{"class":561},"TresCanvas",[551,1037,584],{"class":557},[551,1039,1040,1042,1045,1047,1049,1051,1053,1055,1058,1060,1063,1065,1067,1069,1071],{"class":553,"line":858},[551,1041,657],{"class":557},[551,1043,1044],{"class":561},"TresPerspectiveCamera",[551,1046,675],{"class":557},[551,1048,678],{"class":565},[551,1050,572],{"class":557},[551,1052,575],{"class":557},[551,1054,685],{"class":557},[551,1056,1057],{"class":688},"12",[551,1059,692],{"class":557},[551,1061,1062],{"class":688},"9",[551,1064,692],{"class":557},[551,1066,1057],{"class":688},[551,1068,702],{"class":557},[551,1070,575],{"class":557},[551,1072,707],{"class":557},[551,1074,1077,1079,1081,1083,1086,1088,1090,1093,1095,1098,1101,1103,1105,1107,1109,1111,1113,1115,1117,1119,1121],{"class":1075,"line":868},[553,1076],"highlight",[551,1078,657],{"class":557},[551,1080,77],{"class":561},[551,1082,675],{"class":557},[551,1084,1085],{"class":565},"meshes",[551,1087,572],{"class":557},[551,1089,575],{"class":557},[551,1091,1092],{"class":557},"{ ",[551,1094,670],{"class":561},[551,1096,1097],{"class":557},": ",[551,1099,1100],{"class":597},"nodes",[551,1102,524],{"class":557},[551,1104,670],{"class":597},[551,1106,692],{"class":557},[551,1108,780],{"class":561},[551,1110,1097],{"class":557},[551,1112,1100],{"class":597},[551,1114,524],{"class":557},[551,1116,780],{"class":597},[551,1118,601],{"class":557},[551,1120,575],{"class":557},[551,1122,584],{"class":557},[551,1124,1126,1129,1132,1134,1136,1138,1140,1142,1145,1147,1149,1151,1153,1155,1157],{"class":1125,"line":882},[553,1076],[551,1127,1128],{"class":557},"      \u003C",[551,1130,1131],{"class":561},"Robot",[551,1133,675],{"class":557},[551,1135,678],{"class":565},[551,1137,572],{"class":557},[551,1139,575],{"class":557},[551,1141,793],{"class":557},[551,1143,1144],{"class":688},"2",[551,1146,692],{"class":557},[551,1148,689],{"class":688},[551,1150,692],{"class":557},[551,1152,689],{"class":688},[551,1154,702],{"class":557},[551,1156,575],{"class":557},[551,1158,707],{"class":557},[551,1160,1162,1164,1166,1168,1170,1172,1174,1176,1178,1180,1182,1184,1186,1188,1190],{"class":1161,"line":883},[553,1076],[551,1163,1128],{"class":557},[551,1165,1131],{"class":561},[551,1167,675],{"class":557},[551,1169,678],{"class":565},[551,1171,572],{"class":557},[551,1173,575],{"class":557},[551,1175,685],{"class":557},[551,1177,689],{"class":688},[551,1179,692],{"class":557},[551,1181,689],{"class":688},[551,1183,692],{"class":557},[551,1185,689],{"class":688},[551,1187,702],{"class":557},[551,1189,575],{"class":557},[551,1191,707],{"class":557},[551,1193,1195,1197,1199,1201,1203,1205,1207,1209,1211,1213,1215,1217,1219,1221,1223],{"class":1194,"line":884},[553,1076],[551,1196,1128],{"class":557},[551,1198,1131],{"class":561},[551,1200,675],{"class":557},[551,1202,678],{"class":565},[551,1204,572],{"class":557},[551,1206,575],{"class":557},[551,1208,685],{"class":557},[551,1210,1144],{"class":688},[551,1212,692],{"class":557},[551,1214,689],{"class":688},[551,1216,692],{"class":557},[551,1218,689],{"class":688},[551,1220,702],{"class":557},[551,1222,575],{"class":557},[551,1224,707],{"class":557},[551,1226,1228,1231,1233],{"class":1227,"line":885},[553,1076],[551,1229,1230],{"class":557},"    \u003C\u002F",[551,1232,77],{"class":561},[551,1234,584],{"class":557},[551,1236,1238,1240,1242],{"class":1237,"line":886},[553,1076],[551,1239,861],{"class":557},[551,1241,1035],{"class":561},[551,1243,584],{"class":557},[551,1245,1247,1249,1251],{"class":1246,"line":887},[553,1076],[551,1248,619],{"class":557},[551,1250,638],{"class":561},[551,1252,584],{"class":557},[1254,1255,1256],"prose-note",{},[510,1257,1258,1259,1262],{},"Nothing needs to be threaded through props or slots: the batches are provided, so an ",[513,1260,1261],{},"\u003CInstance \u002F>","\nfinds the one it names no matter how deep it sits or how many components stand between them.",[534,1264,1266],{"id":1265},"instancing-a-whole-gltf","Instancing a whole glTF",[510,1268,1269,1271,1272,1274],{},[513,1270,133],{}," gives you ",[513,1273,1100],{},", so instancing every repeated mesh of a model is a matter of picking the\nones worth batching:",[541,1276,1278],{"className":543,"code":1277,"language":546,"meta":547,"style":547},"\u003CMerged :meshes=\"{ Screw: nodes.Screw, Bolt: nodes.Bolt }\">\n  \u003CMachine v-for=\"i in 20\" :key=\"i\" :position=\"layout[i]\" \u002F>\n\u003C\u002FMerged>\n",[513,1279,1280,1331,1336],{"__ignoreMap":547},[551,1281,1282,1284,1286,1288,1290,1292,1294,1297,1300,1303,1306,1308,1311,1313,1316,1318,1320,1322,1325,1327,1329],{"class":553,"line":554},[551,1283,558],{"class":557},[551,1285,77],{"class":561},[551,1287,675],{"class":557},[551,1289,1085],{"class":565},[551,1291,572],{"class":557},[551,1293,575],{"class":557},[551,1295,1296],{"class":557},"{",[551,1298,1299],{"class":561}," Screw",[551,1301,1302],{"class":557},":",[551,1304,1305],{"class":597}," nodes",[551,1307,524],{"class":557},[551,1309,1310],{"class":597},"Screw",[551,1312,941],{"class":557},[551,1314,1315],{"class":561}," Bolt",[551,1317,1302],{"class":557},[551,1319,1305],{"class":597},[551,1321,524],{"class":557},[551,1323,1324],{"class":597},"Bolt ",[551,1326,988],{"class":557},[551,1328,575],{"class":557},[551,1330,584],{"class":557},[551,1332,1333],{"class":553,"line":587},[551,1334,1335],{"class":597},"  \u003CMachine v-for=\"i in 20\" :key=\"i\" :position=\"layout[i]\" \u002F>\n",[551,1337,1338,1340,1342],{"class":553,"line":616},[551,1339,619],{"class":557},[551,1341,77],{"class":561},[551,1343,584],{"class":557},[510,1345,1346],{},"The payoff is across models, not within one: twenty machines sharing two batches is two drawcalls.",[534,1348,1350],{"id":1349},"opting-a-node-out","Opting a node out",[510,1352,1353,1354,1356,1357,1360,1361,1363],{},"An ",[513,1355,1261],{}," is all-or-nothing per node: it uses the batch's geometry and material. When one\nnode needs its own material, a different geometry, or its own shader, render a normal ",[513,1358,1359],{},"\u003CTresMesh \u002F>","\ninstead of an ",[513,1362,1261],{},". You trade one drawcall for full control over that node, and every\nother node stays batched.",[534,1365,1367],{"id":1366},"props","Props",[1369,1370,1371,1388],"table",{},[1372,1373,1374],"thead",{},[1375,1376,1377,1382,1385],"tr",{},[1378,1379,1381],"th",{"align":1380},"left","Prop",[1378,1383,1384],{"align":1380},"Description",[1378,1386,1387],{},"Default",[1389,1390,1391,1410],"tbody",{},[1375,1392,1393,1398,1404],{},[1394,1395,1396],"td",{"align":1380},[513,1397,1085],{},[1394,1399,1400,1401,1403],{"align":1380},"One batch per entry, keyed by what ",[513,1402,523],{}," joins.",[1394,1405,1406],{},[1407,1408,1409],"em",{},"required",[1375,1411,1412,1417,1426],{},[1394,1413,1414],{"align":1380},[513,1415,1416],{},"limit",[1394,1418,1419,1420,1422,1423,524],{"align":1380},"Initial buffer allocation per batch. One batch per entry in ",[513,1421,1085],{},", so it defaults lower than ",[513,1424,1425],{},"\u003CInstances \u002F>",[1394,1427,1428],{},[513,1429,1430],{},"100",[510,1432,1433,1434,524],{},"Exposes the named batch registry through ",[513,1435,1436],{},"instances",[1438,1439,1440],"read-more",{"to":66},[510,1441,1442,1443,1445,1446,524],{},"Per-instance colors, pointer events, visibility and the ",[513,1444,1416],{}," growth behaviour are documented on ",[513,1447,1425],{},[1449,1450,1451],"style",{},"html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}",{"title":547,"searchDepth":554,"depth":587,"links":1453},[1454,1455,1456,1457],{"id":536,"depth":587,"text":15},{"id":1265,"depth":587,"text":1266},{"id":1349,"depth":587,"text":1350},{"id":1366,"depth":587,"text":1367},"One instanced batch per mesh, shared across your whole component tree.","md",null,{},{"title":77,"description":1458},"3F6JCpa8a9Uibd4xr6WY6bvefyMLo6XgADbv_ux0u-g",[1465,1467],{"title":73,"path":74,"stem":75,"description":1466,"children":-1},"Cut out areas of the screen using the stencil buffer.",{"title":81,"path":82,"stem":83,"description":1468,"children":-1},"Create inverted-hull outlines using parent geometry.",1791549572263]