SceneKit 仅部分显示了一个大的旋转 SCNPlane

托尼

我尝试创建一个大的 SCNPlane 来覆盖整个屏幕。测试代码如下所示,其中一个红色框(尺寸 1x1x1)位于蓝色平面(尺寸 200 x200)的中间。它们都在中心点 (0, 0, 0) 并且相机距离该点仅 +5。

当平面节点面向相机(大角度)时,效果很好(图1),左右两边都可以覆盖整个屏幕的左右两边。但是,当我将飞机旋转到一个小角度(使用相机)时,只显示了一小部分。在图 2 中,飞机的左侧更靠近相机。左侧应该足够宽(100 的一侧)以覆盖屏幕的所有左侧,但事实并非如此。将飞机的大小增加到 10 倍(到 2000 倍)并没有帮助。

关于问题和解决方案的任何想法?谢谢

override func viewDidLoad() {
    super.viewDidLoad()

    let scnView = self.view as! SCNView
    scnView.backgroundColor = UIColor.darkGray
    scnView.autoenablesDefaultLighting = true
    scnView.allowsCameraControl = true

    scnView.scene = SCNScene()
    let cameraNode = SCNNode()
    cameraNode.camera = SCNCamera()
    scnView.scene?.rootNode.addChildNode(cameraNode)
    cameraNode.position = SCNVector3(x: 0, y: 0, z: 5)


    let theBox = SCNBox(width: 1, height: 1, length: 1, chamferRadius: 0)
    theBox.firstMaterial?.diffuse.contents = UIColor.red

    let theBoxNode = SCNNode(geometry: theBox)
    theBoxNode.position = SCNVector3(0, 0, 0)
    scnView.scene?.rootNode.addChildNode(theBoxNode)

    let plane = SCNPlane(width: 200, height: 200)
    plane.firstMaterial?.diffuse.contents = UIColor.blue
    let planeNode = SCNNode(geometry: plane)
    scnView.scene?.rootNode.addChildNode(planeNode)
}

面对相机的蓝色平面

蓝色飞机旋转到一个小角度到相机。 左侧更近,但没有覆盖整个屏幕左侧

管理

您可能需要检查相机的zNear属性以确保飞机没有被剪裁。您可以在此处找到剪裁平面的说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

简单的SceneKit场景显示黑屏,而不是SCNPlane

来自分类Dev

在 ARKit 体验中计算旋转的 SCNPlane 的 4 个顶点位置

来自分类Dev

在SceneKit中旋转节点

来自分类Dev

SceneKit中的相机旋转

来自分类Dev

SceneKit 平面旋转

来自分类Dev

Swift Scenekit-多次旋转

来自分类Dev

SceneKit节点旋转是否累积

来自分类Dev

SceneKit –旋转和设置SCNNode的动画

来自分类Dev

Scenekit Physics-防止碰撞时旋转

来自分类Dev

在Scenekit中进行变换和旋转

来自分类Dev

Scenekit Physics-防止碰撞时旋转

来自分类Dev

SceneKit-无法正确显示纹理

来自分类Dev

SceneKit相机应显示多余的空间

来自分类Dev

如何计算SCNPlane的法线向量?

来自分类Dev

SCNPlane的高度未设置动画

来自分类Dev

SceneKit 两个节点不碰撞

来自分类Dev

Scenekit的SCNAction仅执行一次操作

来自分类Dev

在 Scenekit 中加载大尺寸 .obj 模型。如何在scenekit中自动调整模型?

来自分类Dev

SceneKit –在同一SCNView中显示多个场景

来自分类Dev

SceneKit –在同一SCNView中显示多个场景

来自分类Dev

围绕其中心旋转SCNText节点(Swift-Scenekit)

来自分类Dev

使用SceneKit在3D空间中旋转SCNode对象

来自分类Dev

旋转后如何获取SceneKit中子节点的实际位置?

来自分类Dev

具有多个UIPanGestureRecognizer的SceneKit多维数据集旋转

来自分类Dev

围绕其中心旋转SCNText节点(Swift-Scenekit)

来自分类Dev

旋转节点,使其指向SceneKit中的特定位置

来自分类Dev

在SceneKit中以速度旋转框/摄像机

来自分类Dev

SceneKit SCNAction.run和旋转不起作用

来自分类Dev

无法将多个图像用于SCNPlane数组