You stumbled upon a curious problem with filename handling in the .obj format, that isn’t well defined in the specification. I will discuss this with the Blender devs, perhaps the importer needs small adjustments to parse the file correctly under these specific circumstances. Since it worked in 2.79b it can be considered a regression.
TL;DR The handling for filenames with blanks isn’t well defined in the .obj format specification and Blender expected a different format than what was provided in your file.
The Problem
The .obj is a text format for storing 3D models. The format contains various attributes that describe the geometry of the model. Typically the .obj is accompanied by a .mtl which describes the material and textures applied to the model. In order to keep track which files belong together, the .obj may contain a mtllib attribute followed by the filename of the .mtl.
Usually the beginning of an .obj would look something like this:
# Blender v2.80 (sub 74) OBJ File: ''
# www.blender.org
mtllib test.mtl
o Cube
v 1.000000 1.000000 -1.000000
v 1.000000 -1.000000 -1.000000
In case of your file it is:
#
mtllib "tree stump1 original model.mtl"
usemtl tree_stump1_original_model
v 4.136163 -1.200306 -10.798826 0.113725 0.152941 0.141176
v 4.140683 -1.205297 -10.794383 0.117647 0.156863 0.145098
Notice that the filename contains quotations marks. This is causing the problem. The software you used to export this model quoted the filename to avoid confusion on how to interpret the filename. While this is common practice in other file formats the specification for .obj doesn’t mention quoting filenames and says specifically:
Blank space and blank lines can be freely added to the file to aid in formatting and readability.
Which can be interpreted as blanks in filenames can be stored as is, which is precisely what Blender does. Unfortunately Blender’s importer doesn’t expect the quotation marks in the filename therefore misinterpreting the correct filepath. This results in the aforementioned error in your question.
The Fix
Open the .obj file in a text editor of your choice an remove the quotes and save. It should look like this:
#
mtllib tree stump1 original model.mtl
usemtl tree_stump1_original_model
v 4.136163 -1.200306 -10.798826 0.113725 0.152941 0.141176
The file can now be imported by Blender.
You stumbled upon a curious problem with filename handling in the .obj format, that isn’t well defined in the specification. I will discuss this with the Blender devs, perhaps the importer needs small adjustments to parse the file correctly under these specific circumstances. Since it worked in 2.79b it can be considered a regression.
TL;DR The handling for filenames with blanks isn’t well defined in the .obj format specification and Blender expected a different format than what was provided in your file.
The Problem
The .obj is a text format for storing 3D models. The format contains various attributes that describe the geometry of the model. Typically the .obj is accompanied by a .mtl which describes the material and textures applied to the model. In order to keep track which files belong together, the .obj may contain a mtllib attribute followed by the filename of the .mtl.
Usually the beginning of an .obj would look something like this:
# Blender v2.80 (sub 74) OBJ File: ''
# www.blender.org
mtllib test.mtl
o Cube
v 1.000000 1.000000 -1.000000
v 1.000000 -1.000000 -1.000000
In case of your file it is:
#
mtllib "tree stump1 original model.mtl"
usemtl tree_stump1_original_model
v 4.136163 -1.200306 -10.798826 0.113725 0.152941 0.141176
v 4.140683 -1.205297 -10.794383 0.117647 0.156863 0.145098
Notice that the filename contains quotations marks. This is causing the problem. The software you used to export this model quoted the filename to avoid confusion on how to interpret the filename. While this is common practice in other file formats the specification for .obj doesn’t mention quoting filenames and says specifically:
Blank space and blank lines can be freely added to the file to aid in formatting and readability.
Which can be interpreted as blanks in filenames can be stored as is, which is precisely what Blender does. Unfortunately Blender’s importer doesn’t expect the quotation marks in the filename therefore misinterpreting the correct filepath. This results in the aforementioned error in your question.
The Fix
Open the .obj file in a text editor of your choice an remove the quotes and save. It should look like this:
#
mtllib tree stump1 original model.mtl
usemtl tree_stump1_original_model
v 4.136163 -1.200306 -10.798826 0.113725 0.152941 0.141176
The file can now be imported by Blender.
|
0 / 0 / 0 Регистрация: 16.11.2013 Сообщений: 70 |
|
|
1 |
|
|
16.10.2014, 08:25. Показов 13552. Ответов 3
Подскажите пожалуйста, почему Blender выдает ошибку при импорте объектов, допустим при попытке импорта объекта в формате (.obj) вылетает такая ошибка Миниатюры
__________________
0 |
|
Programming Эксперт 94731 / 64177 / 26122 Регистрация: 12.04.2006 Сообщений: 116,782 |
16.10.2014, 08:25 |
|
Ответы с готовыми решениями: Ошибка при импорте Ошибка при импорте БД Ошибка при импорте БД Ошибка при импорте 3 |
|
0 / 0 / 0 Регистрация: 16.11.2013 Сообщений: 70 |
|
|
16.10.2014, 11:14 [ТС] |
2 |
|
Вопрос отпал, сам разобрался.
0 |
|
Модератор 2886 / 1744 / 178 Регистрация: 19.02.2011 Сообщений: 6,434 |
|
|
16.10.2014, 11:26 |
3 |
|
И в чем была причина?
0 |
|
0 / 0 / 0 Регистрация: 07.12.2015 Сообщений: 1 |
|
|
07.12.2015, 19:06 |
4 |
|
Столкнулся с аналогичной проблемой, долго думал… потом опомнился))) Проблема проста — нечего было выпендриваться и указывать недопустимые символы в пути к файлу (т.е. путь в папку, в которой хранились файлы сохранений), апострофы и т.д. Обычное переименование папки лечит проблему мгновенно)
0 |
1. Check the obj file
In your case the obj is not exported correctly. Obj is a human readable file format it is easy to find the issue. You can check this by open up the file in a text editor of your choice (sublime, gedit…).
To check referenced materials go to these lines:
mtllib [external .mtl file name]usemtl [material name]
In your case mtllib line is correct, but usemtl is missing.
# OBJ FILE
...
f 3103/18700/18700 3081/18701/18700 3119/18702/18700
f 279/18703/18703 3118/18704/18703 274/18705/18703
f 265/18706/18706 3101/18707/18706 278/18708/18706
# usemtl material name (reference to the .mtl file)
usemtl MyMaterialName
You can find the material name in the mtl file in this line: newmtl [material name]
# MTL FILE
newmtl MyMaterialName
Ka 1.000 1.000 1.000 # white
Kd 1.000 1.000 1.000 # white
Ks 0.000 0.000 0.000 # black (off)
map_Ka myMap.jpg # ambient texture map
...
As last step check if the paths to the textures are correct:
map_Ka my-texture.jpg # points to texture in obj folder
map_Ka /home/user/images/my-texture.jpg # absolute path on unix
map_Ka C:\Users\user\images\my-texture.jpg # absolute path on windows
Make sure that the filenames of your textures are correct and there are no white spaces in the paths itself. Instead of pointing to the ‘absolute path’, you can also try Blenders Find Missing Files operator. For further information about all the possibilities of obj’s read this wikipedia article.
2. Apply the material
If the material is not applied to the imported object you can select it here:

3. Enable textures in the viewport
- If your textures are pink, see: Why are all the textures in my file pink?
- To display the texture in the viewport see: How to show textures in the 3D View editor?
Вопрос — Ответ
- В этой теме 1,016 ответов, 225 участников, последнее обновление 1 неделя, 3 дня назад сделано
stegosaukr.
Просмотр 15 сообщений — с 421 по 435 (из 1,017 всего)
←
1
2
3
…
28
29
30
…
66
67
68
→
-
Автор
Сообщения
-
06.12.2016 в 16:41
#13505
Пробегусь по темам форума детальнее, буду писать в нужную ветку. Ну а если не шибко много, то почему blender автоматически не находит текстуры? Или так и должно быть? У меня SKP модели сохраняю через obj. Надеялся, что должен находить.
06.12.2016 в 19:33
#13507
Поцитирую Википедию:
Формат файлов OBJ — это простой формат данных, который содержит только 3D геометрию, а именно, позицию каждой вершины, связь координат текстуры с вершиной, нормаль для каждой вершины, а также параметры, которые создают полигоны…
…OBJ является одним из самых популярных форматов передачи 3-х мерной компьютерной геометрии. Информация о внешнем виде объектов(материалы) передается в файлах-спутниках в формате MTL (Material Library). OBJ при необходимости ссылается на такой файл с помощью директивы
07.12.2016 в 01:31
#13532
Спасибо, Артем, за цитирование с википедии, но мне объяснять не требуется что такое obj)) Я в 3D графике давно, только не в blender (осваиваю для коллекции). Потому и знаю что при импорте obj программы автоматически закусывают MTL файлом и подгружаются вместе с геометрией и текстуры. Потому и рассчитывал что Blender так и сделает, но нет. Вопрос в том, можно ли blender заставить читать mtl файл? Или вручную указывать путь к текстурам каждого материала? Есть объекты с 330 материалами, вручную переназначать….. сами понимаете. Запекать надо.
07.12.2016 в 01:42
#13533
Нет, вручную точно не вариант. А вот насчет может или нет, тут я не знаю. Сам OBJ с MTL ни разу не экспортировал и не интересовался.
Хотя вот тут парни пишут что может, при чем все на автомате:
http://blender.stackexchange.com/questions/5110/how-to-import-a-mtl-fileМожет при импорте чекбокс какой нужно поставить?
07.12.2016 в 11:19
#13534
FBX вам не подходит?
Поддерживает больше функций. OBJ например морфы не поддерживает07.12.2016 в 11:45
#13535
FBX очень хорошо, и obj тоже — это 2 основных формата через которые я обмениваюсь моделями между sketchUp, vue, 3ds max. Но проблема оказалась в том что Blender все-таки читает MTL но самостоятельно понять что нужно наложить текстуры на меш автоматом не хочет, нужно дополнительно нажать эту кнопку. И как сказал Артем, чекбокс при импорте ставить не пришлось, его там не увидел, а вот после импорта — да.

07.12.2016 в 11:52
#13539
Это немного не то. 🙂 Это преобразование текстур из внутреннего Рендера в Cycles. А если импортировать файлы в режиме внутреннего рендера то текстура автоматически наложится?
07.12.2016 в 12:03
#13540
Когда выставляешь Blender render и режим отображения текстур то все становится черным (сразу после импорта в режиме solid показываются цвета полигонов). А сами материалы в превью с текстурами. Как ни пытался найти способ чтобы текстуры отобразились в окне 3Д вида — не получилось. После конверта в Cycles все как по нотам.
07.12.2016 в 12:05
#13541
Интересно. Подождём, может, гуру что подскажут.
07.12.2016 в 12:19
#13542
Гуру не требуется, нашел. Тот же эффект с отображением текстур ставится галочкой Shadeless в панельке Shading. Очень странно что галочку ставить надо после импорта)
11.12.2016 в 00:16
#13572

16.12.2016 в 01:02
#13612
Скажите пожалуйста, интересуюсь вот, а реально ли в блендере сделать гигантские сцены с миллиардами полигонов с лесом, автопарком и тд, разумеется, геометрия через линки и тп. Или профиль блендера немного скромнее по объемам? Вот пример:

31.12.2016 в 15:02
#13794
(знаю тупой вопрос но всёже) можноли какнибуть вопще зделать таково (https://sketchfab.com/models/b68f002ce9b942cea2fbbf2446ffdcf8) милаху азриэля
06.01.2017 в 19:46
#13824
Помогите, может у кого-нибудь была такая ошибка. Пытаюсь рендерить на видеокарте(r9 270) выдает ошибку «opencl build failed errors in console». В консоле пишет вот:

06.01.2017 в 20:12
#13825
Судя по всему, это баг последней версии Blender:
https://developer.blender.org/T49897Нужно откатиться назад, либо скачать daily build.
-
Автор
Сообщения
Просмотр 15 сообщений — с 421 по 435 (из 1,017 всего)
←
1
2
3
…
28
29
30
…
66
67
68
→
- Для ответа в этой теме необходимо авторизоваться.
Авторизация



Рубрики
- Анимация и риггинг
- Загрузки
- Материалы и текстуры
- Моделирование и скульптинг
- Новости и обзоры
- Основы Blender
- Рендеринг и освещение
- Симуляция и частицы
- Скриптинг на Python
- Создание игр в Blender



Comment Actions
getting the following:
( 0.0001 sec | 0.0001 sec) Importing OBJ '/home/philippo/Downloads/Blender Bugtracker/T60387/OBJ.obj'...
( 0.0005 sec | 0.0000 sec) Parsing OBJ file...
( 3.5129 sec | 3.5121 sec) Done, loading materials and images...
3.5140 sec | 3.5132 sec) Done, building geometries (verts:254941 faces:274719 materials: 1 smoothgroups:0) ...
Error: Array length mismatch (expected 11097, got 11094)
Traceback (most recent call last):
File "/bin/2.80/scripts/addons/io_scene_obj/__init__.py", line 145, in execute
return import_obj.load(context, **keywords)
File "/bin/2.80/scripts/addons/io_scene_obj/import_obj.py", line 1201, in load
dataname,
File "/bin/2.80/scripts/addons/io_scene_obj/import_obj.py", line 642, in create_mesh
me.vertices.foreach_set("co", unpack_list(verts_loc))
RuntimeError: internal error setting the array
Can confirm the vert mismatch. Can also confirm this is coming in without errors in 2.79…
Will confirm for now, @Bastien Montagne (mont29) might know right away? (feel free to throw back at me and I will investigate more…)
[This might not be a bug but a broken OBJ though…]
- −
В Агисофте была создана модель памятника, включая текстуры. Есть необходимость провести небольшую реконструкцию модели (речь идет о рогах). Для этого импортировал модель.obj в Блендер. Но вижу только саму модель без текстуры. Что делать? Прошу помощи.
Поиск решения проблемы в интернете успеха не принес. Может всесто obj надо было работать с иным форматом?
Заранее благодарю за любую помощь
РS Здесь в файлообменнике уложена модель памятника. Это, если кто захочет посмотреть на него
https://www.uschovna.cz/zasilka/ZNYUG6BRSJ4NIGJ3-4MB/
- SerKol
- Сообщения: 9
- −
trideshnik » 21.06.2020, 17:34
Не совсем понимаю, в чем заключается проблема, у меня файл с текстурами, да и в архиве вижу еще 4 штуки, можно назначить
PS На дроне облетал? прикольно
- trideshnik


- Сообщения: 456

- −
SerKol » 21.06.2020, 20:04
Проблема в том, что не вижу текстуру. Все вроде далаю правильно, а текстуры нет.
Частенько случается так, что бьюсь как рыба об лед и нечего не получается, просмотрю интернет и тоже нечего, ютуб, уроки и т.п. Потом, когда уже окончатльно опускаются руки, пишу в форум и взываю о помощи и сразу же по отправлении сообщения все получается. Вот и в этот раз произошло тоже самое. Еще не знаю как и почему, но текстура появилась.
Да, облетал на дроне. Пытаюсь наладить создание 3д моделей исторических зданий. А пока набиваю руку на мелких объектах.
Итак, модель создал. Качество для начала удовлетворительное, но некоторые детали требуют доработки, например, рога. Агисофт этого не умеет. Вот и пытаюсь дорабарывать модель в Блендере. С геометрией вроде бы справляюсь, скоро встанет вопрос текстурирования новых (или исправленных) деталей. А вот тут я ни в зуб ногой. Можете помочь советом?
- SerKol
- Сообщения: 9
- 1
trideshnik » 21.06.2020, 20:59
Можно загрузить исправленный мешь в агисофт и заново просчитать текстуры для новой геометрии уже с хорошей топологией, ювишкой и тд, главное только чтобы координаты совпадали и всякие вращения, скейлы и тд, т к при выходе из агисофта имеем мешь который находится фиг знает где с рандомными осями, нужно чтобы загружаемый также находился в этом месте и совпадал со старым.
- trideshnik


- Сообщения: 456

- −
SerKol » 21.06.2020, 22:40
Мне тоже пришел в голову этот вариант. Только в Блендер модель попадает черт знает в какое место и с непонятной ориентацией. Приходится модель тянуть в центр и всяко разно крутить. Похоже, что вернуть исправленный мешь в Агисофт не получится. По крайней мере, не знаю как.
Существует способ как решить эту проблему?
- SerKol
- Сообщения: 9
- 1
trideshnik » 22.06.2020, 07:13
Не помню, есть ли в самом фотоскане инструменты для этого, всякие осевые стрелочки, которые привязываются к маркерам, должны наверное быть
Если нет, то можно в блене, после импорта из агисофта, сразу создать зависимую копию объекта, Ald+D, ее переместить в центр координат правильно развернуть, сделать все что хочешь, работает как: редактируешь один объект — редактируется и второй, затем удалить копию, и будем иметь измененный оригинал, находящийся в изначальном положении
И таки да, это не совсем рационально по использованию памяти во время работы, скорее всего есть менее костыльные способы, это так, что первым пришло в голову
- trideshnik


- Сообщения: 456

- 1
cyberdime » 22.06.2020, 14:44
Там у тебя каша с именами текстур. Если твоя задача увидеть текстуры на объекте в Блендере сразу после импорта, то сделай следующее.
1. Изменить имена текстур на те, что просит Блендер
2. Внести эти же имена в .mtl-файл (не забыть убрать кавычки). См. картинку
PS: Кстати, это я про 2.79. В 2.83 eevee и cycles все видят и без корректировок.
- cyberdime

- Сообщения: 387

- −
SerKol » 22.06.2020, 20:14
trideshnik,
Интересный вариант. Обязательно попробую
Спасибо за помощь
Добавлено спустя 5 минут 9 секунд:
cyberdime,
«Кашу» создал Агисофт, я тут ни причем. Честно говоря, не пойму алгоритм создания имен, которые требует Блендер.
Наверное, легче будет перейти на 2.83
Найти такие решения все равно что искать иголку в стоге сена… Спасибо за помощь
- SerKol
- Сообщения: 9
- −
SerKol » 25.06.2020, 16:56
Итак:
— поставил блендер 2.83 и тектура теперь сама открывается
— создал зависимую копию, поработал с моделью, экспортировал OBJ
— импортировал OBJ в Агисофт и снова построил текстуру
Все вроде хорошо, но текстура на рога не села (рога делал практически в свободном полете и их геометрия не совпала с оригиналом)
Остается последняя возможность — поправить тектуру в Блендере. Вот только боюсь, что с UV разверткой такого сложного объекта будут большие проблемы
Может, кто подскажет как по простому построить текстуру на рогах и карточки вымазать
Здесь ссылка на файлообменник с последним вариантом модели
www.uschovna.cz/zasilka/ZQIJAIDHA78KYXFC-SLH
- SerKol
- Сообщения: 9
Вернуться в Общие вопросы
Кто сейчас на форуме
Сейчас этот раздел просматривают: 1 гость