Использование 3d obj-файлов и текстур в Ursina для python

#python #panda3d

#python #panda3d

Вопрос:

Я пытаюсь загрузить 3D-объект в программу, написанную с помощью Ursina. Я могу загрузить 3D-файл, и я могу загрузить текстуры, но они не будут загружаться вместе. Я уверен, что есть что-то, что я неправильно понимаю в 3D-файле, поскольку я довольно новичок в использовании 3D-файлов. Когда я загружаю obj-файл, он имеет правильную форму, но он просто черный без текстуры. Это выглядит 2d. Я могу загрузить текстуру в куб, но это неправильная форма. Как я могу объединить их, чтобы они отображали правильную текстуру на правильном 3D-объекте? Это мой код:

 from ursina import *


app = Ursina()

cube = Entity(model = 'toybear.obj', color = color.white, scale=(.02,.02,.02), texture='toybearcolor')
app.run()
 

Комментарии:

1. Я не смог добавить тег ursina, поскольку он новый, и у меня нет репутации, но он создан на основе Panda3D, поэтому я пометил его.

Ответ №1:

Моя первая мысль заключается в том, что вы не должны делить color = color.белый и текстура = ‘toybearcolor’ одновременно. Если это не устраняет проблему, то убедитесь, что import ursina объявлен выше из ursina import * Если проблема все еще заключается в том, что это должно быть проблемой с используемой UV-текстурой, потому что, помимо упомянутых выше вещей, ваш код в порядке.

РЕДАКТИРОВАТЬ: я не эксперт по развертыванию UV, но если это проблема, есть несколько способов сделать это. Если вам нужны пользовательские текстуры, вам нужно зайти в Blender, отметить швы на модели и сохранить текстуру в файле .png, как в этом руководстве https://www.youtube.com/watch?v=xPoxqOcUzNQamp;t=560s

Вы также можете выполнять то, что называется выпеканием текстур в Blender, например https://www.youtube.com/watch?v=c2ut0Trcdi0

В качестве альтернативы, иногда люди, создающие игровые ресурсы, оставляют UV-текстуру в виде файла .png для загрузки, как этот художник здесь https://opengameart.org/content/low-poly-mushrooms Так что всегда обращайте внимание на них

Комментарии:

1. Как мне получить подходящую UV-текстуру? Вот с чем у меня проблема. Он отлично работает на кубе.

2. Также я уже пытался удалить цвет. Он по-прежнему не работает должным образом, и на самом деле он работает даже с цветом и текстурой, если это куб.

3. Подождите, так вы используете текстуру для куба на игрушечном медведе? Имеет ли игрушечный медведь ту же модель, что и базовый куб ursina?

4. Я определенно не эксперт по 3D-моделям, и я думаю, что это проблема. Я собираюсь внести изменения в blender, потому что я думаю, что это моя проблема. Спасибо!

5. Похоже, что это определенно проблема с 3D-файлом, и файл, который вы связали, работал после преобразования его в .obj в blender. Большое спасибо!