问题标签 [scncamera]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ios - SceneKit - 定位 SCNCamera 并允许对象旋转
我即将完成我在 SceneKit 中的第一个项目,但我在最后几个步骤中苦苦挣扎。通过分享一个显示我当前场景的 Xcode 模拟器的短截屏视频,可能最容易解释我的进度。
正如您在屏幕截图中看到的那样,我的项目由三个元素组成(这都是在代码中完成的,我不导入任何外部资产):
- 外框(通过每个角的六个 SCNBox 对象定义)
- 在太阳内部(通过 SCNTube 对象为圆和每个“射线”的 UIBezierPath 对象定义)
- 摄像头位置
根据反馈,我已将代码提交到 GitHub。
现在允许相机旋转,如屏幕截图所示,但相机和物体的旋转中心没有对齐,因此它看起来是离轴旋转。
这是我想去的地方:
- 正确的相机位置,使组合框和太阳直接位于相机前面,填充屏幕
- 保持太阳的位置是固定的(我猜已经完成了)
- 允许盒子根据触摸输入在 x、y 和 z 方向上自由旋转 - 因此用户可以“轻弹”盒子并观看它围绕太阳翻转和旋转
代码结构很简单:
关于相机位置:
但我发现,尽管使用随机的 cameraNode.position 和 cameraNode.rotation 值,相机视图似乎并没有改变。
我的问题- 任何帮助将不胜感激:
- 关于重新定位相机的建议(我做错了什么?!) - 一旦它在正确的位置,我可以轻松设置“gameView.allowsCameraControl = false”
- 关于如何使盒子绕太阳轴旋转的建议(当太阳保持固定时)
- 伸展目标!任何关于材质和光照的一般“查看本教程”类型信息,并将此视图嵌入到 SwiftUI 视图中
谢谢!
scenekit - DefaultCameraController 上的 SceneKit 动画
并原谅我在这里的无知。我是 SceneKit 的新手。我试图让我的默认相机控制器以一种平滑的“平移运动”进行动画处理。我正在尝试使用类似的东西:
当SCNView
进入视图控制器时。问题是这个动作会跳转,我希望它动画,从它的当前视角过渡到它的新位置,在这个位置表示空间中两个点之间的过渡帧。
如果可能的话,我也希望这种情况发生defaultCameraController
。
谢谢!
label - Scenekit - 以屏幕像素计算投影球体的半径以始终在节点下方定位标签
如何计算以屏幕像素为单位的投影球体的半径以将标签定位在我的 SCNNode 下方?目前我将标签放在节点的中心。我的 SCNCamera 有 usesOrthographicProjection = false,因为用户可以在空间中移动相机,并且其他对象应该看起来更小。
我试图将boundingBox的角投影到视图中,但是如果我旋转相机并从上方看例如,文本会向上移动到中心。之后,我尝试用半径距离投影另一个点并计算像素差。但同样,如果我改变相机位置,距离当然也会改变。
我正在寻求帮助来计算以屏幕像素为单位的球体半径。我认为相机的 projectionTransform 属性在某种程度上是可能的。这篇文章中的内容:屏幕空间中投影球体的半径但不幸的是,我不明白如何使用 SCNCamera 属性来做到这一点。任何帮助表示赞赏!