如何使用jetpack compose显示3D模型?

问题描述 投票:0回答:1

我想在应用程序中显示一个 3D 对象,您可以通过在

jetpack
撰写中旋转来看到该对象的所有侧面,但我找不到源代码。

谁能展示一下制作代码吗?

我读过一些有关

sceneform
的内容,但没有用于
jetpack
撰写的文档或库。

这是我发现的:

@Composable
fun MySceneformView(model: Model) {
    SceneformModel(
        model = model,
        scale = 1.0f,
        rotation = Quaternion.identity(),
        position = Vector3(0.0f, 0.0f, 0.0f)
    )
}

我不知道这是否有效。

kotlin android-jetpack-compose arcore sceneform 3d-model
1个回答
0
投票

在 Jetpack Compose 应用程序中加载 3D 模型

为了将 3D 模型加载到基于 Jetpack Compose UI 构建的 AR/VR Android 应用程序中,最好使用 Thomas Gorisse 的 SceneView 库。要实现 AR/VR SceneView,请将以下代码粘贴到

build.gradle.kts
(模块:app)文件中。

dependencies {      // Virtual Reality View
    implementation("io.github.sceneview:sceneview:2.2.1")
}

dependencies {      // Augmented Reality View
    implementation("io.github.sceneview:arsceneview:2.2.1")
}

使用 SceneView 时,

.glb
(GL 传输格式二进制文件)模型是理想的选择。
.glb
.gltf
格式的二进制版本,它可以在单个压缩文件中包含多边形几何、照明、材质和动画的层次结构。您可以在
.glb
上找到许多
sketchfab.com
型号。

加载模型的 Kotlin 代码就这么简单:

class MainActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        enableEdgeToEdge()
        setContent {
            ARSceneViewTheme {
                val engine = rememberEngine()
                val modelLoader = rememberModelLoader(engine)
                val cameraNode = rememberCameraNode(engine)
                cameraNode.position = Position(z = 2.5f)

                Scene(
                    modifier = Modifier.fillMaxSize(),
                    engine = engine,
                    modelLoader = modelLoader,
                    cameraNode = cameraNode,
                    childNodes = listOf(
                        ModelNode(
                            modelInstance = modelLoader
                                .createModelInstance("pigeon.glb"),
                            scaleToUnits = 1.25f
                        )
                    )
                )
            }
        }
    }
}

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.