Hololens官方给出的Tutorial不算多,其中内容最丰富的要数Holograms 230: Spatial mapping 空间映射这一篇了,主要讲的是空间的概念与操作,封装在HoloToolkit里面,这里逐步解析一下。
首先是Scanning扫描,这个跟前面Hologram101差不多就是打开SpatialMapping,让Hololens扫描空间,不过这里提供了一种途径让你把扫描的结果存下来,并且可以在Unity打开,这个还是挺棒的,比如自己的房间除了自己在3ds max建模,还可以用这种扫描的方式获得3d模型,当然这个的精度一般。因为这个模型是用三角形为单位来描述的,描述曲面就没什么精度可言了,其次就是可调节每立方米的三角形数量来提高精度,不过这个会影响性能。这个性能是由Hololen的处理器即并不快的atom来决定的,而不是你强大的pc的处理器。保存下来的SRMesh.obj可以在unity打开,可以在unity模拟hololens现场获得房间的结果。联想起当初玩Kinect的时候也可以3D扫描,当然精度也是不咋地。
后面开始就一环扣一环了。先说一下总的步骤,先是扫描获得Mesh数据,然后在Mesh数据里面提取平面信息,分析平面信息用SurfaceNormal来判断平面类型是地面、天花、桌子,还是墙。然后用以cube来表示的定制化平面分别创建这些面,然后在面上面放置物体。如果还没晕,那我们继续。
第一步,在PlaySpaceManager里面,我们可以看到一下参数,分别讲解一下。
limitScanningByTime:布尔类型标识是否限定时间。
scanTime:如果限定那是多少秒。
defaultMaterial&#x