当前位置: 首页 > article >正文

Babylon.js WebGPU Ocean Demo — 完整踩坑记录

换成军舰后的图片源码运行后效果最后代码正常启动Babylon.js WebGPU Ocean Demo 本地运行踩坑全记录环境Chrome 145Babylon.js 6.26.0Windows 10问题一depth24unorm-stencil8类型错误报错TS2322: Type depth24unorm-stencil8 is not assignable to type GPUFeatureName原因该特性已从 WebGPU 规范移除。修复直接删除这一行。问题二requestAdapterInfo is not a function报错TypeError: this._adapter.requestAdapterInfo is not a function原因Chrome 新版将requestAdapterInfo()改为adapter.info属性Babylon.js 6.x 内部还在调用旧 API。修复在index.ts最顶部加 polyfilltypescriptif (typeof navigator ! undefined navigator.gpu) { const origRequestAdapter navigator.gpu.requestAdapter.bind(navigator.gpu); (navigator.gpu as any).requestAdapter async (options?: GPURequestAdapterOptions) { const adapter await origRequestAdapter(options); if (adapter typeof (adapter as any).requestAdapterInfo ! function) { (adapter as any).requestAdapterInfo async () { return (adapter as any).info ?? {}; }; } return adapter; }; } --- ### 问题三onResizeObservable 类型错误 **报错** TS2339: Property onResizeObservable does not exist on type ThinEngine原因onResizeObservable在Engine上不在ThinEngine上。修复RTTDebug.ts两处修改typescript// 1. 私有变量类型改为 any private _engine: any; // 2. 第178行加可选链 (this._engine as any).onResizeObservable?.add(this._resize.bind(this)); --- ### 问题四WebGPUEngine 与 Engine 类型不兼容 **报错** TS2740: Type WebGPUEngine is missing the following properties from type Engine修复index.ts里 engine 类型直接用anytypescriptlet engine: any;最终完整index.tstypescriptimport * as BABYLON from babylonjs/core; import { WebGPUEngine } from babylonjs/core/Engines/webgpuEngine; import { Engine } from babylonjs/core/Engines/engine; import { getSceneModuleWithName } from ./createScene; // 修复 Chrome 新版移除了 requestAdapterInfo if (typeof navigator ! undefined navigator.gpu) { const origRequestAdapter navigator.gpu.requestAdapter.bind(navigator.gpu); (navigator.gpu as any).requestAdapter async (options?: GPURequestAdapterOptions) { const adapter await origRequestAdapter(options); if (adapter typeof (adapter as any).requestAdapterInfo ! function) { (adapter as any).requestAdapterInfo async () { return (adapter as any).info ?? {}; }; } return adapter; }; } const getModuleToLoad (): string | undefined location.search.split(scene)[1]; export const babylonInit async (): Promisevoid { const moduleName getModuleToLoad(); const createSceneModule await getSceneModuleWithName(moduleName); (window as any).BABYLON BABYLON; await Promise.all(createSceneModule.preTasks || []); const canvas document.getElementById(renderCanvas) as HTMLCanvasElement; let engine: any; const webgpuSupported await WebGPUEngine.IsSupportedAsync; if (webgpuSupported) { const webgpuEngine new WebGPUEngine(canvas, { deviceDescriptor: { requiredFeatures: [ depth-clip-control, depth32float-stencil8, texture-compression-bc, texture-compression-etc2, texture-compression-astc, indirect-first-instance, ], }, }); await webgpuEngine.initAsync(); engine webgpuEngine; } else { engine new Engine(canvas, true); } (window as any).engine engine; const scene await createSceneModule.createScene(engine, canvas); (window as any).scene scene; engine.runRenderLoop(function () { scene.render(); }); window.addEventListener(resize, function () { engine.resize(); }); }; babylonInit().then(() {});package.json 依赖版本jsondependencies: { babylonjs/core: 6.26.0, babylonjs/gui: 6.26.0, babylonjs/inspector: 6.26.0, babylonjs/loaders: 6.26.0, babylonjs/materials: 6.26.0, lil-gui: 0.16.0 }注意去掉^防止自动升级到不兼容版本。修正后源码https://download.csdn.net/download/zhanglixin999/92736547

相关文章:

Babylon.js WebGPU Ocean Demo — 完整踩坑记录

换成军舰后的图片 源码运行后效果 最后代码正常启动 Babylon.js WebGPU Ocean Demo 本地运行踩坑全记录 环境 Chrome 145Babylon.js 6.26.0Windows 10 问题一:depth24unorm-stencil8 类型错误 报错: TS2322: Type "depth24unorm-stencil8"…...

光伏三相并网仿真之旅:从理论到实践

光伏控制器,光伏三相并网仿真。 带说明文件,参考文献。 模型内容: 1.光伏MPPT控制两级式并网逆变器(boost三相桥式逆变) 2.坐标变换锁相环dq功率控制解耦控制电流内环电压外环控制spwm调制 3.LCL滤波 仿真结果&#xf…...

放弃 Python 脚本吧!OpenClaw 狂飙 30 万 Star 背后,跨境电商“一人公司”如何靠实在 Agent 真正落地?

摘要: 我是老王。最近跨境电商圈子疯了,开源 Agent 框架 OpenClaw(大龙虾)在一周内 GitHub Star 突破 30.8 万,甚至连 GPT-5.4 和 Gemini 3.1 Flash 都原生适配了。大家都在高喊“一人公司”时代降临,仿佛只…...

ACSM代谢公式是手环估算VO2 Max的核心物理模型

华为的手环估算VO2也是基于ACSM代谢公式来实现的功能。ACSM代谢公式是由美国运动医学会(American College of Sports Medicine)发布的用于估算运动时能量消耗和摄氧量的经验公式。这些公式建立在大量实验室测量的基础上,通过运动速度、坡度等…...

Java定时器Timer源码深度解析

Java定时器Timer源码详解 Java中的Timer类是一个用于调度任务在后台线程中执行的工具。它允许安排任务在未来的某个时间点执行一次或定期重复执行。Timer类位于java.util包中,是Java标准库的一部分。 Timer的基本用法 Timer类提供了多种调度任务的方法,包…...

FluentMigrator 数据库迁移全解析

FluentMigrator 的核心概念与架构 FluentMigrator 是一个基于 .NET 平台的数据库迁移框架,采用纯代码方式管理数据库结构变更。其核心思想是通过版本控制的迁移脚本实现数据库架构的迭代演进。框架采用约定优于配置的原则,迁移类需继承 Migration 基类并…...

华为AC+AP无线组网全攻略

华为ACAP无线网络组网与配置指南 华为AC(Access Controller)AP(Access Point)无线网络解决方案广泛应用于企业、校园、酒店等场景,提供高性能、高可靠的无线覆盖。以下从组网设计、配置步骤、代码示例等方面展开说明。…...

2025年AI双轮驱动:技术突破赋能产业

2025 AI 发展双轮驱动:技术突破与产业赋能的深度实践 人工智能(AI)在2025年将迎来关键转折点,技术突破与产业赋能的双轮驱动模式将成为核心发展方向。技术层面,大模型、多模态学习、强化学习等领域的突破将推动AI能力边…...

华为光模块命名规则全解析

华为光模块命名规则解析 华为光模块的命名规则遵循一套严格的编码体系,旨在通过名称直观反映模块的类型、速率、封装、传输距离等关键参数。这套规则对网络工程师和采购人员具有重要参考价值,能够快速识别模块的兼容性和应用场景。 命名结构分解 华为光模…...

解密约瑟夫问题:高效解法全解析

约瑟夫问题简介 约瑟夫问题(Josephus Problem)是一个经典的数学问题,描述如下:有n个人围成一圈,编号为1到n。从编号为1的人开始报数,数到k的人出列,然后从下一个人重新开始报数,直到…...

微服务保护详解:黑马商城实战

《黑马商城》微服务保护-详细介绍【简单易懂注释版】 梦想的实现需要时间的沉淀,学会耐心等待,在每一个每一天的坚持中,积累未来的辉煌。每一次失败都是成长的机会,只有经历过风雨,才能收获艳丽的阳光与生命的希望。每…...

OpenSSL 3.0加密限制与应对方案

OpenSSL 3.0 对加密算法的限制与应对措施 OpenSSL 3.0 是一次重大版本更新,引入了多项安全改进和架构调整。其中,对某些加密算法的限制是开发者需要重点关注的变化之一。这些限制主要出于安全考虑,淘汰了一些弱算法或存在潜在风险的实现方式。…...

华为openEuler部署Dillinger全攻略

基于华为openEuler部署Dillinger个人文本编辑器 环境准备与系统配置 确保系统已安装openEuler 20.03 LTS或更高版本,并配置好网络连接。更新系统软件包至最新状态: sudo dnf update -y安装必要的依赖工具链,包括Node.js运行时、Git版本控制…...

JVM内存模型以及类加载过程分析

写在前面 JVM内存模型可以说是面试中常客了,足见其重要性,本文就一起来看下,以求下次遇到这样的面试题可以把面试官按在地上摩擦,摩擦,我的滑板鞋,霍霍!!! 1:…...

IT行业新风向!卷运维不如卷网络安全

在网络安全行业摸爬滚打这么多年,亲历了数不尽的技术面试,同时也见证了同行们职业生涯的起起伏伏,特别是运维领域。我发现最近很多从事运维的选择了辞职,转行到了网络安全这个发展路线。 运维,顾名思义就是运营和维护…...

PHP扩展管理新革命:PIE替代PECL

告别PECL,拥抱PIE:像Composer一样管理PHP扩展 PHP扩展的传统管理方式依赖PECL(PHP Extension Community Library),但PECL存在依赖管理混乱、版本控制困难等问题。PIE(PHP Extension Installer)作…...

最长连续序列:O(n)最优解法详解

最长连续序列问题概述 给定一个未排序的整数数组,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。要求算法的时间复杂度为 O(n)。 示例: 输入:nums [100,4,200,1,3,2] 输出:4 解释&#xf…...

TensorFlow与PyTorch:神经网络构建双雄

构建神经网络的两大核心工具:TensorFlow与PyTorch 神经网络已成为现代人工智能的核心技术之一,广泛应用于图像识别、自然语言处理、推荐系统等领域。构建神经网络的两大核心工具是TensorFlow和PyTorch,它们提供了高效的框架和丰富的功能&…...

掌握Git命令,高效管理代码

常用的 Git 命令 Git 是当前最流行的分布式版本控制系统,广泛应用于软件开发中。掌握常用的 Git 命令对于高效管理代码库至关重要。以下是一些常用的 Git 命令及其使用场景。 初始化与克隆仓库 要开始使用 Git,首先需要初始化一个新的仓库或克隆一个现有…...

从手动搬砖到自动化运营:我的Twitter多账号管理痛苦自救指南

昨天和一个做跨境的朋友聊天,他给我看了他的电脑桌面——16个Chrome标签页,全是不同Twitter账号的登录界面。他说每天光切换账号发内容就要花3个多小时,手指头都快点抽筋了。我太懂这种感觉了。入行做海外推广三年,从最开始管3个号…...

uniflash烧录报错--Error on line 1191 : Undefined Record Type

我烧录的是boot和app层程序,没有合并,直接烧录,报错:Error on line 1191 : Undefined Record Type。当检查过烧录文件路径正常且烧录文件没错之后,我一直不明白问题出在哪里。最后发现,公司的烧录文件经过烧…...

CUDA 13.0:ARM生态革命与GPU共享突破

CUDA 13.0深度解析:统一ARM生态、UVM增强与GPU共享的革命 统一ARM生态支持 CUDA 13.0标志着NVIDIA在异构计算领域的重大突破,首次实现对ARM架构的全面支持。这一特性使得开发者能够在基于ARM的服务器(如NVIDIA Grace CPU)或移动设…...

位深度如何提升机器视觉精度

位深度的定义 位深度(Bit Depth)指数字图像中每个像素用于表示颜色的二进制位数。常见的位深度包括8位、10位、12位、16位等。例如,8位深度图像每个像素有256(2^8)种可能的灰度或颜色值。位深度越高,图像能…...

MIT 6.824-lab3A(实现思路)

目录 前言 一、引子 二、3A实现 2.1 结构体设计 每个节点应有的状态: 定义一些枚举常量: raft结构体 2.2 RPC 结构(RequestVote / AppendEntries) 2.3 raft节点初始化 2.4 定时检测的go协程ticker 2.5 开始选举 startE…...

瑞萨RH850串口烧录说明

1.1 环境配置软件:Renesas flash programmer 下载链接:Renesas Flash Programmer (Programming GUI) | Renesas 硬件:通用串口工具即可1.2 硬件配置1. 查看是否为瑞萨通用标准。若不是标准口,只需确认TDO , TDI , FPMD0 &#xff…...

从入门到进阶:AI系统学习全路径指南,助你少走弯路,快速成为AI高手!

从入门到进阶:AI系统学习全路径指南 引言/痛点 很多想踏入AI领域的同学都会陷入“不知道从哪开始、学了零散知识没体系、越学越迷茫”的困境——AI涵盖机器学习、深度学习、大模型、CV、NLP等多个分支,没有清晰的路径很容易走弯路。本文将给出一套可落地…...

Comsol 弹性波晶体板能带计算及模态区分探索

comsol弹性波晶体板能带计算,包含模态区分。在研究弹性波在晶体板中的传播特性时,能带计算是一项至关重要的任务,而 Comsol 作为一款强大的多物理场仿真软件,为我们提供了便捷且高效的工具来实现这一目标。今天,咱们就…...

2026论文降重神器盘点:AIGC痕迹权威评测含免费试用

【CSDN导读】 2026年的毕业季,高校对“AIGC痕迹”的审查严苛程度史无前例。传统的同义词替换降重工具不仅双双失效,甚至面临“越改AI味越重”的尴尬境地。本文首发独家深度评测,从底层的算法逻辑出发,为你横向对比市面5款主流工具…...

KingbaseES聚焦上线:性能飙升的奥秘

KingbaseES聚焦产品上线:技术解析与实践指南 KingbaseES作为一款国产高性能关系型数据库,近期推出的“聚焦产品上线”功能备受关注。该功能通过优化查询执行计划、资源分配和并发控制,显著提升了高负载场景下的数据库性能。以下从技术实现、应…...

排列问题回溯解法全解析

P4163 [SCOI2007] 排列问题解析 排列问题是算法竞赛中的经典问题,涉及对给定数字或字符的全排列生成与处理。P4163题目要求生成所有不重复的排列,并可能对排列进行特定操作或统计。以下将详细分析该问题的解法,并提供代码实现。 问题描述 给定…...