在 3D 引擎(如 Godot、Unity、Unreal)中:

  • 相机(Camera):是一个节点/对象,定义了“从哪里看、怎么投影、看多远”等参数。它决定了场景如何被渲染出来(比如视野、投影类型、远近裁剪等)。
  • 视口(Viewport):是一个“画布”或“渲染目标”,负责接收相机渲染的画面。可以理解为一块屏幕区域,或者一张纹理,最终显示或用于后处理。

为什么要分开?

  • 一个视口可以有多个相机(但通常只激活一个),比如主视角、后视镜、分屏等。
  • 一个相机可以渲染到不同的视口,比如主屏幕和小地图。
  • 视口可以嵌套(如编辑器窗口、UI 预览),每个视口有独立的渲染流程和后处理。
  • 视口还可以用作离屏渲染(如 GPU 拾取、特效、反射等),不直接显示在主屏幕。

总结: 相机负责“看”,视口负责“显示/接收”。两者解耦后,渲染系统更灵活,能支持多窗口、多画面、后处理等复杂需求。