图形
基于 WebGL2 与 WebGPU 的高级 2D + 3D 图形引擎。
hustle-diary · WangChangxin0809/hustle-diary
一款基于微信小游戏平台开发的「羊了个羊」风格消除类小游戏,仓库名为 hustle-diary(牛马日记)。项目使用 JavaScript 编写,标签涵盖 canvas、HTML5 游戏、小游戏、解谜、方块匹配等方向。README 摘录内容为 PlayCanvas 引擎说明,与...
PlayCanvas Engine 是一个开源的游戏引擎,构建在 WebGL2 与 WebGPU 之上,目标是在浏览器中运行可交互的 3D 应用、游戏与可视化内容。仓库描述将其定位为“强大的 Web 图形运行时”,并明确提到 WebXR 与 glTF 支持。
它并非只面向游戏:从官方展示的项目来看,既有休闲游戏、广告互动,也有汽车展示、角色模型与全局光照等技术演示。引擎本体以 JavaScript 编写,同时提供 TypeScript 类型声明,可通过 NPM 包 playcanvas 引入到任意前端工程中。
README 顶部提供了完整的文档入口矩阵:用户手册、API 参考、示例页面、博客与论坛,说明该项目在文档建设上有持续投入。README 还提供英文、中文、日文、韩文多语言版本。
基于 WebGL2 与 WebGPU 的高级 2D + 3D 图形引擎。
对 3D Gaussian Splats 的加载与渲染提供一等支持,并附有用户手册章节链接。
通过 WebXR 内置沉浸式 AR 与 VR 体验支持。
与 3D 刚体物理引擎 ammo.js 完整集成。
面向角色与任意场景属性的、基于状态的动画系统。
鼠标、键盘、触摸与手柄 API。
基于 Web Audio API 的 3D 定位音效。
基于 glTF 2.0 的异步流式系统,并支持 Draco 与 Basis 压缩。
可用 TypeScript 或 JavaScript 编写游戏行为逻辑。
从源码构建需要 Node.js 18 及以上版本。先安装依赖:
npm install
随后可执行 README 列出的构建命令:
| 命令 | 说明 | 输出目录 |
|---|---|---|
npm run build |
构建全部引擎变体与类型声明 | build |
npm run docs |
构建引擎 API 参考文档 | docs |
如果只是使用引擎开发项目,通常无需从源码构建,直接安装 NPM 包或使用脚手架即可。
安装方式非常直接:
npm install playcanvas
或者使用官方脚手架在数秒内创建一个完整项目:
npm create playcanvas@latest
README 给出的 Hello World 示例是一个旋转的立方体,展示了引擎的基本使用范式:
Application 并绑定到 canvas 元素;setCanvasFillMode 与 setCanvasResolution 设置画布填充与分辨率策略;resize 事件并调用 resizeCanvas() 自适应尺寸;Entity 加 addComponent 的方式组装渲染体、相机与灯光;app.on('update', ...) 回调中按帧间隔 dt 旋转立方体;app.start() 启动主循环。这种“实体 + 组件”的组织方式对熟悉组件化开发的读者比较友好。README 还提供了 CodePen 在线示例链接,以及基于引擎搭建本地开发环境的独立指南入口。
README 用一张表格梳理了围绕引擎的生态包,方便按需选型:
| 包 | 说明 |
|---|---|
playcanvas |
核心引擎本体 |
@playcanvas/react |
面向 PlayCanvas 的 React 渲染器 |
@playcanvas/web-components |
通过自定义元素实现声明式 3D |
create-playcanvas |
项目脚手架 CLI |
| PlayCanvas Editor | 基于浏览器的可视化编辑器 |
这意味着团队可以按自身技术栈选择接入方式:纯引擎脚本、React 组件化,或 Web Components 声明式写法。可视化编辑器则提供了不写代码也能搭建场景的路径。
README 的 Project Showcase 一节列出了若干已发布的游戏与应用,并给出可在线试玩的链接,包括 Seemore、After The Flood、Casino、Swooop、dev Archer、Gaussian Splat Statues、Car、Star-Lord、Global Illumination 等,更多作品可在官网探索页查看。
Users 一节列出了在游戏、广告与可视化领域使用该引擎的公司名单,例如 Animech、Arm、BMW、Disney、Facebook、Famobi、King、Miniclip、Mozilla、Nickelodeon、Samsung、Snap、Zynga 等。这些信息来自 README 原文,可作为了解其工业应用场景的参考。
对于初次接触的读者,建议按以下顺序推进:
Application、Entity、组件与 update 事件的关系;引擎同时支持 JavaScript 与 TypeScript 编写脚本,已有前端经验的开发者上手成本相对可控;但 3D 图形、着色与 XR 相关内容仍需一定的图形学基础。
Farbrausch 2001—2011 年 demo 工具源码合集,使用 C++,涉及 demoscene 与 D...