「Three.js 场景检查器」浏览器扩展产品系统Vibe Coding

我要开发同款
小陈2026年11月13日
12阅读

技术信息

语言技术
HTML5、CSS、JavaScript、Node.js
系统类型
Web、H5、Web3
行业分类
脚本插件

作品详情

行业场景

本项目面向 3D 前端开发、数字藏品与模型展示场景,解决 three.js 应用场景对象不可见、
模型素材以加密包或 GPU 缓冲形式下发后难以检查与复用的问题。
在 Web 3D 展示、角色摆件、在线模型预览与开发者调试的业务背景下,开发者需要一个在浏览器内直接接入目标页面的检查工具,
实时查看场景层级、对象属性与渲染资源,完成变换编辑、模型预览、格式导出,并能解析常见打包、压缩与加密的模型容器,
辅助 3D 内容调试、资源核对与离线备份;
工具以浏览器扩展形式分发,无需改造目标站点工程即可使用。

功能介绍

项目分为场景检查、资源解析、模型预览导出与诊断统计四大部分。
场景检查部分通过 document_start 注入 MAIN-world 运行时钩子,捕获 three.js DevTools 事件中的 Scene、渲染器、相机、材质与纹理,
支持按名称或类型搜索场景对象,查看并编辑对象名称、可见性、位置、旋转与缩放;
多场景分别保留为层级根节点,编辑与导出路由到所属场景。
资源解析部分监听页面 fetch 与 XHR 的 GLB 原始字节,补全 Range 分片请求,对响应体做二进制嗅探,可解包 RKPET2 加密块包、
RPE1 AES-GCM 包、ZIP 归档及 gzip/zlib/deflate 压缩流,内置站点 Profile 解码器与通用块表启发式判定,
支持解析 RKAN 动画容器并合并动画通道;同时包裹 WebAssembly 实例化接口扫描线性内存,雕刻 glTF、PNG、JPEG、WAVE、WEBP 资源,
并挂钩 WebGL 纹理上传与顶点缓冲、统计 WebGPU 设备与缓冲纹理分配。
预览导出部分内置 three.js 查看器,支持轨道、缩放、平移及 Draco/Meshopt 解码预览;
可通过扩展自带 GLTFExporter 将所选对象或整场景导出为 GLB,支持原生 Object3D.toJSON 导出与 OBJ 几何导出,
并可下载原始 GLB 字节。面板支持本地导入 .rkpet2/.zip/.glb 走同一管线、资源卡片按类型分组、管线决策日志、
晚注入自动补抓与按需重扫,以及 WebGL buffer/纹理上传捕获后的 PNG 与原始二进制下载。

项目实现

我独立负责该浏览器扩展的架构设计与编码实现。扩展采用 Chrome Manifest V3,由 DevTools 面板脚本、MAIN-world 页面钩子、
导出器与预览查看器组成;核心运行时钩子在页面脚本执行前注入,
包装 three.js DevTools 事件派发器、fetch/XHR、WebAssembly 实例化与 WebGL/WebGPU 上传接口,
按注册队列去重、限额并登记解出资源。解析层实现了 RKPET2 的 splitmix64 密钥流异或与 raw deflate 解压,
并通过未压缩块签名反推 pack key;RPE1 复用页面已获取的目录与密钥,
用 crypto.subtle 做 AES-GCM 解密与 STORED ZIP 拆包;通用块表按明文、raw deflate、zlib、gzip 及密钥候选打分校验。
导出器基于 three.js 0.180 的 GLTFExporter 按需加载,GPU 捕获路径通过记录 bufferData、vertexAttribPointer、VAO、draw call 与量化 uniform,
反推 POSITION/NORMAL/TEXCOORD 语义并重建为标准 GLB;动画侧提供 RKAN 片段解析与 accessor/bufferView 合并写入。
工程使用 esbuild 将导出器与查看器打包为 IIFE,复制 Draco WASM 解码器,面板为响应式网格布局并在无 three.js 页面自动切换全宽资源视图。项目亮点包括:早注入运行时捕获与晚注入自动补抓、多容器加密包的可测试 Profile 管线、WASM 内存雕刻与 WebGL 上传缓冲重建、GPU 量化几何还原为可用 GLB;主要难点在于钩子须先于页面模块加载、模块私有场景与不可观察渲染器的发现边界、加密密钥不落地时的反推与等待重试。

示例图片

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论