Galacean Engine PhysX 物理插件(@galacean/engine-physics-physx)接入指南:安装、运行时模式与 API 全景
图形学3D渲染游戏开发【免费下载链接】runtimeA typescript interactive engine, support 2D, 3D, animation, physics, built on WebGL and glTF.项目地址https://gitcode.com/gh_mirrors/ru/runtime点击查看免费下载galacean/engine-physics-physx是 Galacean Engine一款基于 WebGL 与 glTF 的 TypeScript 互动引擎中提供真实感物理模拟的可选插件底层封装了 NVIDIA PhysX 引擎的 Web 运行时。读完本文你将掌握该插件的安装与导入方式、PhysX 的 WebAssembly/JavaScript 双运行时机制、物理系统的初始化路径以及碰撞体、刚体、材质、关节与触发事件等核心 API 的使用与源码级实现原理。包安装与导入方式按照包文档README的说明通过 npm 安装插件npm install galacean/engine-physics-physx安装后可以整体导入命名空间也可以按需导入单个类// 整体导入 import * as PHYSICS_PHYSX from galacean/engine-physics-physx; // 或按需导入单个类 import { PhysXPhysics } from galacean/engine-physics-physx;从 package.json 可以看到该包的关键元信息包名为galacean/engine-physics-physx当前仓库内版本为1.6.13采用 MIT 协议产物入口包含dist/main.jsmain、dist/module.jsmodule、dist/browser.jsbrowser以及types/index.d.ts类型声明发布时会将dist/**、libs/**、types/**打进产物其中libs/目录在仓库中对应 libs/physx.release.js、libs/physx.release.downgrade.js 与 libs/physx.release.wasm 这三个 PhysX Web 运行时文件这也解释了为什么自定义运行时 URL 时通常会指向这些文件见下文“自定义运行时地址”一节。galacean/engine以peerDependencies形式声明意味着该插件需要宿主项目同时安装引擎主包。快速上手初始化物理系统README 给出的最简使用流程如下传入画布创建引擎然后用PhysXPhysics初始化物理管理器最后驱动引擎运行。// Create engine by passing in the HTMLCanvasElement id and adjust canvas size const engine await WebGLEngine.create({ canvas: canvas-id }); // Initialize physics manager with PhysXPhysics. engine.physicsManager.initialize(PhysXPhysics); // ...... // Run engine. engine.run();除此之外仓库的端到端测试用例 e2e/case/physx-customUrl.ts 展示了另一种更完整的接入姿势——在WebGLEngine.create时直接通过physics选项传入一个PhysXPhysics实例并指定运行时 URLWebGLEngine.create({ canvas: canvas, physics: new PhysXPhysics(PhysXRuntimeMode.Auto, { wasmModeUrl: ../physx.release.js, javaScriptModeUrl: ../physx.release.downgrade.js }) }).then((engine) { // 后续创建刚体、碰撞体、注册 onTriggerEnter/onTriggerExit 等事件 });该用例中同时演示了 PhysX 后端下的典型玩法为StaticCollider添加isTrigger true的BoxColliderShape、为DynamicCollider设置isKinematic true的SphereColliderShape再通过自定义Script覆写onTriggerEnter / onTriggerExit实现触发事件回调。运行时模式WebAssembly 优先、JavaScript 降级PhysX 的 Web 版提供了两种分发形态PhysXRuntimeMode.ts 中以枚举定义了三种选择策略export enum PhysXRuntimeMode { /** Use webAssembly mode first, if WebAssembly mode is not supported, roll back to JavaScript mode. */ Auto, /** WebAssembly mode. */ WebAssembly, /** JavaScript mode. */ JavaScript }Auto默认值优先使用 WebAssembly 模式不支持时自动回退到纯 JavaScript 模式WebAssembly强制 wasm 模式对应physx.release.jsphysx.release.wasmJavaScript强制降级模式对应physx.release.downgrade.js。检测与加载逻辑位于 PhysXPhysics.ts 的initialize()中。当运行在Auto模式时源码会先构造一个最小 wasm 模块0x00 0x61 0x73 0x6d ...魔数头并用WebAssembly.Module/WebAssembly.Instance探测能力确认支持后加载 wasm 版脚本否则加载降级版脚本if (typeof WebAssembly object typeof WebAssembly.instantiate function) { const wasmModule new WebAssembly.Module(Uint8Array.of(0x0, 0x61, 0x73, 0x6d, 0x01, 0x00, 0x00, 0x00)); if (wasmModule instanceof WebAssembly.Module) return new WebAssembly.Instance(wasmModule) instanceof WebAssembly.Instance; }随后通过动态注入script标签加载对应脚本脚本就绪后再调用全局的window.PHYSX()获得 PhysX 运行时对象。整个initialize()使用内部状态机Uninitialized / Initializing / Initialized做幂等保护重复调用会直接复用同一个 Promise不会重复注入脚本。自定义运行时地址PhysXPhysics构造函数支持通过runtimeUrls覆盖默认下载地址constructor(runtimeMode: PhysXRuntimeMode PhysXRuntimeMode.Auto, runtimeUrls?: PhysXRuntimeUrls)从 PhysXPhysics.ts 可以看到接口定义interface PhysXRuntimeUrls { /*** The URL of PhysXRuntimeMode.WebAssembly mode. */ wasmModeUrl?: string; /*** The URL of PhysXRuntimeMode.JavaScript mode. */ javaScriptModeUrl?: string; }若不传runtimeUrls构造函数会回退到两个默认 CDN 地址mdn.alipayobjects.com域名下的physx.release.js与physx.release.downgrade.js。在实际项目中更常见的做法是把 PhysX 运行时文件如libs/physx.release.js、libs/physx.release.downgrade.js随站点一起部署然后像 e2e/case/physx-customUrl.ts 那样显式传入相对路径避免运行时依赖外部 CDN 的可用性与版本。初始化链路Foundation 到 Physics 的构建过程脚本加载完成后PhysXPhysics._init() 会按 PhysX 官方推荐的顺序搭建整套基础设施const version physX.PX_PHYSICS_VERSION; const defaultErrorCallback new physX.PxDefaultErrorCallback(); const allocator new physX.PxDefaultAllocator(); const pxFoundation physX.PxCreateFoundation(version, allocator, defaultErrorCallback); const tolerancesScale new physX.PxTolerancesScale(); const pxPhysics physX.PxCreatePhysics(version, pxFoundation, tolerancesScale, false, null); physX.PxInitExtensions(pxPhysics, null);即读取运行时版本 → 创建默认错误回调与默认内存分配器 →PxCreateFoundation建立基础层 → 创建PxTolerancesScale容差标度 →PxCreatePhysics建立物理核心 →PxInitExtensions初始化扩展。这些对象分别缓存在实例字段中destroy()时按逆序释放PxCloseExtensions→ release physics/foundation → 删除 allocator、tolerancesScale 与错误回调保证 wasm 侧资源不泄漏。PhysXPhysics 工厂方法全景PhysXPhysics实现了galacean/engine-design包中的IPhysics接口接口定义位于 packages/design/src/physics/ 目录是引擎物理抽象与 PhysX 后端的适配层。它提供了一组工厂方法用于创建物理世界中的各类对象工厂方法返回对象底层实现createPhysicsManager()PhysXPhysicsManagerPhysXPhysicsManager.ts维护触发事件映射表_eventMapcreatePhysicsScene(...)PhysXPhysicsScene创建PxScene接收 contact/trigger 回调createStaticCollider(position, rotation)PhysXStaticCollider静态碰撞体createDynamicCollider(position, rotation)PhysXDynamicCollider内部调用pxPhysics.createRigidDynamic(transform)createCharacterController()PhysXCharacterController角色控制器createPhysicsMaterial(...)PhysXPhysicsMaterial由 staticFriction/dynamicFriction/bounciness/两个 combine 模式构成createBoxColliderShape/createSphereColliderShape/createPlaneColliderShape/createCapsuleColliderShape各类*ColliderShape碰撞形状见 src/shape/ 目录createFixedJoint/createHingeJoint/createSpringJoint各类*Joint约束关节见 src/joint/ 目录此外还提供了碰撞层查询/设置getColliderLayerCollision(layer1: number, layer2: number): boolean setColliderLayerCollision(layer1: number, layer2: number, isCollide: boolean): void它们直接代理到 wasm 运行时的getGroupCollisionFlag / setGroupCollisionFlag用于配置两个碰撞层之间是否发生碰撞。碰撞体一侧的层设置则体现在 PhysXCollider.ts 的setCollisionLayer中通过setGroup(this._pxActor, layer)把 actor 归入指定组。物理场景重力、接触与触发回调PhysXPhysicsScenePhysXPhysicsScene.ts实现了IPhysicsScene接口是 PhysX 场景与引擎回调之间的桥梁。构造时会注册一个PxSimulationEventCallback把 PhysX 的原生事件转发给引擎侧回调接触事件onContactBegin → onContactEnter、onContactEnd → onContactExit、onContactPersist → onContactStay参数为ICollision触发事件onTriggerBegin / onTriggerEnd以碰撞体唯一 ID 的有序对(index1, index2)形式传递内部通过PhysXPhysicsManager._eventMap维护触发状态事件以DisorderedArray 对象池_eventPool的方式零分配复用。场景构造中还初始化了射线检测用的PxRaycastHit与PxQueryFilterData过滤标志为STATIC | DYNAMIC | PRE_FILTER即射线同时可命中静态与动态刚体并走预过滤逻辑。重力则由setGravity(value)直接代理到this._pxScene.setGravity(value)。动态碰撞体力、速度、CCD 与休眠PhysXDynamicCollider.ts 封装了PxRigidDynamic的核心能力是刚体物理中最常用的 API 集合运动学量getLinearVelocity / setLinearVelocity、getAngularVelocity / setAngularVelocity。注意源码中角速度做了角度/弧度互转PhysX 使用弧度引擎侧接口使用角度例如setAngularVelocity内部先MathUtil.degreeToRadian再写入 actor刚体参数setMass、setMassAndUpdateInertia、setCenterOfMass、setInertiaTensor、setMaxAngularVelocity、setMaxDepenetrationVelocity、setSleepThreshold、setSolverIterations、setLinearDamping / setAngularDamping力的施加addForce(force)、addTorque(torque)分别代理到PxRigidDynamic.addForce / addTorque运动学刚体setIsKinematic(true)会打开PxRigidBodyFlag.eKINEMATIC标志此时用move(positionOrRotation, rotation?)设置setKinematicTarget逐帧插值运动——e2e 用例中的运动球体即采用此模式休眠控制sleep()、isSleeping()、wakeUp()自由度锁定setConstraints(flags)代理到setRigidDynamicLockFlags可锁定平移/旋转自由度重力开关setUseGravity(value)通过PxActorFlag.eDISABLE_GRAVITY控制。文件顶部还定义了连续碰撞检测CCD模式枚举setCollisionDetectionMode会映射到对应的PxRigidBodyFlagexport enum CollisionDetectionMode { Discrete, // 关闭 CCD Continuous, // 对静态网格开启 CCDeENABLE_CCD ContinuousDynamic, // 对静态 动态几何开启eENABLE_CCD_FRICTION ContinuousSpeculative // 预测式 CCDeENABLE_SPECULATIVE_CCD }对于高速小物体如子弹从源码结构看应将其collisionDetectionMode设为连续类模式以避免单帧位移超过自身尺寸而穿透薄墙。碰撞体的通用能力增删形状、同步世界变换、设置碰撞层、销毁位于基类 PhysXCollider.tsaddShape / removeShape负责把物理形状 attach/detach 到 actor 并同步场景内的形状集合setWorldTransform以setGlobalPose(..., true)更新 actor 位姿。物理材质与碰撞层PhysXPhysicsMaterialPhysXPhysicsMaterial.ts描述碰撞时摩擦与弹性的处理方式构造函数接收五个参数并调用pxPhysics.createMaterial(staticFriction, dynamicFriction, bounciness)创建底层材质参数含义对应 PhysX APIstaticFriction静摩擦系数setStaticFrictiondynamicFriction动摩擦系数setDynamicFrictionbounciness弹性恢复系数setRestitutionfrictionCombine两材质摩擦的合并模式setFrictionCombineModebounceCombine两材质弹性的合并模式setRestitutionCombineMode合并模式由文件内CombineMode枚举定义Average取平均、Minimum取较小值、Multiply相乘等用于决定两个碰撞物体接触时以哪个材质的参数为准。在 e2e 用例中材质的用法是直接在碰撞形状上修改默认材质属性例如physicsBox.material.staticFriction 0.1; physicsBox.material.dynamicFriction 0.2; physicsBox.material.bounciness 1;碰撞层方面PhysXPhysics.setColliderLayerCollision(layer1, layer2, isCollide)配合碰撞体的setCollisionLayer可以构建层与层之间的碰撞矩阵e2e 测试 e2e/case/physx-collision-group.ts 即围绕该能力展开。端到端验证截图回归测试该插件的行为验证主要依靠仓库根目录下的 Playwright 端到端测试。e2e/case/ 中提供了多个 PhysX 用例physx-collision.ts基础碰撞场景physx-collision-group.ts碰撞分组layer 碰撞矩阵physx-customUrl.ts自定义运行时 URL 的完整接入示例含触发事件与运动学刚体对应的参考截图存放在 e2e/fixtures/originImage/ 下如Physics_physx-collision.jpg、Physics_physx-collision-group.jpg、Physics_physx-customUrl.jpg截图比对逻辑见 e2e/utils/screenshot.ts。这些用例与参考图共同构成了该插件“可复现、可回归”的事实依据任何对galacean/engine-physics-physx的改动都可以通过运行 e2e 截图比对来验证渲染与物理行为是否与基线一致。小结与参考路径包文档packages/physics-physx/README.md核心适配层packages/physics-physx/src/PhysXPhysics.ts、PhysXPhysicsScene.ts、PhysXDynamicCollider.ts、PhysXPhysicsMaterial.ts、PhysXCollider.ts碰撞形状packages/physics-physx/src/shape/关节约束packages/physics-physx/src/joint/运行时文件packages/physics-physx/libs/物理抽象接口定义packages/design/src/physics/端到端用例与基线截图e2e/case/physx-collision.ts、e2e/fixtures/originImage/。需要说明的是该插件与仓库内的galacean/engine-physics-litepackages/physics-lite/面向不同性能需求——PhysX 后端提供刚体动力学、CCD、关节等完整物理能力适合需要真实物理模拟的场景接入前请确认部署环境能加载 PhysX 运行时脚本wasm 或降级 js并在目标浏览器中验证 WebAssembly 支持情况。赞分享图形学3D渲染游戏开发【免费下载链接】runtimeA typescript interactive engine, support 2D, 3D, animation, physics, built on WebGL and glTF.项目地址https://gitcode.com/gh_mirrors/ru/runtime点击查看免费下载相关推荐Galacean Engine Physics-Lite 轻量级物理模块安装、初始化、触发器与碰撞检测实现剖析Galacean Engine Physics Lite 轻量级物理模块安装、初始化、触发器与碰撞检测实现剖析 本篇基于仓库中 packages/physic图形学3D渲染游戏开发探索未来交互的奥秘Galacean Engine探索未来交互的奥秘Galacean Engine Galacean Engine是一个专为现代Web和移动设备设计的高性能实时交互引擎。它采用组件系统设计追图形学3D渲染游戏开发Galacean Runtimegalacean/engine 纯代码开发实践与聚合包构建机制解析Galacean Runtimegalacean/engine 纯代码开发实践与聚合包构建机制解析 本篇技术文章基于 Galacean Engine 的聚合图形学3D渲染游戏开发上一篇如何让任意窗口永远保持在最前面AlwaysOnTop窗口置顶工具完全指南下一篇在电脑上玩Switch游戏Ryujinx从零到流畅运行的完整路径创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

模型接口接入排查笔记:Agent、知识库和开发工具里的超时、429 与日志字段——把 endpoint 改到 TaoToken 的排查路径

模型接口接入排查笔记:Agent、知识库和开发工具里的超时、429 与日志字段——把 endpoint 改到 TaoToken 的排查路径

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 11:54:20 阅读更多 →
NYU-DLSP20 第3周:自然信号的三性(平稳性、局部性、组合性)与 CNN 设计原则(稀疏连接、权重共享、池化)全解析

NYU-DLSP20 第3周:自然信号的三性(平稳性、局部性、组合性)与 CNN 设计原则(稀疏连接、权重共享、池化)全解析

示例工程 【免费下载链接】NYU-DLSP20 NYU Deep Learning Spring 2020 项目地址: https://gitcode.com/gh_mirrors/pyt/pytorch-Deep-Learning 点击查看 免费下载 本篇技术指南以 NYU-DLSP20 课程第 3 周实践课笔记 docs/it/week03/03-3.md(对应英文版 …

2026/10/10 11:53:20 阅读更多 →
YOLOv8轻量改造实现跌倒检测:时序建模+几何约束实战

YOLOv8轻量改造实现跌倒检测:时序建模+几何约束实战

简介:本资源是一套完整的跌倒检测AI项目实战包,面向计算机视觉初学者、安防系统开发者及智能监护应用研究者,解决老年人居家/养老院场景下的实时跌倒行为识别问题。压缩包共1438个文件,含1428张标注清晰的跌倒与非跌倒场景JPG图像…

2026/10/10 11:53:20 阅读更多 →

最新新闻

统一登录与单点登录实战:网关与认证中心的搭建全解

统一登录与单点登录实战:网关与认证中心的搭建全解

这段时间我一直在折腾一件事:把我们内部几个各自为战的业务系统,统一到一个登录入口底下。项目代号倒是很形象,sward 负责守门,soular 负责认人。说白了,sward 是一个网关层,soular 是一个身份认证中心&…

2026/10/10 14:52:58 阅读更多 →
打印机驱动下载安装完整指南:从官网获取到故障排查

打印机驱动下载安装完整指南:从官网获取到故障排查

1. 打印机驱动安装这件事,为什么值得单独写一篇完整指南打印机驱动下载安装,听起来像是电脑入门级别的操作,但实际工作中我见过太多人在这上面翻车。有人下载了错误的驱动版本导致打印机频繁脱机,有人装完驱动后扫描功能死活调不出…

2026/10/10 14:52:58 阅读更多 →
基于SpringBoot+Vue+MySQL的船舶监造管理系统实战解析

基于SpringBoot+Vue+MySQL的船舶监造管理系统实战解析

做船舶监造的人肯定都懂,监造不是坐在办公室看看图纸就行,真正业务一铺开,报验单、现场见证、NCR整改闭环、试验计划、图纸送审,每个环节都是需要“有人跟、有记录、有闭环”的。早几年我在船厂和监造组干活时,全靠Exc…

2026/10/10 14:52:58 阅读更多 →
Zen Cart PayPal跳转插件:解决掉单与IPN异步通知问题

Zen Cart PayPal跳转插件:解决掉单与IPN异步通知问题

简介:面向ZenCart商城的PayPal跳转插件,用于打通ZenCart与PayPal支付接口,实现用户在付款时从商店页面到支付网关再返回结果页的完整跳转流程,适合使用ZenCart开展跨境或外贸电商的商家、开发者及运维人员。该插件压缩包共24个文件…

2026/10/10 14:52:58 阅读更多 →
线程池线程数配置实战:CPU密集型与IO密集型任务调优策略

线程池线程数配置实战:CPU密集型与IO密集型任务调优策略

1. 先分清任务在“算”还是在“等”——这是所有配置的起点1.1 CPU 密集型和 IO 密集型的本质差异多线程编程里有一个被问得最多的问题:线程池到底配多少个线程?我几乎每一次都会先反问他一句:你的任务是 CPU 密集型还是 IO 密集型&#xff1…

2026/10/10 14:52:57 阅读更多 →
Windows下OSGeo4W安装PDAL避坑指南:从环境配置到LAZ v1.4实测

Windows下OSGeo4W安装PDAL避坑指南:从环境配置到LAZ v1.4实测

简介:本资源是面向GIS开发者、遥感工程师及三维点云处理从业者的PDAL库离线安装包,专为解决Windows环境下因网络限制导致OSGeo4W官网下载PDAL失败或缓慢的痛点。压缩包完整封装了OSGeo4W64 64位安装环境及PDAL核心组件,并预集成CloudCompare兼…

2026/10/10 14:51:56 阅读更多 →

日新闻

卫星轨道分类全解析:从LEO到GEO的选型逻辑与工程实践

卫星轨道分类全解析:从LEO到GEO的选型逻辑与工程实践

1. 从“卫星轨道分类”这个标题说起:为什么值得花时间搞懂第一次接触“卫星轨道分类”这个概念,很多人会觉得它离自己很远——不就是天上的星星怎么转吗?但如果你正在做航天任务规划、遥感数据接收、星座设计,甚至只是准备一场航天…

2026/10/10 0:00:39 阅读更多 →
Spring AOP 核心原理与实战:从概念到日志切面落地

Spring AOP 核心原理与实战:从概念到日志切面落地

1. 从一个真实痛点说起:为什么你的代码里到处都是重复逻辑刚入行那会儿,我写过一个用户管理模块,注册、登录、改密码、注销四个接口。每个接口里都塞了几乎一样的日志打印、参数校验、事务开启和提交。当时觉得没什么,能跑就行。直…

2026/10/10 0:00:40 阅读更多 →
Python招聘数据采集与分析可视化:从采集清洗到薪资技能城市可视化全链路

Python招聘数据采集与分析可视化:从采集清洗到薪资技能城市可视化全链路

简介:这是一套面向计算机相关专业学生与项目实战学习者的Python数据采集与分析可视化完整项目,以Boss直聘岗位数据为对象,适合用作毕业设计、课程设计或期末大作业。资源包共38个文件,约246KB,以13个py源码文件为核心&…

2026/10/10 0:00:40 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 11:14:25 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 1:36:08 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 11:14:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 5:23:50 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 21:32:20 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 10:38:42 阅读更多 →