Разработка электроники,

Систем автоматики,

Программного обеспечения

8(981)186-50-82

ООО "Антех ПСБ",
Санкт-Петербург

anteh@bk.ru

antehru@gmail.com

©

Рендеринг 3D модели алюминиевого корпуса во FreeCAD 0.16 и Blender 2.76b

08.01.2016 Сайт https://anteh.ru

Рендеринг изображений производился в Blender. 3D модель алюминиевого корпуса сделана во FreeCAD экспорт в Blender через .stl. В сети ищем готовые сцены, с правильными настройками освещения и именно для тех объектов, которые будем рендерить, например сцена для рендеринга алюминиеаого корпуса или строительного объекта и т.п. На готовую сцену подставляем свой объект.

Заметка для людей, впервые занявшихся вопросом рендеринга 3D модели

Ниже приведены 4 изображения одного и того же 3D алюминиевого корпуса. Первое скриншот из FreeCAD, второе и третье та же самая модель, но отрендеренное в Blender, четвёртое POV-Ray здесь освещение задано автоматически -по сути эталон. Рендеринг делаю первый раз, есть к чему стремиться. Нужно время от времени делать приятные глазу изображения для сайта.рендеринг 3D алюминиевого корпуса

Ниже приведены ещё 5 изображений с рендерингом того же алюминиевого корпуса на, готовых световых сценах. Световые сцены взяты из сети. Нужно поискать сцены именно для рендеринга алюминиевых деталей. На ниже приведённых изображениях не оптимально выбран угол поворота алюминиевого корпуса относительно сцены освещения. Для себя сделал вывод, что основной источник света должен быть со стороны наблюдателя и чтобы тени от букв были.

900x1024

Fire and Ice.blend, IBL Studio Setup.blend, Sunset.blend

Warm Studio.blend, Warm Studio.blend под другим углом, White Light Studio.blend

Очень важно правильно создать нужное освещение или сориентировать 3D модель относительно готовой сцены. Сцена должна быть предназначена для рендеринга конкретного типа 3D моделей. На глаз в POV-Ray получилось лучше всего.

POV-Ray 3.7

LuxRender 1.4

Blender 2.76b

Забегая вперёд, рендеринг во FreeCAD делать проблематично. Есть настройки для использования 2х рендеров, POV-ray и Luxrender. POV-ray 3.7 povwin-3.7-agpl3 и Luxrender 1.4 LuxRender_1.4_32bit_NoOpenCL. Luxrender 1.5 "не пошёл". Оба open source, скачиваются и устанавливаются дополнительно.

Настройка работы Raytracing:freecad raytracing configure

Первая пиктограмма с чёрным шаром -это выбор рендера POV-ray. POV-ray скачен установлен и во FreeCAD прописаны настройки для его использования, описание ниже. Щёлкаем на чёрный шар, выбираем RadiosityNormal, появится папка. В эту папку нужно добавить элементы, которые будем рендерить. Для этого выделяем все нужные элементы и саму папку, а затем жмём на третью по счёту пиктограмму, элементы будут добавлены в папку. Ориентируем текущее изображение в рабочем окне FreeCAD так, как мы его хотим видеть на отрендериной картинке. Жмём на четвётртую пиктограмму -это автоустановка камеры. Которая правильно не работает. Угол выставляется правильно, но расстояние слишком близкое. Поправить можно только через редактироваие скрипта. Далее жмём пятую пиктограмму для экспорта .pov скрипта. Шестой пиктограммой не пользуемся -это вызов рендера из FreeCAD, по ряду нижеописанных причин POV-ray нужно использовать отдельно запуская сгенерированный FreeCAD скрипт.

Вторая пиктограмма -это LuxRender, выбираем LuxClassic, далее всё также.

Настроек для обоих рендеров, во FreeCAD недостаточно и "из коробки" ничего не работает, нужно экспортировать конфигурационные файлы и их редактировать перед загрузкой в рендеры. Но редактировать текстовые файлы размером в 4 и более мегабайта, в моём скромном случае, не очень удобно, хоть вся конфигурация и находится в начале файлов.

POV-Ray

Выбираем режим инструментов FreeCAD RayTracing. Далее, в настройках FreeCAD, на вкладке RayTracing:

POV-Ray executable: C:/Program Files/POV-Ray/v3.7/bin/pvengine32-sse2.exe
POV-Ray output parametrs: +P +A +W 1024 +H 1024

Обратить внимание, чтобы было так "+P +A" без пробелов между плюсом и буквой, иначе будет ошибка: Failed to set render options

--------------------
Unknown switch '' on command-line.
--------------------
Cannot process command-line at ' P + A +W1024 +H1024 +O"C:\1\OutPic.bmp" ' due to a parse error.
This is not a valid command-line. Check the command-line for syntax errors, correct them, and try again.
Valid command-line switches are explained in detail in the reference part of the documentation.
Failed to start render: Failed to parse command-line option
--------------------

Далее очередная ошибка:

--------------------
IO Restrictions prohibit write access to 'C:\1\OutPic.bmp.png'
Failed to start render: Cannot open file.
--------------------

Зачем-то к выходому файлу "OutPic.bmp.png" было приписано расширение .png. При вводе имени выходного файла расширение не указывалось. При указаниии расширения .png, по крайней мере ничего лишнего не дописывается.

Оказалось, что в POV-Ray v3.5 была введена функция ограничения доступа из .pov скриптов к файлам и папкам компьютера. Доступ из сценария скрипта разрешон только к заданным папкам, что однако ничего не гарантирует. Введено для защиты системы, иначе .pov скрипт от "стратегического партнёра" или "лучшего друга" может угробить всё что угодно на вашем компьютере. Ограничение настраивается в запущенной программе POV-Ray в выпадающем меню Options->Script I/O Restrictions->No Restrictions. Ставим "No Restrictions", после этого рендеринг пошёл, но не далеко нужно камеру настраивать, из FreeCAD её не настроить.

FreeCAD генерирует временные .pov файлы в директории: "Preset source file is 'c:\users\peter\appdata\local\temp\tmpnrr3bv.pov'" и судя по всему в POV-Ray не заданно разрешение на запуск .pov скриптов в c:\users\peter\appdata\local\temp\. Сам POV-Ray запускает .pov скрипты из: "Preset source file is C:\Users\Peter\Documents\POV-Ray\v3.7\Scenes\advanced\Biscuit.pov"

Ещё один способ запустить рендеринг -это экспорт из FreeCAD .pov скрипта, и запуск скрипта из отдельно запущенного POV-Ray экземпляра программы. Этим способом и пользуемся.

В quickers.ini можем добавлять свои размеры изображения


...
[2048x2048, 16:9, No AA]
Width=2048
Height=2048
Antialias=Off

[4096x4096, 16:9, No AA]
Width=4096
Height=4096
Antialias=Off

Но пока размер отрендеренного изображения не полный, всегда фиксированный, отображается только часть изображения. Нужно поправить размещение камеры, судя по всему автоустановка на текущий вид работает не корректно. Во FreeCAD свойствах PovProject на вкладке "данные" в строке "Camera" есть запись "#declare cam_location = <78.6714,299.382,-85.1453>;" его получится изменить только через редактирование .pov скрипта.

Единственный способ получить результат: сгенерировать .pov скрипт для 3D модели через FreeCAD, затем загрузить его в POV-Ray и отредактировать, минимум положение камеры, чтобы изображение всей 3D модели поместилось на экран. Источник света один, задан со стороны смотрящего/камеры

Редактируем параметры положения камеры:

Было так:


...
// Generated by FreeCAD (http://www.freecadweb.org/)
#declare cam_location = <78.6714,299.382,-85.1453>;
#declare cam_look_at = <28.442,249.153,-34.9159>;
#declare cam_sky = <-0.408248,0.816497,0.408248>;
#declare cam_angle = 45;
camera {
location cam_location
look_at cam_look_at
sky cam_sky
angle cam_angle
right x*2048/2048
} ...

Стало:

// Generated by FreeCAD (http://www.freecadweb.org/)
#declare cam_location = <650,600,-500>;
#declare cam_look_at = <28,200,-35>;
#declare cam_sky = <-0.408248,0.816497,0.408248>;
#declare cam_angle = 48;
camera {
location cam_location
look_at cam_look_at
sky cam_sky
angle cam_angle
right x*800/600
}

right x*ширина/высота соотношение сторон изображения

Рендеринг алюминиевого корпуса в POV-Ray 3.7:крэйт anteh.ru krate aluminium boxes rendering povray крэйт anteh.ru krate aluminium boxes rendering pov ray

FreeCAD оригинал алюминиевого корпуса:freecad original 3d before rendering

Вывод такой, интерфейс FreeCAD с POV-Ray сыроват, возможно заброшен. Проблема установить камеру. Нужно в ручную скрипт править. Нет настроек, для создания световой сцены, она генерируется автоматически, что скорее правильно, световую сцену неподготовленному человеку правильно настроить не получится. Для лучшего результатата нужно разбираться со скриптами POV-Ray

LuxRender 1.4

Выбираем режим RayTracing, в настройках FreeCAD, на вкладке RayTracing исполняемый файл LuxRender:

C:/LuxRender_32_NoOpenCL/LuxRender.exe

Можно использовать консольный вариант, когда настройки стали понятны:

C:/LuxRender_32_NoOpenCL/LuxConsole.exe

Запускаем LuxRender из FreeCAD шаблон LuxClassic. Задав в LuxRender параметр View Show Alpha видим следующее:luxrender luxclassic 3d rendering exampl

Камера задана слишком близко, источник света также единственный и со стороны наблюдателя. Рендеринг идёт очень медленно, картинка будет месяцев через несколько. На итоговом изображении спустя пол часа видны только небольшие светлые участки. Работать работает, но нужно разбираться с настройками и двухядерный процесср 2GHz здесь не к месту. Это был шаблон LuxClassic. С шаблоном LuxOutdoor, всё интересней:luxrender LuxOutdoor 3d rendering exampl

Судя по всему, настройки исходных файлов с данными должны формироваься в "фронт енд программах", POV-Ray и LuxRenderэто программы обработки уже готовых конфигурационных файлов с данными и встроенных, графических, седств конфигурации не имеют. POV-Ray имеет, но там конфигурация задаётся через скрипты, что в освоении и свете решаемой задачи, весьма проблематично. В FreeCAD 0.16, на текущий момент, отсутстуют существенно важные базовые настройки необходимые для осуществления рендеринга. Другими словами используем Blender или другое.

Blender

Делаем рендеринг импотированной 3D модели, созданной во FreeCAD. Ниже приведена некоторая последовательность действий, которая поможет получить результат.

Удаляем куб

Импортируем .obj файл 3D модели FreeCAD в Blender. Лучше использовать .stl не искажает масштаб.

Устанавливаем метрические единицы, по умолчанию всё в "уе" noneblender set units

Модель .obj из FreeCAD импортируется с размерами гораздо больше исходных, то что было по колено стало высотой в 400 метров.

Объединить несколько объектов в один: выделить объединяемые объекты, последний выделенный будет родительским, курсор должен быть на рабочем поле, CTRL+P

Разъединить несколько объединённых объектов: выделить все объединённые объекты, курсор должен быть на рабочем поле, ALT+P

То же самое можно сделать графически перетаскивая объекты в дереве объектов -более наглядно и удобно

Нажимаем в латинской раскладке клавишу "N", чтобы наблюдать размеры модели, далее "S" чтобы пропорционально уменьшить размер модели до исходного. В этом же окне выбираем привязку к объекту, и приводим размер модели к исходному или желаемому.

Так же исправляем ориентацию модели в пространстве "R" + ось "X Y Z" + "угол поворота в градусах". Угол выбранного элемента можно задать через графическое меню, вызванное по "N"

Сбрасываем, если нужно, масштаб в 1: CTRL+A

Переключение между ортогональной и перспективной проекцией NumPad 5

Сейчас есть исходный 3D объект в нужном масштабе и ориентации. Настраиваем камеру и источники света рендерится будет только то, что находится в фокусе камеры:

Переключаемся в ортогональную проекцию

Ориентируем 3D модель так, как хотим её видеть на отрендеренном изображении

Камеру придвигаем в притык к 3D объекту: выделяем камеру и указываем положение, как на нижеприведённом изображении. Камера в третьем квадранте. Выделяем камеру, задаём координаты её положения, согласно ориентации модели. Например для картинки ниже начальные координаты: x 50 y -50 z 50, далее жмём CTRL+ALT+NumPad 0 и камера автоматически сфокусируется на объекте.

Изменеие ориентации, выравнивание объекта: режим редактрования, правой кнопкой мыши выделяем вершину она станет в белой окружности, CTRL+SHIFT+ALT+C

В настройках вызываемых по "N" сбрасываем "Lock to Object" устанавливаем "Lock Camera to View". Должно получиться что-то такое:вид с камеры то что будет рендериться сцена 3D алюминиевый корпус камера 3 точечных источника света

Теперь можно глянуть, что получается: Render - Render Image или F12. Рендериться будет только то, что находится в фокусе камеры. Что находится в фокусе камеры смотрим по нажатию NumPad 0. Здесь же при заданном параметре "Lock Camera to View" удобно менять масштаб и ориентацию модели перед камерой.

Переключение из режима отображения отрендеренного изображения F11

Нажимаем на пиктограмму фотоаппарата, настраиваем рендеринг, задаём разрешение, сглаживание. Разрешение задаёт размеры окна камеры, ниже, горизонтальным ползунком можно уменьшить разрешение которое будет использоваться при рендеринге. Чтобы просто посмотреть что получилось. При финальном рендеринге устанавливаем в 100 процентов. Сглаживание при начальной настройке можно не выставлять, при финальной, для рендеринга изображения ставим на максимум. Остальные настройки по умолчанию.

Нажимаем на пиктограмму земного шара, задаём фон, туман

Выделяем 3D объект, появится пиктограмма шара -это материалы. Выбираем алюминий. Но прежде чем выбрать материал нужно его добавить, качаем с сети материалы. Blender судя по всему однодокументное приложение, т.е. одновременно можно работать только с одним файлом данных, для второго нужно запускать ещё один экземпляр программы. Материал и многое другое добавляется к текущему проекту через File - Append, выбираем скачанный файл материалов расширение .blend, он откроется, в нем выбираете нужные материалы и потом их можно использовать в проекте. После выбора материала нужно нажать "Use shared nodes to render material" пиктограмма расположена справа от названия материала.

Задаём источник или источники света, в текущем случае задано 3 точечных источника с параметрами по умолчанию. Как это делать более менне правильно смотрим в сети. Настраивал так, чтобы не было резких теней и нравилась итоговая картинка. Этому вопросу стоит уделить самое тщательное внимание. Добавлял точечные источники света с параметрами по умолчанию и размещал их вокруг 3D модели. Можно например использовать источник Sun и Hemi. Блики Specular должны быть только у одного основного источника. Интенсивность не основных источников должна быть ниже. Не должно быть полностью затенённых участков на отрендеренном изображении -лунных теней.

NumLock 0 вид из камеры -это то, что будет рендерится. Долее Render - Render Image или "F12" и ждём результата:

Вот ещё один отрендеренный 3D чертёж CNC станка, который никак не дособеру:чпу 6090

Здесь нужно каждой детали свой материал присвоить и учесть ряд индивидуальных особенностей каждой детали, настроить освещение сцены.

Эксклюзивная модель ЧПУ станка-дивана:чпу станок-диван

Copyright ©Новиков Алексей Александрович,

2012-2017 Санкт-Петербург, 197372, ООО "Антех ПСБ",

anteh собака bk.ru