#reactjs #three.js #gltf #react-three-fiber
#reactjs #three.js #gltf #react-three-fiber
Вопрос:
Я загрузил набор файлов с сайта и экспортировал файлы glb, gltf и mtl в blender. Я могу заставить файл glb или gltf отображаться в сцене react-three-fiber, но я не уверен, как правильно отобразить текстуры. Я наткнулся на пару демонстраций, но они кажутся старыми и что бы не работало.
Вот как я загружаю файл.
import desk from '../../assets/desk.gltf'; // or .glb file
const [gltf, set] = useState();
useMemo(() => new GLTFLoader().load(desk, set), []);
return gltf ? <primitive object={gltf.scene} scale={[0.05, 0.05, 0.05]} position={[0,0,1]}
rotation={[Math.PI/2,Math.PI,0]}/> : null
Ответ №1:
Боюсь, вы смешиваете две темы. MTL
файлы относятся к OBJ
формату. Это означает, что визуальные аспекты геометрии активов хранятся в одном или нескольких внешних MTL
файлах.
glTF
для этого нет отдельных файлов. Определения материалов определяются непосредственно в манифесте glTF
JSON. Таким образом, загрузка фактического ресурса glTF достаточна для загрузки определений материалов.
Комментарии:
1. ОК. Это имеет смысл. У меня возникла проблема, когда каждый файл, который я загружаю с разных сайтов, отображается серым цветом без текстуры. Когда я импортирую их в Blender, происходит то же самое, даже если эти файлы присутствуют в папке.
2. При использовании glTF лучше всего работать с
glb
файлами, поскольку все ресурсы (JSON-манифест glTF, двоичные файлы, текстуры) упакованы в один двоичный архив.3. Окно просмотра макета по умолчанию в Blender изначально отображается серым цветом без текстуры. Вы должны нажать «предварительный просмотр материала» или перейти на панель «Затенение», чтобы увидеть текстуры в Blender.