当前位置: 首页 > 知识库问答 >
问题:

正在尝试从中的mongodb数据库加载gltf链路

邢和光
2023-03-14

我一直试图从数据库加载我的gltf文件,但它不起作用。我尝试为模型创建单独的页面。但是仍然没有结果。在线搜索解决方案很多,但没有成功。请帮忙。代码如下:

import React, { useState, useEffect } from 'react';
import { useDispatch, useSelector } from 'react-redux'

import { Canvas } from "@react-three/fiber";
import { useGLTF } from '@react-three/drei'
import { useLoader } from "@react-three/fiber";
import { Environment, OrbitControls } from "@react-three/drei";
import { GLTFLoader } from "three/examples/jsm/loaders/GLTFLoader";
import { Suspense } from "react";

import {
  listModelDetails
} from '../actions/ModelActions'


  const Model = () => {
    const gltf = useLoader(GLTFLoader, `/${model.content}`);
    return <primitive object={gltf} scale={0.005} />;
  }


export default function ModelScreen({ history, match }) {

const dispatch = useDispatch()

const ModelDetails = useSelector((state) => state.ModelDetails)
const { error, model } = ModelDetails


useEffect(() => {

  if (!course._id || model._id !== match.params.id) {
    dispatch(listModelDetails(match.params.id))
    
  }
}, [dispatch, match])

  return (
    <>
      <div style={{width: '70vw', height: '70vh'}}>
        <Canvas>
          <Suspense>
            <Model />
            <OrbitControls />
            <Environment preset="sunset" background />
          </Suspense>
        </Canvas>
      </div>  
    </>
  );
}

共有1个答案

李兴安
2023-03-14

在主屏幕上。js(其中有模型列表):

 <>
          <h1>Top Courses</h1>
          <Row>
            {courses.map((course) => (
              <Col key={course._id} xs={6} md={6} lg={4} xl={3} height='100'>
                <Course course={course} />
              </Col>
            ))}  
          </Row>            
        </>

在ModelScreen中。js(我们实际加载模型的位置):

const Model = ({ url }) => {
  const gltf = useLoader(GLTFLoader, `${url}`);
  return <primitive object={gltf.scene} scale={0.4} />;
};

 return (
    <>
      <div style={{width: '70vw', height: '70vh'}}>
        <Canvas>
          <Suspense fallback={null}>
            <Model url={course.content} />
            <OrbitControls autoRotate />
            <Environment preset="sunset" background />
          </Suspense>
        </Canvas>
      </div>
      <Meta title={course.name} />
      <h2>{course.name}</h2>
      <br />
      <br />
      <h3>Description:</h3>
      <h3>{course.description}</h3>
    </>
    
  );
}

当然有一些我遗漏了。但我认为你做起来更容易!祝你好运

 类似资料:
  • 我做错了什么? 如果我将。so文件放入jboss/bin文件夹中,那么JVM就会在JNI调用中崩溃。

  • 在mysql工作台中,我试图执行 这是一个查询,但是我收到了这个消息 错误代码:1175。您使用的是安全更新模式,并且您试图更新一个没有使用键列禁用安全模式的表,请在“首选项”中切换该选项-

  • 我正在研究一个血液供应链的模拟,并创建和导入了一些表来管理各种代理群体的主数据,如血液处理中心、检测中心、医院等。这些表包含所述代理的名称和lat/lon坐标。 这些表都是MySQL数据库的一部分,我用它的接口连接到AnyLogic,正如我所说,导入了这些表。到目前为止还不错,但是,当我想为每个数据库条目创建代理群体并将代理的参数分配到表的各个字段时,AnyLogic不能将名称(在MySQL中为V

  • 问题内容: JDBC有问题。 我有以下代码: 我收到以下错误: 我的连接字符串是 jdbc:oracle:oci:@..... Oracle版本为11g。 从错误消息看来,似乎缺少了一些东西,但是: 当我从同一个blob列(带有blob.getBytes)读取时,一切正常。 即时客户端的DLL位于库路径中(正确)。 这是我的类路径中Oracle JDBC JAR的清单: 问题答案: 看起来即使驱动

  • 用于载入glTF 2.0资源的加载器。 glTF(gl传输格式)是一种开放格式的规范 (open format specification), 用于更高效地传输、加载3D内容。该类文件以JSON(.glft)格式或二进制(.glb)格式提供, 外部文件存储贴图(.jpg、.png)和额外的二进制数据(.bin)。一个glTF组件可传输一个或多个场景, 包括网格、材质、贴图、蒙皮、骨架、变形目标、动

  • 我有三个类具有类层次结构 > < Li > < p > < code > parent class . Java 具有用于此ChildClass1的属性,它还使用来自父类的一些常见属性 < code>ChildClass2扩展ParentClass 具有用于此子类2的属性,它还使用父类中的一些公共属性 所有这些属性都包含在两列表中 现在我不确定如何从Hibernate继承加载它们? 为愚蠢的问题道