跳到主要内容

相机

相机将场景渲染到屏幕。相机本质上是附加了 CameraComponent 的实体:场景从该实体的位置和朝向绘制,因此可以像操作其他实体一样,通过移动和旋转实体来调整相机。相机沿自身局部 Z 轴的负方向观察。

场景中至少需要一台启用的相机才能显示内容。除此之外,你还可以控制许多方面:将 3D 场景映射为 2D 图像的投影、决定最终颜色的色调映射,以及多相机如何组合视图,以实现分屏、叠加和渲染到纹理。

创建相机​

// Create an entity with a camera component
const camera = new pc.Entity('Camera');
camera.addComponent('camera', {
clearColor: new pc.Color(0.3, 0.3, 0.7)
});
app.root.addChild(camera);

// Aim the camera by transforming its entity
camera.setPosition(0, 5, 10);
camera.lookAt(0, 0, 0);

本节内容​

  • 投影:透视与正交投影、视野角、裁剪平面和视锥体剔除。
  • 清除:设置背景色、让画布透明或禁用清除。
  • 色调映射与曝光:将 HDR 场景光照映射到显示器,可选择物理曝光控制。
  • 多相机:通过优先级、视口、图层和渲染目标组合视图。
  • 相机控制:使用引擎自带脚本添加环绕、飞行和第一人称导航。
  • 屏幕与世界坐标:在 2D 屏幕位置与 3D 世界位置之间转换。
  • 场景拾取器:精确选择屏幕坐标下的对象。
  • 深度图层:让着色器访问场景颜色和深度缓冲区。

进一步探索​