[{"data":1,"prerenderedAt":54},["ShallowReactive",2],{"i-lucide:menu":3,"i-lucide:grip":8,"i-lucide:chevron-right":10,"i-lucide:moon":12,"i-lucide:sun":14,"i-material-symbols:language":16,"i-lucide:chevron-down":18,"i-lucide:shield-check":20,"i-lucide:mail":22,"i-tabler:markdown":24,"i-lucide:code-xml":26,"i-lucide:film":28,"i-lucide:file-text":30,"i-lucide:box":32,"i-lucide:code-2":34,"i-lucide:image":35,"i-lucide:square-sigma":37,"i-lucide:gamepad-2":39,"i-lucide:sparkles":41,"i-lucide:graduation-cap":43,"blog-body-optimize-3d-model-for-web-zh":45,"i-lucide:cpu":46,"i-lucide:code":48,"i-lucide:shrink":50,"i-lucide:arrow-right-left":52},{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":7},0,24,false,"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M4 5h16M4 12h16M4 19h16\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":9},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Ccircle cx=\"12\" cy=\"5\" r=\"1\"\u002F>\u003Ccircle cx=\"19\" cy=\"5\" r=\"1\"\u002F>\u003Ccircle cx=\"5\" cy=\"5\" r=\"1\"\u002F>\u003Ccircle cx=\"12\" cy=\"12\" r=\"1\"\u002F>\u003Ccircle cx=\"19\" cy=\"12\" r=\"1\"\u002F>\u003Ccircle cx=\"5\" cy=\"12\" r=\"1\"\u002F>\u003Ccircle cx=\"12\" cy=\"19\" r=\"1\"\u002F>\u003Ccircle cx=\"19\" cy=\"19\" r=\"1\"\u002F>\u003Ccircle cx=\"5\" cy=\"19\" r=\"1\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":11},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m9 18l6-6l-6-6\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":13},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":15},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Ccircle cx=\"12\" cy=\"12\" r=\"4\"\u002F>\u003Cpath d=\"M12 2v2m0 16v2M4.93 4.93l1.41 1.41m11.32 11.32l1.41 1.41M2 12h2m16 0h2M6.34 17.66l-1.41 1.41M19.07 4.93l-1.41 1.41\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":17},"\u003Cpath fill=\"currentColor\" d=\"M8.125 21.213q-1.825-.788-3.187-2.15t-2.15-3.188T2 11.988t.788-3.875t2.15-3.175t3.187-2.15T12.013 2t3.875.788t3.175 2.15t2.15 3.175t.787 3.875t-.787 3.887t-2.15 3.188t-3.175 2.15t-3.875.787t-3.888-.787M12 19.95q.65-.9 1.125-1.875T13.9 16h-3.8q.3 1.1.775 2.075T12 19.95m-2.6-.4q-.45-.825-.787-1.713T8.05 16H5.1q.725 1.25 1.813 2.175T9.4 19.55m5.2 0q1.4-.45 2.488-1.375T18.9 16h-2.95q-.225.95-.562 1.838T14.6 19.55M4.25 14h3.4q-.075-.5-.112-.987T7.5 12t.038-1.012T7.65 10h-3.4q-.125.5-.187.988T4 12t.063 1.013t.187.987m5.4 0h4.7q.075-.5.113-.987T14.5 12t-.038-1.012T14.35 10h-4.7q-.075.5-.112.988T9.5 12t.038 1.013t.112.987m6.7 0h3.4q.125-.5.188-.987T20 12t-.062-1.012T19.75 10h-3.4q.075.5.113.988T16.5 12t-.038 1.013t-.112.987m-.4-6h2.95q-.725-1.25-1.812-2.175T14.6 4.45q.45.825.788 1.713T15.95 8M10.1 8h3.8q-.3-1.1-.775-2.075T12 4.05q-.65.9-1.125 1.875T10.1 8m-5 0h2.95q.225-.95.563-1.838T9.4 4.45Q8 4.9 6.912 5.825T5.1 8\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":19},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m6 9l6 6l6-6\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":21},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z\"\u002F>\u003Cpath d=\"m9 12l2 2l4-4\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":23},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"m22 7l-8.991 5.727a2 2 0 0 1-2.009 0L2 7\"\u002F>\u003Crect width=\"20\" height=\"16\" x=\"2\" y=\"4\" rx=\"2\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":25},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M3 7a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z\"\u002F>\u003Cpath d=\"M7 15V9l2 2l2-2v6m3-2l2 2l2-2m-2 2V9\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":27},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m18 16l4-4l-4-4M6 8l-4 4l4 4m8.5-12l-5 16\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":29},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Crect width=\"18\" height=\"18\" x=\"3\" y=\"3\" rx=\"2\"\u002F>\u003Cpath d=\"M7 3v18M3 7.5h4M3 12h18M3 16.5h4M17 3v18m0-13.5h4m-4 9h4\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":31},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z\"\u002F>\u003Cpath d=\"M14 2v5a1 1 0 0 0 1 1h5M10 9H8m8 4H8m8 4H8\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":33},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z\"\u002F>\u003Cpath d=\"m3.3 7l8.7 5l8.7-5M12 22V12\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":27},{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":36},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Crect width=\"18\" height=\"18\" x=\"3\" y=\"3\" rx=\"2\" ry=\"2\"\u002F>\u003Ccircle cx=\"9\" cy=\"9\" r=\"2\"\u002F>\u003Cpath d=\"m21 15l-3.086-3.086a2 2 0 0 0-2.828 0L6 21\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":38},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Crect width=\"18\" height=\"18\" x=\"3\" y=\"3\" rx=\"2\"\u002F>\u003Cpath d=\"M16 8.9V7H8l4 5l-4 5h8v-1.9\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":40},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M6 11h4M8 9v4m7-1h.01M18 10h.01m-.69-5H6.68a4 4 0 0 0-3.978 3.59l-.017.152C2.604 9.416 2 14.456 2 16a3 3 0 0 0 3 3c1 0 1.5-.5 2-1l1.414-1.414A2 2 0 0 1 9.828 16h4.344a2 2 0 0 1 1.414.586L17 18c.5.5 1 1 2 1a3 3 0 0 0 3-3c0-1.545-.604-6.584-.685-7.258q-.01-.075-.017-.151A4 4 0 0 0 17.32 5\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":42},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594zM20 2v4m2-2h-4\"\u002F>\u003Ccircle cx=\"4\" cy=\"20\" r=\"2\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":44},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M21.42 10.922a1 1 0 0 0-.019-1.838L12.83 5.18a2 2 0 0 0-1.66 0L2.6 9.08a1 1 0 0 0 0 1.832l8.57 3.908a2 2 0 0 0 1.66 0zM22 10v6\"\u002F>\u003Cpath d=\"M6 12.5V16a6 3 0 0 0 12 0v-3.5\"\u002F>\u003C\u002Fg>","\u003Cblockquote>\n\u003Cp>一个模型在 Blender 视口里转得飞快，导出放进网页却加载十几秒、拖动就掉帧。原因不在浏览器&quot;弱&quot;，而在于 Web 端的预算和桌面软件完全不同：要走网络下载、要在各种设备的 GPU 上实时渲染。优化的本质，是在网格、顶点、贴图三处削掉对观感贡献很小的开销。\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Cp>\u003Cimg src=\"\u002Fblog\u002Foptimize-3d-model-for-web\u002Fcover.webp\" alt=\"Web 3D 优化：减面、合并顶点与贴图压缩\">\u003C\u002Fp>\n\u003Ch2>Web 端 3D 为什么比桌面更受限？\u003C\u002Fh2>\n\u003Cp>因为 Web 端比桌面建模软件多了两道硬约束：\u003Cstrong>下载带宽\u003C\u002Fstrong>和\u003Cstrong>设备 GPU 的下限\u003C\u002Fstrong>。桌面软件里模型已在本地、GPU 也通常较强；而网页要先把模型通过网络传到用户设备，再在可能是低端手机的 GPU 上实时渲染。\u003C\u002Fp>\n\u003Cp>这带来两类瓶颈：一是\u003Cstrong>加载\u003C\u002Fstrong>——文件越大，首次可见时间越长；二是\u003Cstrong>运行时\u003C\u002Fstrong>——三角面、draw call、贴图采样开销决定帧率。优化就是围绕这两类瓶颈展开，对应到模型上是三个可下手的维度：三角面数、顶点数据、贴图体积。\u003C\u002Fp>\n\u003Ch2>减少三角面：减面算法在做什么？\u003C\u002Fh2>\n\u003Cp>减面（decimation \u002F mesh simplification）的目标是\u003Cstrong>用更少的三角面逼近原始轮廓\u003C\u002Fstrong>。主流做法是基于\u003Cstrong>二次误差度量（QEM, Quadric Error Metrics）\u003C\u002Fstrong>：算法为每条边估算&quot;折叠它会让表面偏离多少&quot;，每次优先折叠误差最小的边，反复迭代到目标面数。\u003C\u002Fp>\n\u003Cp>这解释了为什么适度减面看不出差别——平坦区域的大量小三角面，移除后对轮廓几乎零影响；而高曲率的边角，算法会尽量保留。但有明确边界：\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>过度减面会塌陷轮廓\u003C\u002Fstrong>：减到一定比例后，曲面变成棱块、细节消失，临界点取决于原模型的几何分布。\u003C\u002Fli>\n\u003Cli>\u003Cstrong>UV 接缝和法线易受损\u003C\u002Fstrong>：减面可能破坏 UV 边界，导致贴图错位，需要算法专门保护接缝。\u003C\u002Fli>\n\u003Cli>\u003Cstrong>硬表面 vs 有机体差异大\u003C\u002Fstrong>：机械件（硬表面）对减面更敏感，有机模型（角色、地形）容忍度更高。\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch2>合并重复顶点：为什么面数不变也能优化？\u003C\u002Fh2>\n\u003Cp>很多模型存在\u003Cstrong>逻辑上同一个点被存了多份\u003C\u002Fstrong>的情况：导出时按面拆分顶点，相邻面不共享顶点，于是顶点数远超几何上应有的数量。合并这些重复顶点（weld \u002F merge by distance），在面数不变的前提下也能减小数据量、提升缓存命中。\u003C\u002Fp>\n\u003Cp>这里有个常被忽略的点：\u003Cstrong>顶点是否合并要看属性是否一致\u003C\u002Fstrong>。位置相同但法线或 UV 不同的点不能盲目合并，否则会破坏硬边或贴图。所以合并是&quot;位置相同且属性兼容才合&quot;，不是简单去重。这也是为什么面数相同的两个模型，渲染开销可能差很多——顶点复用率、由此产生的索引缓存效率不一样。\u003C\u002Fp>\n\u003Ch2>贴图：常被低估的体积大头\u003C\u002Fh2>\n\u003Cp>很多人盯着面数优化，却忽略\u003Cstrong>贴图往往才是文件大头\u003C\u002Fstrong>。一张未压缩 4K 贴图的像素数据约 4096×4096×4 ≈ 64MB，多张叠加轻松压过网格。贴图优化有两条不同性质的路径，别混为一谈：\u003C\u002Fp>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>手段\u003C\u002Fth>\n\u003Cth>压缩什么\u003C\u002Fth>\n\u003Cth>性质\u003C\u002Fth>\n\u003Cth>注意\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd>降分辨率\u003C\u002Ftd>\n\u003Ctd>像素数量\u003C\u002Ftd>\n\u003Ctd>一次性、不可逆\u003C\u002Ftd>\n\u003Ctd>按实际显示尺寸定，远景贴图不需要 4K\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>JPEG\u002FPNG\u002FWebP 编码\u003C\u002Ftd>\n\u003Ctd>传输体积\u003C\u002Ftd>\n\u003Ctd>解码后仍占满显存\u003C\u002Ftd>\n\u003Ctd>减小下载，不减运行时显存\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>GPU 压缩纹理（如 KTX2\u002FBasis）\u003C\u002Ftd>\n\u003Ctd>显存占用\u003C\u002Ftd>\n\u003Ctd>GPU 直接采样\u003C\u002Ftd>\n\u003Ctd>同时省下载和显存，但有画质取舍\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003Cp>关键区别：\u003Cstrong>普通图片压缩只省下载，解码后在显存里还是原样大\u003C\u002Fstrong>；而 GPU 压缩纹理（如 Basis Universal \u002F KTX2）能让 GPU 直接采样压缩数据，下载和显存双省，代价是引入块压缩特有的画质损失。\u003C\u002Fp>\n\u003Ch2>几何压缩：Draco 之类在压什么？\u003C\u002Fh2>\n\u003Cp>网格本身的下载体积，还能靠\u003Cstrong>几何压缩\u003C\u002Fstrong>进一步降低，代表是 Draco。它对顶点属性做量化（把浮点坐标降到有限精度）+ 熵编码，常能把网格数据压到原来的几分之一。\u003C\u002Fp>\n\u003Cp>但要权衡两点：一是\u003Cstrong>量化是有损的\u003C\u002Fstrong>，坐标精度下降可能让高精度模型出现细微抖动；二是\u003Cstrong>解码有运行时成本\u003C\u002Fstrong>，需要在客户端跑解码器，对超低端设备是额外开销。所以 Draco 适合&quot;网络是瓶颈、设备尚可&quot;的场景，不是无脑全开。\u003C\u002Fp>\n\u003Ch2>优化到什么程度算够？\u003C\u002Fh2>\n\u003Cp>没有统一答案，取决于 \u003Cstrong>workload\u003C\u002Fstrong>：\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>展示类 Web（产品看图、配置器）\u003C\u002Fstrong>：优先压加载——减面到轮廓够用、贴图按显示尺寸降、上几何压缩。\u003C\u002Fli>\n\u003Cli>\u003Cstrong>高端可视化（医疗、工业精检）\u003C\u002Fstrong>：精度优先，谨慎减面和量化，宁可加载慢。\u003C\u002Fli>\n\u003Cli>\u003Cstrong>移动端\u002F弱网\u003C\u002Fstrong>：显存和带宽都紧，GPU 压缩纹理和激进减面收益最大。\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>判断这类优化适不适合一个模型，关键看它\u003Cstrong>面向什么设备、容许多少精度损失、瓶颈是下载还是渲染\u003C\u002Fstrong>：瓶颈在下载就先压贴图和几何，瓶颈在帧率就先降面数和 draw call，精度敏感就把所有有损手段的力度调小。\u003C\u002Fp>\n\u003Ch2>小结\u003C\u002Fh2>\n\u003Cp>Web 端 3D 卡顿，根因是它比桌面多了下载带宽和设备 GPU 下限两道约束。优化对应三个维度：减面（QEM 优先折叠低误差边，过度则轮廓塌陷）、合并重复顶点（位置与属性兼容才合，提升缓存复用）、贴图与几何压缩（区分&quot;只省下载&quot;与&quot;省显存&quot;，Draco\u002FKTX2 各有有损取舍）。这些手段都是在观感和开销之间做权衡，没有&quot;一键最优&quot;，只有&quot;针对目标设备和精度要求的合适力度&quot;。\u003C\u002Fp>\n",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":47},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M12 20v2m0-20v2m5 16v2m0-20v2M2 12h2m-2 5h2M2 7h2m16 5h2m-2 5h2M20 7h2M7 20v2M7 2v2\"\u002F>\u003Crect width=\"16\" height=\"16\" x=\"4\" y=\"4\" rx=\"2\"\u002F>\u003Crect width=\"8\" height=\"8\" x=\"8\" y=\"8\" rx=\"1\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":49},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m16 18l6-6l-6-6M8 6l-6 6l6 6\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":51},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m15 15l6 6m-6-6v4.8m0-4.8h4.8M9 19.8V15m0 0H4.2M9 15l-6 6M15 4.2V9m0 0h4.8M15 9l6-6M9 4.2V9m0 0H4.2M9 9L3 3\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":53},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m16 3l4 4l-4 4m4-4H4m4 14l-4-4l4-4m-4 4h16\"\u002F>",1782703046342]