基于Unity3D的并行渲染模型的开发教程(二):CLUSTER PACKAGE

来源:互联网 发布:中科院空间中心 知乎 编辑:程序博客网 时间:2024/06/01 08:13

本节主要介绍的是基于Unity的并行渲染的核心Unity组件:Claster Package。那么在讲使用之前,先讲讲这个组件的应用原理。

在官方的文档中,我们可以看到,原文主要讲解了:使用Cluster Package(以后简称CP),需要对Unity场景内的视角进行切割,原文中以三块屏幕为例,那么主视角需要被分割成等量的三份,通过标注出每块屏幕的左上,左下和右下三个顶点,并标注出主视角的位置,来确定每块屏幕相对于主视角的位置。
本图是一块屏幕与相机的相对位置确定图:这里写图片描述
那么对于多块屏幕,就需要多个如图所示的顶点位置,当分割开每块屏幕之后,组件会帮助你把相应的场景“送”到相应的屏幕中去。那么现在,我们看到的全部屏幕,组合起来,就是整个Unity场景了。那么下一个问题来了,静态的场景同步搭建完成,当模型动起来之后,如何同步?

Cluster Package组件是整个项目的核心,组件中,通过节点控制器NodeManager来判断每个节点屏幕的属性,如果节点属性为Master,那么该节点同步数据到其他的屏幕,如果节点属性为Slave,那么该节点接受来自Master节点的模型信息。如下图所示:
这里写图片描述
那么我们刚刚说到的NodeManager就是控制动态同步的核心之一,每个节点屏幕都有其信息,信息不仅仅包括刚刚说的Master和Slave的属性区别,节点信息还包括每个屏幕的三个顶点位置,主视角位置等等信息。通过NodeManager的识别,把这些信息反馈给Master的时候,Master就知道各个屏幕相互之间的位置以及从属关系了。顺便一说,一个系统只能有一个Master。

那么到了目前为止,我们已经可以看到了整个并行渲染的雏形了。下一节,我们开始讲如何让各个屏幕了解,应该同步哪些内容。

阅读全文
0 1
原创粉丝点击