使用 Web Components
使用 PlayCanvas Web Components 逐步创建可交互环绕的 3D 玩具猫场景。
起点
新建 index.html,复制入门指南的示例页面,清空 body 内内容。
使用 <pc-app> 和 <pc-scene> 添加基础结构:
<pc-app antialias="false" max-pixel-ratio="1">
<pc-scene>
</pc-scene>
</pc-app>
这创建空 3D 场景,仍需相机和数据才能看到内容。
性能优化
在 pc-app 禁用 antialias,将 max-pixel-ratio 限制为 1,按 CSS 分辨率渲染,以降低主要瓶颈——片元处理负载。参见性能。
加载资源
先通过 <pc-asset> 定义控制脚本与数据资源:
<pc-app antialias="false" max-pixel-ratio="1">
<pc-asset src="https://cdn.jsdelivr.net/npm/playcanvas/scripts/esm/camera-controls.mjs"></pc-asset>
<pc-asset id="toy" src="https://developer.playcanvas.com/assets/toy-cat.sog"></pc-asset>
<pc-scene>
</pc-scene>
</pc-app>
添加了两个资源:
- 支持场景环绕的相机控制脚本。
- 玩具猫的压缩 PLY。
添加相机
通过 <pc-entity> 和 <pc-camera> 添加:
<pc-app antialias="false" max-pixel-ratio="1">
<pc-asset src="https://cdn.jsdelivr.net/npm/playcanvas/scripts/esm/camera-controls.mjs"></pc-asset>
<pc-asset id="toy" src="https://developer.playcanvas.com/assets/toy-cat.sog"></pc-asset>
<pc-scene>
<pc-entity position="0 0 2.5">
<pc-camera></pc-camera>
</pc-entity>
</pc-scene>
</pc-app>
相机位于 Z 轴正方向 2.5 单位,默认沿负 Z 观察,正对稍后放置数据的原点。
添加相机控制
通过 <pc-script> 和 <pc-script-instance> 添加控制脚本:
<pc-app antialias="false" max-pixel-ratio="1">
<pc-asset src="https://cdn.jsdelivr.net/npm/playcanvas/scripts/esm/camera-controls.mjs"></pc-asset>
<pc-asset id="toy" src="https://developer.playcanvas.com/assets/toy-cat.sog"></pc-asset>
<pc-scene>
<pc-entity position="0 0 2.5">
<pc-camera></pc-camera>
<pc-script>
<pc-script-instance name="cameraControls"></pc-script-instance>
</pc-script>
</pc-entity>
</pc-scene>
</pc-app>
控制支持:
- 左键拖动:环绕。
- 中键拖动:平移。
- 滚轮:缩放。
添加高斯泼溅
通过 <pc-gsplat> 加入玩具猫:
<pc-app antialias="false" max-pixel-ratio="1">
<pc-asset src="https://cdn.jsdelivr.net/npm/playcanvas/scripts/esm/camera-controls.mjs"></pc-asset>
<pc-asset id="toy" src="https://developer.playcanvas.com/assets/toy-cat.sog"></pc-asset>
<pc-scene>
<pc-entity position="0 0 2.5">
<pc-camera></pc-camera>
<pc-script>
<pc-script-instance name="cameraControls"></pc-script-instance>
</pc-script>
</pc-entity>
<pc-entity position="0 -0.7 0" rotation="0 0 180">
<pc-gsplat asset="toy"></pc-gsplat>
</pc-entity>
</pc-scene>
</pc-app>
位置在原点下方,Y 为 -0.7,绕 Z 转 180 度以调整朝向。asset="toy" 引用之前定义的资源。
最终结果
完成后,应看到可环绕、平移和缩放的交互式玩具猫。
动手试试
将完整 HTML 复制到文件并在浏览器打开,体验首个应用,再使用 PlayCanvas 引擎继续扩展。