簡體   English   中英

SCNNode 根據位置顯示更多/更少扭曲(SceneKit)

[英]SCNNode appears more/less warped depending on position (SceneKit)

我有一個 SceneKit 場景,其中相機俯視一個在平面上滾動的單個球體。

相機具有默認配置,位於SCNVector3(0.0, 0.0, 100.0)

球體從屏幕中心開始。 此時,球體看起來很正常,如此屏幕截圖所示。 在此處輸入圖像描述

但是它移動的離中心越遠,它看起來越扭曲/拉伸。 如此屏幕截圖所示,當球體靠近屏幕邊緣時,它會出現扭曲(看起來像雞蛋)。 在此處輸入圖像描述

球體配置如下:

let ballNode = SCNNode()
let sphereGeometry = SCNSphere(radius: MainData.screenWidth*0.005)
let targetMaterial = SCNMaterial()

targetMaterial.diffuse.contents = UIColor.red
sphereGeometry.materials = [targetMaterial]
sphereGeometry.firstMaterial?.diffuse.contents = targetMaterial
ballNode.geometry = sphereGeometry
ballNode.geometry?.firstMaterial?.lightingModel = .phong
ballNode.position = SCNVector3(0.0,0.0,20.0)
        
ballNode.physicsBody = SCNPhysicsBody(type: SCNPhysicsBodyType.dynamic, shape: SCNPhysicsShape.init(node: ballNode))
ballNode.physicsBody?.categoryBitMask = CollisionTypes.dynamicObjects
ballNode.physicsBody?.collisionBitMask = CollisionTypes.staticObjects
ballNode.physicsBody?.contactTestBitMask = CollisionTypes.nothing
ballNode.physicsBody?.isAffectedByGravity = true
ballNode.physicsBody?.allowsResting = false
        
scnView.scene?.rootNode.addChildNode(ballNode)

“平面”實際上只是一個SCNBox節點,配置如下:

let platform = SCNNode()
let platformGeometry = SCNBox(width: MainData.screenWidth, height: MainData.screenHeight, length: 2.0, chamferRadius: 0.0)

platform.geometry = platformGeometry

 platform.physicsBody = SCNPhysicsBody(type: SCNPhysicsBodyType.static, shape: SCNPhysicsShape.init(node: platform))
platform.physicsBody?.categoryBitMask = CollisionTypes.staticObjects
platform.physicsBody?.collisionBitMask = CollisionTypes.dynamicObjects
platform.physicsBody?.contactTestBitMask = CollisionTypes.nothing
platform.physicsBody?.isAffectedByGravity = false
platform.physicsBody?.allowsResting = true

scnView.scene?.rootNode.addChildNode(platform)

問題:為什么球體離場景/屏幕中心越遠,就會出現扭曲(像雞蛋一樣)?

謝謝你的幫助!

我真的不明白為什么,但添加以下解決了這個問題:

cameraNode.camera?.fieldOfView = 20.0

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM