Visibility是Mar2010新增加的一个模块. 严格上来说, 也不是”增加”啦, 其实是原有的场景管理可见性更新部分的一个扩充, 同时主要的目的是把可见性更新多线性化, 方便充分利用Win32的CPU和PS3的SPU.
大体结构, 如图
l InternalStage是这个系统它妈, 不用说
l VisibilityChecker是核心类, 相当于一个管理器吧.所有加入Stage的实体都会在这里注册一下, 加入VisibilitySystem. 有一点值得学习的是VisibilityQuery, 这里持有俩实例, 每次取的都是上一帧的结果, 跟”BackBuffer&FrontBuffer”很像, 呵呵.
l VisibilityQuery就是实际操作查询的类了.功能是把查询请求变成一个Job任务提交, 并取得查询结果. 至于Job的工作原理, 下回再说.
l VisibilitySystemBase可见性系统基类. 可以看到, 它有3个子类(当然, 可以自己扩展).
n VisibilityQuadtree 这就是老的那一套场景管理, 只不过多了个爹而已.
n VisibilityBoxSystem VisibilityBox其实就是个包围盒, 里面一堆实体. 这个子系统的管理方式很简单: 如果摄像机在一个box内, 那么它只能看到这个box和邻近box内的实体; 如果摄像机不在任何box内, 那么所有box都是可见的. 简单的说, 就是你在这个房间里的话, 只能看到这个房间和隔壁房间里的东西.
n VisibilityClusterSystem VisibilityCluster, 嗯, 这个, 怎么说呢, 跟上面这个类似, 不过它是一个逻辑上的概念, 在关卡编辑器里指定的, 不深入讨论.
没几句话就说完了, 其实还是Job的工作原理才是核心, 抽时间仔细看看那一块儿.
分享到:
相关推荐
Nebula3 命令行应用程序向导 有建议的加我MSN交流
Nebula模拟器Nebula模拟器Nebula模拟器Nebula模拟器
Nebula3的应用程序向导, 咋时先做个命令行的方便初学者学习用 有建议的加我MSN交流
这个插件暂时只能导出nvx2的网格,如果需要导出n3格式的文件,请关注后续的开发
nebula3中加载xml格式的n3文件,代码修改在各个ModelNode类型的节点类中
3-3 Nebula Graph v3 ——开源分布式高性能图数据库
Nebula 提供了一组自定义的SWT控件和其它UI组件。 将nebula.zip解压到eclipse的安装目录下的dropins文件夹中clean方式重启eclipse
A game engine and framework. It is built to be portable to various platforms, including the consoles and the iPhone. It has been used in commercial projects.
图数据库nebula的前端展示界面
java-nebula客户端集成(csdn)————程序
常用的模拟器. 这是汉化版的,用着比较方便.
nebula图数据库V2.6.0
这是Nebula PaperClips的打印例子,PaperClips的版本为1.0.4。
docker手动搭建3台nebula分布式集群,持久化配置的meta、graph、storage配置文件demo。
nebula3 是一个游戏引擎和开发框架,可移植的特性支持多平台,包括 iPhone。
flutter_nebula Flutter nebula是Eva设计系统的一个Flutter实现。它包含一组以类似方式设计的通用UI组件。您关注于业务逻辑,Nebula负责视觉外观。最棒的是:主题可以在运行时更改,而不需要重新加载应用程序。 :...
Nebula2的游戏架构,对了解引擎的架构有些帮助
脱壳的nebula225b 修正处理了无法扫描到全部游戏子Rom问题|汉化修正绿色特别版
从JSON对象实例化three-nebula粒子系统的能力 从精灵和3D网格创建粒子系统的能力 多种粒子行为和初始值设定项 安装 npm npm i --save three-nebula 脚本 [removed][removed] 用法 模块 import System , { ...
nebula-graph-3.2.0.el7.x86_64 安装包,包含客户端console