10+年产品经理聊聊产品、测测产品,产品人交流学习成长平台,按 Ctrl+D 收藏我们
关于我 留言板 小程序 标签云

苏米客

  • 首页
  • AIGC
    • AI最新动态
    • AI学习教程
    • AI工具集合
    • AI产品百科
    • AI编程开发
    • AI提示词
    • AI开源项目
    • AI智能体
  • Axure
    • Axure动态
    • Axure教程
  • 产品
    • 用户体验
    • 产品设计
    • 苏米杂谈
  • 资源
    • 产品UI组件库
    • 开源图标库
    • 中后台框架
  • 书单
    • AI书籍
    • 用户体验
    • UI视觉
    • 产品研究
    • 其他类型
  • 下载
    • Axure组件
    • Axure原型
    • 文档报告
    • 素材资源
  • 登录
  • 首页
  • AIGC
    • AI最新动态
    • AI学习教程
    • AI工具集合
    • AI产品百科
    • AI编程开发
    • AI提示词
    • AI开源项目
    • AI智能体
  • Axure
    • Axure动态
    • Axure教程
  • 产品
    • 用户体验
    • 产品设计
    • 苏米杂谈
  • 资源
    • 产品UI组件库
    • 开源图标库
    • 中后台框架
  • 书单
    • AI书籍
    • 用户体验
    • UI视觉
    • 产品研究
    • 其他类型
  • 下载
    • Axure组件
    • Axure原型
    • 文档报告
    • 素材资源
当前位置: 首页 » AI开源项目

PixiJS v8.19 发布:HTML-in-Canvas 正式落地,DOM 进入 GPU 渲染管线

2小时前 AI开源项目 21 0

前段时间我写过一次 HTML-in-Canvas,当时很多人的第一反应是:这个提案确实疯狂,但感觉离真正落地还很远。

结果没想到,PixiJS 先动手了。

图片 1

在最新的 PixiJS v8.19.0 中,官方已经加入了 HTML-in-Canvas 相关支持,新的能力叫 pixi.js/html-source。简单说就是:PixiJS 现在可以把真实 DOM 元素渲染成 texture,再放进自己的 GPU 渲染体系里。

因为长期以来,Web 前端其实一直有两个割裂的世界:DOM 适合写 UI、文本、布局、表单、交互;Canvas / WebGL / WebGPU 适合做高性能渲染、游戏、可视化、特效和复杂动画。问题是,两边都很强,但很难真正融合。

你想在 Canvas 里画一个漂亮的 UI 面板,往往不能直接写 HTML,而是要自己处理文本、坐标、换行、状态、事件、缩放、输入框、按钮反馈,基本等于重新造一层 UI 渲染引擎。

PixiJS 这次更新,真正有意思的地方就在这里:它开始把这两个世界接起来了。

HTML 真的可以变成 PixiJS 纹理了

PixiJS 这次新增的核心能力是 HTMLSource 和 ElementImageSource,其中 HTMLSource 用来处理实时 DOM,ElementImageSource 更偏向静态快照。

官方给出的思路很直接:你可以创建一个普通 HTML 元素,把它作为 PixiJS texture 的资源,然后通过 Sprite.from() 放进舞台。

图片 2

简化一下代码大概是这样:

import { Application, Sprite } from 'pixi.js';
import { HTMLSource } from 'pixi.js/html-source';

const app = new Application();
await app.init({ resizeTo: window });
document.body.appendChild(app.canvas);

const form = document.createElement('form');
form.innerHTML = `

Player Info


  
  
`;
app.canvas.appendChild(form);

const sprite = Sprite.from(
  new HTMLSource({
    resource: form,
    autoUpdate: true,
  })
);
app.stage.addChild(sprite);

重点不是这几行代码,而是它背后的变化:

  • form 依然是真实 DOM
  • 但 PixiJS 可以把它当成 texture 使用
  • 这不是传统的截图,也不是 html2canvas 那种模拟渲染,更不是各种 SVG hack

它依赖的是浏览器层面的 HTML-in-Canvas 能力,让真实 DOM 的渲染结果进入 Canvas / GPU 管线。官方也提到,输入框仍然可以编辑,链接仍然可以点击,CSS animation 也可以继续运行。也就是说,这不是一张死图,而是一个仍然保留浏览器交互能力的 DOM,同时又能被 PixiJS 当作纹理参与渲染。

Canvas 写 UI,最痛苦的地方开始松动了

只要真正用 Canvas 做过 UI,就知道它有多麻烦。画一个矩形很简单,做一个按钮也不难,但当你开始做复杂 UI,问题会瞬间爆炸:

  • 文本要怎么换行?
  • 中文、英文、Emoji 混排怎么办?
  • 字体加载完成前后如何同步?
  • 输入框怎么做?光标怎么闪?
  • 滚动区域怎么处理?hover、focus、disabled、selected 这些状态要不要自己维护?
  • 屏幕阅读器怎么读?
  • 移动端缩放和 DPR 怎么处理?

这也是为什么很多 Canvas 项目最后都会变成一种很别扭的结构:Canvas 负责主画面,DOM 浮在 Canvas 上面,两边靠坐标同步。这种方案不是不能用,但只要项目稍微复杂一点,就会出现一堆边界问题。

比如 Canvas 缩放了,DOM 位置要同步;Canvas 做旋转或滤镜了,DOM 跟不上;你想截图或导出,DOM 不在画布里;你想把 UI 放进 WebGL 场景当贴图,DOM 又没法真正进入渲染链路。

HTML-in-Canvas 的价值就在这里。它不是让你继续手写一套 UI,而是让你用浏览器最成熟的方式写 UI:HTML 负责布局和交互,PixiJS 负责渲染和合成。这才是这次更新真正硬核的地方。

一些已经出现的用法

虽然 HTML-in-Canvas 目前还在实验阶段,但它的使用场景已经非常明确了:

  • 游戏 UI(HTML 写界面 + Canvas 渲染)
  • 数据可视化(图表 + HTML 标签)
  • 海报生成(直接导出)
  • WebGL / 3D UI(HTML 作为纹理)
  • 设计工具(富文本 + 实时渲染)

为什么 PixiJS 要先接这个能力?

因为 PixiJS 不是普通 Canvas 工具库,它本身就是一个成熟的 2D 渲染引擎,长期面向 Web 游戏、互动广告、创意页面、数据可视化、编辑器、实时动画这些场景。这些场景天然需要两种能力:一边要高性能图形渲染,一边要复杂 UI 和文本排版。过去只能二选一,或者强行把 DOM 和 Canvas 拼在一起。

PixiJS 现在接入 HTML-in-Canvas textures,其实是在尝试一种新的分工方式:DOM 负责它最擅长的布局、样式、输入、交互、语义;PixiJS 负责它最擅长的渲染、动画、滤镜、合成、GPU 管线。这个分工一旦跑通,对前端图形应用非常有价值。

比如你可以让一个 HTML 表单作为 PixiJS 场景中的一个 Sprite,然后对它做位移、缩放、滤镜、混合模式,甚至把它和粒子、遮罩、后处理效果一起合成。以前这类需求不是不能做,但实现成本极高,而且经常伴随大量 hack。现在,浏览器底层开始提供能力,PixiJS 这类图形引擎开始做封装。这个信号比 API 本身更重要。

PixiJS 还拥抱了 AI Agent

除了 HTML-in-Canvas,PixiJS 6 月更新里还有一个很值得关注的点:官方发布了 25 个 PixiJS Agent Skills。这批 skills 面向 Claude Code、Cursor、Codex、Copilot、Windsurf 这类 AI 编程工具,作用很直接:教 AI 正确使用 PixiJS v8,少生成过时的 v7 写法。

安装命令也很简单:

npx skills add https://github.com/pixijs/pixijs-skills

从 v8.19.0 开始,这些 skills 还会直接随 pixi.js npm 包发布,安装后可以在 node_modules/pixi.js/skills/ 里面找到。

这件事和 HTML-in-Canvas 放在一起看,其实更有意思。PixiJS 这次不是单纯做 API 更新,而是在同时适配两个方向:一个是下一代 Web 渲染能力,一个是下一代 AI 编程工作流。前者解决「浏览器能不能把 HTML、Canvas、GPU 打通」,后者解决「AI 能不能正确写现代 PixiJS 代码」。

写在最后

PixiJS 这次支持 HTML-in-Canvas,短期看还是实验功能;但长期看,它代表的方向非常清晰:DOM 不再只是页面结构,Canvas 不再只是像素画布,HTML 有机会进入 GPU 渲染链路。

过去我们说 Canvas 很强,但做 UI 太原始;DOM 很好用,但进不了图形渲染系统。如果你在做 Web 游戏、数据可视化、互动页面、WebGL 场景、设计工具、海报编辑器,或者任何需要复杂图形渲染的前端项目,PixiJS 这次更新都值得看一眼。

它不一定马上改变日常业务开发,但它很可能代表一个新方向:用 HTML 写界面,用 PixiJS 驱动渲染,用 GPU 完成合成。这才是前端渲染最疯狂、也最值得期待的地方。

声明:本站原创文章文字版权归本站所有,转载务必注明作者和出处;本站转载文章仅仅代表原作者观点,不代表本站立场,图文版权归原作者所有。如有侵权,请联系我们删除。
未经允许不得转载:PixiJS v8.19 发布:HTML-in-Canvas 正式落地,DOM 进入 GPU 渲染管线
#PixiJS #前端开发 #WebGL #HTML-in-Canvas #开源项目 
收藏 1
FastClaw 开源框架评测:从 OpenClaw 到云原生多 Agent 架构的演进
Transformer 发明人与诺奖得主相继出走:谷歌 AI 的人才流失危机
推荐阅读
  • OpenDataLoader PDF 开源项目:PDF 解析精度 0.90 领先同类,支持本地/Hybrid 双模式
  • VoltAgent 开源 DESIGN.md 合集:50+ 顶级品牌设计系统,让 AI 生成一致 UI
  • Nanobot:香港大学开源智能体框架,仅4000行代码复刻OpenClaw核心能力
  • AipexBase:国产首个 AI 原生后端开源平台来了,让 AI Coding直接起飞!
  • WSL Dashboard:10 年来终于有人做了 WSL 可视化管理
评论 (0)
请登录后发表评论
分类精选
WeKnora:终于等到了腾讯ima的开源知识库框架,用 API 轻松打造本地智能文档检索
9861 9月前
OpenSpec:比 Cursor Plan 更聪明?试试这款让 AI 编码更靠谱的规范驱动工具
9773 8月前
Antigravity-Manager:这个开源神器让你白嫖ClaudeOpus 4.5,Gemini 3!还能接Claude Code等任意平台
7733 5月前
CapCut API:一个剪映API开源项目,让AI自动剪辑视频
6956 6月前
awesome-openclaw-skills:700+ Skills 一条命令装配完成,如何让本地 AI Agent 真正落地可用
6840 4月前
AIRI:你的开源AI女友,让你随时拥有属于自己的 AI VTuber
6730 9月前
CompressO:开源免费的视频压缩神器,让你的硬盘瞬间轻松 10 倍
6627 9月前
就要创作:从提示词到创作团队,开源 AI 网文写作平台
6612 8月前
iFlow CLI:让命令行终端不止于编程的AI效率开源神器
5912 10月前
Composio:让AI Agent自动完成工作任务,能让AI一键操控你的所有软件
5869 8月前

文章目录

关注「苏米客」公众号

订阅推送更及时,手机查看更方便
分类排行
1 PixiJS v8.19 发布:HTML-in-Canvas 正式落地,DOM 进入 GPU 渲染管线
2 FastClaw 开源框架评测:从 OpenClaw 到云原生多 Agent 架构的演进
3 Nub JS 工具链实测:基于 Node 的 Rust 工具集,nub run 比 pnpm 快 24 倍
4 mattpocock/skills 开源项目:14 万 Star,用标准化流程解决 AI 编程意图对齐难题
5 AudioX-Turbo 开源音频生成模型:4 步极速出音效,支持文本/视频多模态输入
6 DBX 开源数据库客户端:Navicat 轻量替代,SQL 编辑/结构对比/数据迁移全支持
7 Amplication 开源后端代码生成平台:5 分钟生成生产级 CRUD,可商用可私有部署
8 抖音对标账号采集 + 多平台自动发布:开源短视频运营中台工具推荐
9 Understand Anything 开源项目:祖传代码一键变可视化知识图谱,支持 Claude Code/Cursor/Copilot
10 yao-meta-skill:从提示词到工程化 Skill 包的完整框架
©2015-2024 苏米客XMSUMI 版权所有 · WWW.XMSUMI.COM 闽ICP备14005900号-6
微信文章助手 程序库 免费影视APP 免费字体下载 Axure RP 10 免费Axure模板 Axure元件库下载 申请友联