点群
深度バッファをワールドスペース点群に変換する。
概要
この機能は、 DepthBuffer を受け取り、 ComputeBuffer
を使用してワールドスペース点群に変換することで、Unityシーンで使用できるようになります。
以下の例は、1フレーム分の点群データをデバッグ用に視覚化したものです。パフォーマンス上の理由から、このデモでは点群のすべての点がレンダリングされるわけではなく、外観が分かる程度に視覚化されています。
点群を有効にする
ARの設定で IsDepthEnabled
の値をtrueに設定し、ARWorldTrackingConfiguration`
の``IsDepthPointCloudEnabled`` プロパティをtrueに設定して点群生成を有効にします。これにより、点群は値が Depth
の任意の ARFrame で利用できます。また、 ARFrame
の DepthPointCloud プロパティからアクセスすることができます。
using Niantic.ARDK.AR.Configuration; private void RunWithPointCloud(IARSession arSession) { var configuration = ARWorldTrackingConfigurationFactory.Create(); configuration.IsDepthEnabled = true; configuration.DepthTargetFrameRate = 20; configuration.IsDepthPointCloudEnabled = true; arSession.Run(configuration); arSession.FrameUpdated += OnFrameUpdated; } private void OnFrameUpdated(FrameUpdatedArgs args) { var frame = args.Frame; if (frame.Depth != null) { // You can now access the depth point cloud data var depthFeaturePoints = frame.DepthPointCloud; // insert your code for usage of the point cloud } }
注釈
この機能を使用するには、 ARSession の構成で深度も有効にする必要があります。これは、点群が深度データを使用して構築されることが理由です。