Экспорт зd модели для прокрутки на страницах с 3d вьювером.
-
Добрый день всем!
Столкнулся с такой проблемой, не корректно отображается 3д модель на сайтах, с движками для просмотра 3д моделей. Независимо от формата, или glTF, или glb, или fbx, результат один и тот-же, то есть хреновый... Складывается впечатление, что Синька не способна нормально и корректно экспортировать данные форматы. Еще более менее с форматом fbx, если модель без текстур в материале (то есть в материале применяются только разные цвета) то еще нормально смотрится. Стоит подгрузить текстуру в материал, и при просмотре она не отображается уже...
А glTF и glb вообще ничего не отображают, вместо реальных цветов показывают один сплошной блеск (хром), а вместо текстур дырки, особенно если они с альфой...
Что делать, кто знает, может есть какой-то плагин?Извиняюсь перед модератором но не смог понять, для какой области форума подходит моя проблема?
-
Привет
Такие темы можно размещать в общей категории Cinema 4D (уже перенёс) или «Сторонние рендеры».
У меня была такая же проблема и тогда она касалась именно экспорта Синемы, а не WebGL рендера.Какую версию Синемы вы используете для экспорта в glTF?
Потому что когда полтора года назад у меня была аналогичная проблема, то я использовал R21 и специальный плагин для экспота в glTF. И, видимо, он был не совершенен. Потому что в итоге я выяснил, что что-то не так было именно с экспортом. После этого я успешно использовал Blender. А встроенный экспорт в новой Синеме я ещё не имел возможности проверить.Вот обсуждение этой темы (англ.): https://discourse.threejs.org/t/cant-apply-material-to-loaded-model-nothing-helps/10691
-
Пользователь @aleksei написал в Экспорт зd модели для прокрутки на страницах с 3d вьювером.:
https://discourse.threejs.org/t/cant-apply-material-to-loaded-model-nothing-helps/10691
Спасибо! Значит руки у меня правильные...
Я пробовал ранее плагин по твоей ссылки от Maxon, но он криво работает, пробовал и в версии 21 и нативным экспортом из 23, результат один и тот же... :(
Буду пробовать Блендер, но пока еще не знаю как сие осуществить.... -
@avre001 Блендер не страшный. Я тоже сначала боялся :)
Вот так это делается: File > Export > glTF 2.0
И там вот так: -
@aleksei Спасибо. Но я так понимаю, надо из синьки модель экспортировать в fbx, импортировать ее в блендер, там накинуть материалы и настроить их, потом экспортировать все в gltf.
Если так, то как в блендере настроить маты мне еще учится надо.. -
Да, именно так. Но можно попробовать экспортировать модель из Синемы в FBX со встроенными текстурами — вдруг сработает:
Но сам я через это не проходил — я загружал текстуры отдельно и накладывал их через JS уже после загрузки 3Д модели.
-
Пользовался встроенным экспортом glTF R23:
Каждый движок имеет свои особенности - например в данном случае .jpg игнорируется, необходимо все экспортировать в png. Это видно по отсутствующей карте AO. Иногда дифф. карту следует помещать в слой отражения при экспорте, иногда нет. Если есть карта с дырками - возможно её следует инвертировать или настроить уровни черного и белого в материале в вашем движке. Нигде нет кнопки "сделать хорошо". Куда конкретно вы пытались загрузить модель? -
@magnc.lf сюда https://gltf-viewer.donmccurdy.com
-
@aleksei У тебя формат файла 7.7, у меня не такого, последний 7.5, тоже в этом пролома? И как у тебя получилось, что 7.7?
-
-
@avre001 в R23 сейчас есть версия 7.7 Но вставка текстур в FBX поддерживается и в более старых версиях.
-
@avre001
diffusion, roughness, normal и opacity перенеслись, как и сила этих карт. Предположу, что различия из-за другой карты окружения.PS если вы предоставите тестовую сцену, с которой проблемы, возможно получится найти решение.
Format: glTF 2.0
Generator: Created using the official Cinema 4D glTF Exporter 1.000x284978 -
@aleksei Короче, перепробовал все возможные методы, кроме блендер. Осваивать последний нет временнее... Так вот, действительно понимает только png текстуры для формата GLTF, но есть проблемы с проекциями текстур, если текстура с плоской проекцией, то все нормально, но если цилиндрическая, то ее разворачивает на 90 градусов, иногда понять вообще не возможно, как он ее применяет, короче Геморой... Да и нон желательно, чтоб UV была подправленная, иначе при малейшей проблеме с проекцией вообще не поймете что куда ложится при экспорте.
Странно как-то, нынче очень популярный формат, уже во всю применяется в разных соцсетях, в дополненной реальности, а синька нормально не может экспортировать в данный формат...
Спасибо конечно, но данная проблема не решена. -
Касательно цилиндрической проекции, то, думаю, если дело доходит до экспорта в glTF, то всегда лучше иметь UV развёртку модели. Потому что мне кажется, что цилиндрическая проекция — это не стандарт, а скорее что-то специфическое для Синены. Обычно как «стандарт» в разных программах я встречал максимум 3 проекции: UV, кубическая и проекция с камеры (фронтальная). Но я не знаю какие типы проекций поддерживает glTF.
-
@magnus да без проблем, пробовал с разными сценами, набросал по быстрому, взять хотя бы эту https://yadi.sk/d/tafam0iPWRXeow
-
@avre001
mug.zip
Нормал или бамп так и не получилось перенести, я с этим движком не знаком - надо почитать документацию, а на работе времени на это нет.
Касательно вашей сцены - перед экспортом в различный софт:-
проверьте топологию на ошибки (на дне чашек например)
-
создайте нормальную развертку и карты, не пользуйтесь методами "текстуринга", работающими только в C4D (сравните теги мешей в original и export), лучше запеките соответствующие карты.
Так же на этом сайте есть валидатор ассетов, он поможет правильно подготовить модель под этот движок.
-
-
@magnus Топологию проверил - ошибок нет. Развертку сделал, поправил UV, сделал нормальную карту, но такая же ерунда... Что делаю не так? https://yadi.sk/d/E4uy_YQcnyLniA
-
@magnus и если често, в присланном Вами файле не нашел файла GLTF, я экспортировал его сам но в вьювер ничего не изменилось, также текстуры не отображаются
-
@avre001, я думаю, тут проблема с многослойными текстурами и всякими процедурными вещами, которые характерны только для Синемы. Например, у вас альфа-маска инвертирована (с точки зрения WebGL) для этого в Синеме вы инвертируете текстуру галочкой "invert". И во вьюпорте всё выглядит ок. Но при экспорте Синема, почему-то, не учитывает эту галочку, а просто записывает вашу растровую текстуру в файл как есть. А он инвертирован. Когда я инвертировал текстуру альфа-канала, пересохранил файл и убрал галочку "invert", то альфа начала отображаться как надо:
Только теперь не видно другого материала (который под материалом с альфой). Но если верхний материал убрать, то кружка выглядит предсказуемо:
Это я к тому, что таких подводных камней типа «Синема, почему-то, не учитывает» при экспорте может много. Во-первых, потому что экспорт не идеальный. А во-вторых, то что Синема позволяет накладывать материалы один на другой с помощью тегов — это не стандарт индустрии и опен-сорсовых форматов для обмена 3Д графикой. Это скорее, специфический интерфейс Синемы.
Чтобы качественно экспортировать модель в glTF нужно играть по правилам glTF и индустрии 3Д в целом.
Может быть, как-то и можно сделать многослойный материал в three.js по аналогии с тегами Синемы — я не знаю, не вникал. Но я бы посоветовал сделать всего один материал на основе растровых текстур, возможно, с PBR подходом (three.js поддерживает).Единственное почему вас может это не устраивать и почему нужны именно многослойные материалы — это когда вы на сайте динамически будете менять принт на кружке. Но тогда нет смысла накладывать принт на кружку сразу при экспорте. В таком случае, вы экспортируете модель без текстур, а текстуры отдаёте программисту отдельно и он делает это через JavaScript.
-
@avre001 чтобы залитый мной архив не был большим glTF я в нем не сохранял, я подготовил для этого меши в сцене и назвал группу соответственно. Вы экспортировали объекты из моей сцены? Из группы export?
Открыл дома сцену, экспортировал, результат тот же:Убедитесь, что пути к текстурам глобальные,а не локальные.