Screen Component
Each different output display that uses the Simple projection type renders the scene from the current camera's position using a frustum that is defined by a rectangle with a defined size and placement in the 3D VR space. Each of these rectangles is defined by a screen configuration. Usually, each of these projection screens has the same dimensions in space as the physical screen that you'll use to render it.
The pivot point of a screen is always in its exact midpoint.
这段描述的是:针对每一路不同的显示输出来说,(这里仅涉及采用简单投影关系的输出),它们输出或显示的内容是对场景的渲染结果,这个渲染的(在场景里的)范围,是用当前相机的位置和一个视锥体来描述的,而这个视锥体是由3D空间中一个有确定尺寸和位置的矩形来定义的。每一个这样的矩形,都由一个Screen配置(或说Screen Component)来定义。通常,每个这样的投影Screen(组件)都与用来显示这个(Screen组件定义的渲染范围的)渲染结果的物理屏幕拥有相同的尺寸。
nDisplay初步学习
- 一套nDisplay设置,物理上包括:一个主计算机和若干附加计算机。附加计算机数量是scalable numbers的。
- 每台计算机可以包含一个或多个node。这里的node就是nDisplay的逻辑概念。一个node包含一个unreal engine实例。每个UE实例可以负责一个或多个显示设备的内容渲染:一个UE实例渲染的内容属于同一个3D场景,渲染的画面属于同一个视点,该UE实例会根据其负责的每个显示设备的物理布局分别设定该视点的透视变换及矩形范围并渲染结果拆分到对应显示设备。(实质还是一个pass,在shader里计算每个像素时,都要根据该像素对应的投影变换来计算)
- primary node中还会通过一个所谓外围的VRPN Servers来接收Tracker、Controller的输入,然后将该输入复制到该nDisplay设置包含的所有nodes,包括primary node和cluster nodes。
上面就是nDisplay设置的整体结构描述了,可以发现概念焦点就是Node。下面对node的几种典型设置情况进行一下描述:
- 一个UE实例对应一个显示设备
- 多个UE实例,每个实例对应一个显示设备。这种情况是由于一台计算机上有多块显卡,用多个UE实例来分流渲染任务
- 一个UE实例,对应多个显示设备,每个显示设备显示一部分。这在上面已经介绍了详情
nDisplay架构能够正常运作的框架保证
- 引擎内置插件:其会在组成群集的所有UE实例间通信和同步信息,确保所有实例同时渲染相同的帧、确保所有显示设备渲染游戏场景的正确视锥等。
- 一个共享的配置资产,它包含 nDisplay 需要的所有设置,以便在正确的计算机上启动正确数量的实例。每个实例都能在游戏 3D 场景中渲染正确的视点,从而在所有屏幕或投影设备上产生无缝的渲染效果。(请参阅nDisplay 3D 配置编辑器了解更多信息。)
工作流程