跳到正文
cccskills
免费在 GitHub 公开

verify-pixels

Use when a PlayCanvas rendering change is meant to leave the image unchanged, to prove it with deterministic captures and pixel comparison.

中文简介正在准备中。当前显示原文说明。

查看安装方法

包含的文件(1)

  • SKILL.md1.7 KB

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

Prove pixels unchanged

Choose the gate

  • Byte-exact: the change keeps the same decoded data and the same shading math, so every pixel must match.
  • Side-by-side review: the change alters sampled values, random order, precision, or where math runs. Report it as "not byte-gateable" and show old and new at each pose; do not invent thresholds.

Make frames deterministic

  • Load every asset and match camera, canvas size, lighting, and animation time between builds. Seed incidental randomness.
  • Drive animated shaders from one app-owned time value, not Date.now() or performance.now().
  • app.timeScale = 0 makes dt zero, but update still runs; anything counting frames or reading wall-clock time still advances.
  • Set app.autoRender = false, then app.renderNextFrame = true before each frame to capture.

Capture and compare

  • WebGL: await (device as WebglGraphicsDevice).readPixelsAsync(x, y, w, h, pixels). WebGPU: render into a RenderTarget and read its colorBuffer with Texture#read(). Avoid colour conversion and lossy encoding.
  • Capture the unmodified build twice first. The captures must match exactly, or the harness itself is noisy.
  • Cover every touched surface in at least two poses, plus a mid-animation phase where relevant.
  • Report the count, for example "0 of 65536 pixels differ", or the count and where the differences are. "Looks the same" is not a result.

Keep harness code out of the shipped bundle; attach it through inspect-runtime.

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

Use when adding visual effects to a PlayCanvas app, to choose between particle systems, shader chunks, runtime meshes, and post-processing.

中文简介正在准备中。当前显示原文说明。

playcanvas/skills282026年10月13日 更新

Use when writing PlayCanvas Engine code touching transforms, cameras, lights, materials, meshes, bounds, or imports, to apply Engine conventions and avoid legacy APIs.

中文简介正在准备中。当前显示原文说明。

playcanvas/skills282026年10月13日 更新

Use when composing PlayCanvas entity hierarchies from models, colliders, rigid bodies, and scripts, so each object has one semantic root and clear lifecycle.

中文简介正在准备中。当前显示原文说明。

playcanvas/skills282026年10月13日 更新

Use when static PlayCanvas lighting, shadows, or ambient occlusion cost too much per frame and should be baked into lightmaps.

中文简介正在准备中。当前显示原文说明。

playcanvas/skills282026年10月13日 更新

build-app

免费

Use when creating or restructuring a PlayCanvas app with the Engine API, @playcanvas/react, or @playcanvas/web-components, covering bootstrap, input, resize, physics, update loop, UI, and lifecycle.

中文简介正在准备中。当前显示原文说明。

playcanvas/skills282026年10月13日 更新

Use before repeatedly placing GLB models in PlayCanvas to record each asset's uniform scale, grounding offset, pivot compensation, and yaw once.

中文简介正在准备中。当前显示原文说明。

playcanvas/skills282026年10月13日 更新

查看 playcanvas 的全部技能

报告此技能的问题