我有一个Qt3D场景,其中只有一个3D对象。我想将场景(摄像机)的旋转中心设置为这个3D对象的中心。当前,当使用鼠标旋转场景时,3D模型会从视图中消失。
发布于 2019-07-30 15:51:08
还有一个OrbitCameraController,它的目的是查看某个位置。您可以让摄影机位置跟踪对象的位置。
QML示例代码:
Camera {
id: myCamera
viewCenter: YOUROBJECTPOSITION
}
OrbitCameraController { camera: myCamera }
// FirstPersonCameraController { camera: myCamera }我没有像你那样使用pyqt。希望这能有所帮助。
发布于 2019-08-01 14:20:24
我正在使用一个带有自定义3D模型的网格作为“源”。qt文档并没有真正指出将返回其3D矢量位置的网格对象的任何属性。
如果在场景中导入obj文件,网格的原点将放置在场景的原点。如果你没有变换它,原点就是你想让摄影机看到的地方。
如果您使用了转换,则使用新位置来查看。
Qt3D使用了一个实体组件系统(Entitiy System),基本上,你可以创建一个实体,然后像网格一样添加组件,然后在你的情况下进行变换。这就是网格没有反映其位置的属性的原因。transform组件保存该信息。
我建议您在Qt文档中阅读以下内容:Qt3D Architecture
上面的解决方案只是在你有较小的物体并且你的相机足够远的情况下使用。但是如果你导入一个更大的网格fi。就像宇宙飞船一样,你可能需要得到你想要查看的地点的坐标。您可以通过使用对象拾取器来获取这些坐标。
https://stackoverflow.com/questions/57225963
复制相似问题