按照构想,现在已经完好的实现了室内场景的组织结构和模型结构的Max导出插件导出,导出到我自定义的流文件中,然后通过我的室内场景编辑器顺利的加载了室内场景,并且实施了很好的剪裁,感受一下漫游效果,还算比较满意,视锥很有效的去除了多余的室内空间,可视范围的Room才自动加入渲染
上图庆祝一下
这是3dMax里面的室内模型,是个环形的围屋,8个房间,两两相连,房间与房间之间有portal的设置,0号和4号房间还有通往室外的portal
室外那个大的虚拟模型是整个建筑的包围盒,代表室外0和4号房间的portal就分别和这个rootRoom连接,这样室内和室外的衔接也将是那么的自然
导出以后,在我的室内场景编辑器里面,导入漫游剪裁的效果图也发上来
这是剪裁调试的时候对摄像头culling进行的锁定,可以看到,视锥看到的仅仅是可视范围的三个room,其他的room均被过滤掉了
算法其实很简单,和3dmax的连接也很方便,可编辑操作性很强,看了很多空间划分算法,觉得还是这个比较方便
简而言之:就是 单层场景外包围盒树 +内部Portal 多向关连树 + portal 剪裁
不需要bsp,甚至不需要八叉树一样可以很好的实现室内引擎,特别对于半封闭空间,空间自动划分,室内外连接,这些是bsp最头疼的问题
我这里根本不存在这些问题,而且算法足够简单
另外,场景的制作设计的体力活要求完全可以交给美工在3dmax里面制作,包括空间划分,portal连接,稍微培训一下,美工足以胜任
下一步,在室内编辑器里加入物理引擎实施碰撞检测,以及房屋内的模型摆放和编辑,前面开了个好头,对于这些实现应该不算太困难了 ^_^