我正在與AVCapturePhotoOutput
圖像,然後使用他們的JPEG表示作爲上的SceneKit SCNPlane
紋理也就是相同的縱橫比的圖像:旋轉我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)
這是行不通的屬性;結果圖像無法識別。看起來,圖像的一小部分已被拉伸到一個巨大的尺寸。我認爲這可能是軸心,但我嘗試了所有三個結果相同。
任何想法?
我不熟悉SceneKit但會不會是圖像(紋理)是不是在它的中心,但它的一個角落和旋轉,除非你的形象是完美的正方形,它可以用拉伸/平鋪一次旋轉渲染,這可能會產生奇怪的結果? –