android React原生3D对象渲染

lawou6xi  于 2022-12-16  发布在  Android
关注(0)|答案(1)|浏览(151)

我刚接触react原生开发,我面临着一个相当大的问题。
我正在编写一个应用程序,通过BLE连接和接收数据。使用这些应用程序,我必须制作一个3D元素的动画。
我已经正确完成了BLE连接的所有部分,现在我在3D部分遇到了问题。
我使用react native**,但没有expo**,因为我了解到expo与BLE PLX包不兼容。现在我看到所有包都带有expo-cli和three.js。我下载了一个免费的3D model.obj,但当我尝试请求它时,应用程序找不到该文件。
这是我的\src\model\three.js

import { GLView } from "expo-gl";
import { View } from "react-native";
import { loadObjAsync, Renderer } from "expo-three";
import { Scene } from "three";

export const Three = (props) => {
  async function onContextCreate(gl) {
    const renderer = new Renderer({gl});
    renderer.setSize(200, 200);

    const scene = new Scene();

    const obj = await loadObjAsync({
      asset: require('./model.obj')
    });

    scene.add(obj);

    // Setup an animation loop
    const render = () => {
      renderer.render(scene, camera);
      gl.endFrameEXP();
    };

    render();
  }

  return (
    <View>
      <GLView onContextCreate={onContextCreate} />
    </View>
  );
};

在同一个文件夹中,我有model.obj(\src\model\model.obj)
这是我在package.json中添加的依赖项

"base64-arraybuffer": "^1.0.1",
"expo-gl": "^10.4.2",
"expo-gl-cpp": "^10.4.1",
"expo-three": "^5.7.0",
"react-native-unimodules": "^0.14.6",
"three": "^0.127.0"


这就是我得到的

Error: Unable to resolve module ./model.obj from D:\projects\AppName\src\model\three.js:

None of these files exist:
  * src\model\model.obj(.native|.android.jsx|.native.jsx|.jsx|.android.js|.native.js|.js|.android.ts|.native.ts|.ts|.android.json|.native.json|.json)
  * src\model\model.obj\index(.native|.android.jsx|.native.jsx|.jsx|.android.js|.native.js|.js|.android.ts|.native.ts|.ts|.android.json|.native.json|.json)

我一直在关注这条评论,但没有成功
救命啊!

dced5bon

dced5bon1#

我终于想出了解决这个问题的办法。
我已经开始使用与React Native(https://docs.pmnd.rs/react-three-fiber/tutorials/v8-migration-guide)兼容的React-three-fiber。
我用gltfjsx转换jsx中的3D模型,然后通过javascript建模。
谢谢

相关问题