3

Screenview ARSCNView セッションの現在のカメラ位置に追加しようとしている画像があります。私が何をしても、電話カメラの現在の位置の後ろに画像が配置されているようで、それを見るには元に戻す必要があります。次のコードがあります。

var currentFrame = SceneView.Session.CurrentFrame;

if (currentFrame == null) return;

var threeVector = new SCNVector3(currentFrame.Camera.Transform.Column3.X + 0.005f, 
       currentFrame.Camera.Transform.Column3.Y - 0.02f, 
       currentFrame.Camera.Transform.Column3.Z - 0.05f);

var scaleFactor = imgToAdd.Size.Width / 0.05;
float width = float.Parse((imgToAdd.Size.Width / scaleFactor).ToString());
float height = float.Parse((imgToAdd.Size.Height / scaleFactor).ToString());

var box = new SCNPlane {
    Width = width,
    Height = height
};

var cubeNode = new SCNNode {
    Position = threeVector,
    Geometry = box
};
var mat = new SCNMaterial();
mat.Diffuse.Contents = imgToAdd;
mat.LocksAmbientWithDiffuse = true;
cubeNode.Geometry.Materials = new[] { mat };
SceneView.Scene.RootNode.AddChildNode(cubeNode);

現在アプリ ストアで見かける ARKit ペイント アプリの簡単なアイデアを実行しようとしています。そのため、imgToAdd は、ユーザーが既に画面に配置した落書きのスナップショットであり、このイベントは、落書きされたビューから画像が作成された後、タッチエンドで発生します。

電話のカメラの現在のビューと一致させるために何を変更する必要があるかについてのアイデアはありますか?

4

0 に答える 0