を回転させて、私はAVCapturePhotoOutput
で画像を撮影し、その画像と同じアスペクト比であるSceneKit SCNPlane
にテクスチャとして彼らのJPEG表現を使用しています:は私SceneKit材料
let image = UIImage(data: dataImage!)
let rectangle = SCNPlane(width:9, height:12)
let rectmaterial = SCNMaterial()
rectmaterial.diffuse.contents = image
rectmaterial.isDoubleSided = true
rectangle.materials = [rectmaterial]
let rectnode = SCNNode(geometry: rectangle)
let pos = sceneSpacePosition(inFrontOf: self.pictCamera, atDistance: 16.5) // 16.5 is arbitrary, but makes the rectangle the same size as the camera
rectnode.position = pos
rectnode.orientation = self.pictCamera.orientation
pictView.scene?.rootNode.addChildNode(rectnode)
sceneSpacePosition
は、コードのビットですCoreMotionをSceneKitの向きにマップするのはcan be found here on SOです。それは実際に正しいサイズで正しい位置に現れる矩形を配置するために使用されます。すべて非常にクールです。
問題は、画像が長方形に90度回転していることです。だからわかりました:
rectmaterial.diffuse.contentsTransform = SCNMatrix4MakeRotation(Float.pi/2, 0, 0, 1)
これは機能しません。結果の画像は認識できません。画像の1つの小さな部分が大きなサイズに伸びているようです。私はそれが軸かもしれないと思ったが、私は同じ結果で3つのすべてを試した。
アイデア?
を正方形の場合、一度回転させるとストレッチ/タイリングがレンダリングされ、奇妙な結果が生じることがありますか? –