我想使用 Qt(5.11 版)创建一个 3D 场景。
我想在近乎无限的球体上映射 JPG 图像,以支持 3D 场景的背景。
下面是相关的源代码:
Qt3DCore::QEntity *aGalaxyBackground = new Qt3DCore::QEntity(rootEntity);
Qt3DExtras::QSphereMesh* aGalaxyBackgroundSphereMesh = new Qt3DExtras::QSphereMesh();
aGalaxyBackgroundSphereMesh->setRadius(100);
aGalaxyBackground->addComponent(aGalaxyBackgroundSphereMesh);
Qt3DRender::QTextureLoader* aGalaxyBackgroundLoader = new Qt3DRender::QTextureLoader(aGalaxyBackground);
Qt3DExtras::QTextureMaterial* aGalaxyBackgroundMaterial = new Qt3DExtras::QTextureMaterial(aGalaxyBackground);
aGalaxyBackgroundLoader->setSource(QUrl::fromLocalFile("D:/Qt/starfield.jpg"));
aGalaxyBackgroundMaterial->setTexture(aGalaxyBackgroundLoader);
aGalaxyBackground->addComponent(aGalaxyBackgroundMaterial);
这种方法的问题在于 JPG 映射在球体的“外部”表面上。当相机在球体内部时,背景是不可见的。
这种方法有什么问题?