Затенение сетки, освещение и цветной файл U3D

Я пытаюсь создать анимированный 3D-график в формате PDF из R 3D-графика. Я уже видел разные способы сделать это (Asymptote, Meshlab, …). Я хочу использовать файл U3D. Итак, я использую библиотеку rgl для создания файла PLY и Meshlab для экспорта моего файла PLY в файл U3D. Файл, который я могу экспортировать в pdf, используя пакеты LaTeX и Movie15/Media9.

Мне удалось создать анимированный 3D PDF без особых проблем, но я потерял цвета на этом пути. Я решаю эту проблему, тем не менее, когда я читаю pdf "с цветами" (цвет вершины или цвет лица), у меня не может быть затенения и освещения (тогда как без цветов у меня они есть).

Есть идеи, как сохранить оттенок / свет и цвета в файле U3D? Я думаю, что это проблема с экспортом U3D или U3D в pdf или формат U3D (?), Потому что мой файл PLY правильно открывается в Meshlab.

Спасибо,

0 ответов

Вот что я сделал несколько лет назад, начав с поверхностей, созданных в системе Mathematica. В последнее время я не использовал DAZ Studio или JReality, но это все еще может работать.

Во-первых, поверхность необходимо нарисовать цветами. Хотя ContourPlot3D может отображаться в цвете на экране в системе Mathematica, эти цвета происходят от освещения по умолчанию. Цвета не на самой поверхности. Мы можем нарисовать ContourPlot3D цветами, используя следующий код:

superSphereColor = ContourPlot3D[x^4 + y^4 + z^4 == 1,
{x, -1, 1}, {y, -1, 1}, {z, -1, 1}, Mesh->False,
ColorFunction -> Function[{x, y, z}, Hue[z]] ]
Export["C:\\junk\\supersphereColor.obj", superSphereColor]

Параметр Mesh->False настоятельно рекомендуется при создании графиков, особенно в цвете. Без этой опции итоговый PDF-файл может быть довольно большим, и его открытие может занять много времени.

На этой поверхности цвет Hue[z] зависит от z.

Затем экспортируйте график как файл (Wavefront) .obj. Когда Mathematica экспортирует файл.obj, он также создает файл.mtl (библиотека материалов), который содержит информацию о цвете поверхности. Затем мы должны преобразовать файлы.obj (и.mtl) в цветной файл.u3d.

Иногда MeshLab не может создать правильный файл.u3d с информацией о цвете, поэтому мы должны использовать другое программное обеспечение для создания цветного файла.u3d. Некоторые платные коммерческие программы могут это сделать.

DAZ Studio 4 ( http://www.daz3d.com/) - это бесплатное программное обеспечение, которое может конвертировать пару файлов obj/mtl в файл.u3d с информацией о цвете.

JReality также может экспортировать файлы цветов.u3d, но полученные файлы цветов.u3d и.pdf будут больше, чем файлы, созданные DAZ Studio 4.

Если при запуске DAZ Studio 4 появляется изображение по умолчанию, используйте пункт меню "Редактировать / Удалить", чтобы удалить его. Используйте опцию меню "Файл / Импорт", чтобы импортировать файл.obj. При импорте убедитесь, что установлен флажок "Читать библиотеку материалов (.mtl)", чтобы информация о цвете также была импортирована.

Вам также может потребоваться установить "Масштаб" на 100, чтобы изображение в PDF-файле не было слишком большим, хотя это будет зависеть от вашей исходной поверхности. Как только вы импортировали файл, экспортируйте его. Используйте опцию меню "Файл / Экспорт", чтобы экспортировать изображение в файл.u3d.

Наконец, используйте приведенный выше код LaTeX, чтобы встроить.u3d в файл pdf. Может потребоваться другое масштабирование, поэтому вам, возможно, придется отрегулировать некоторые из приведенных выше значений 3Daac ... 3Dcoo.

Для цветных объектов мы должны использовать 3Dlights=CAD, а не 3Dlights=Primary. Параметр "САПР" отображает собственные цвета объекта и не добавляет к нему искусственных цветов.

Примечания: DAZ Studio 4 также может создавать монохромный файл.u3d, хотя итоговый файл PDF будет больше, чем если бы файл.u3d был создан с помощью MeshLab.

Другие вопросы по тегам