Doublebrick - Российское сообщество энтузиастов конструкторов LEGO!
DoubleBrick в Facebook DoubleBrick в Twitter DoubleBrick в ВКонтакте RSS каналы DoubleBrick
Следи за новостями!

LDD-to-PovRay: Краткое руководство

Избранная статья! Статья | 15.08.2012 | 22:25 | Автор: Грешник  | Разделы: Виртуально | Своими руками

Не так давно вышла архиполезнейшая утилита LDD-to-PovRay. Её задача - конвертировать файлы виртуальных моделей, сделанных в LDD, для трассировщика POV-Ray. Это даёт возможность создавать очень реалистичные изображения виртуальных моделей. Судите сами:




Настройки/функции конвертера

Что же для этого нужно? Собственно LDD, POV-Ray v3.7 и конвертер LDD-to-PovRay. Но далеко не всё просто. Необходимо найти файл PovRay.ini, который хранится в папке POV-Ray (создаётся в "Моих документах") в подпапке Ini. В этот файл нужно в конце добавить строку Library_Path=\\.\LDDIncludes . Открываем LDD-to-PovRay...

Выбираем нужный файл модели в строке Input file. Стоит заметить, что какой ракурс был LDD при сохранении, такой ракурс и получится в итоге на обработанном изображении. В принципе можно сразу жать Convert, но давайте разберёмся с некоторыми настройками. Параметр Level of detail отвечает, собственно, за детализацию (шероховатости на скосах, надписи на штырьках). Ставить его на максимум не всегда следует, так как это прилично замедляет скорость рендеринга.

Здесь задаются параметры освещения. 3 источника, свет от камеры (camera light) и фоновое освещение (ambient light), можно менять их яркость, тени, отключать... Подробнее об освещении будет ниже. Но стоит сразу сказать, что не нужно сразу включать все три источника. Они создаются какого-то монструозного размера и плотности, что очень сильно замедляет рендеринг.

А вот это очень любопытная функция. Она позволяет подменять стандартные декали кастомными в формате .png . Тыкаем галочку Use custom decorations и появляется список всех декалей в модели, щёлкнув по правому пустому полю, выбираем декаль, на которую будет заменена стандартная.

Здесь настраивается качество рендеринга. Но на максимальном качестве может уйти очень много времени. Причём не всегда есть разница между средними настройками и высокими в конечном результате. К слову, на скорость влияют: настройки качества (сильно), настройки детализации (средне), наличие в модели сложных деталей (травка, листики), прозрачных и блестящих деталей (очень сильно), а также источники освещения (сильно).




Рендер

Итак, по настройкам пробежались, тыкаем Convert. В идеале Pov-Ray должен открыться сам, но это не всегда срабатывает. LDD-to-PovRay нельзя закрывать во время рендеринга! Открываем Pov-Ray, открываем полученный файл формата .pov и... видим кучу кода и никаких изображений. Да-да, никакого вам предварительного просмотра, все изменения делаются "вслепую".

В левом верхнем углу видим список доступных разрешений изображения, которое будет получено. Здесь всё просто. Тыкаем Run и ждём... от пары минут до... лучше не знать. В среднем на среднего размера модели уходит около часа. Но ведь кому-то станет любопытно, а что ещё можно тут сделать? Много чего! Но я разобрался пока что совсем с немногим. Итак, уже говорил об источниках света. Сверху пункт меню Insert -> light sources. Добаваляет источник света. Вставлять этот кусок кода нужно ДО объявления модели(#declare ldd_model = union). Желательно рядом с другими источниками, просто для удобства. На выбор представлены несколько видов источников. Остановлюсь подробнее на трёх.




Источники света

Point light. Точечный источник. Быстрая обработка, но низкое качество.

light_source
{
<15.248719215393066,2.1646552085876465,-0.05597960576415062>
color rgb <0.2,0.2,0.2>
}
Первая тройка чисел - координаты источника. Вторая - интенсивность/цвет в формате RGB. Одинаковые числа дают белый свет.

Area light. Распределённый источник света. По сути, много точечных. Работает медленно, но качество куда лучше. Именно эти источники по умолчанию создаёт конвертер.

light_source
{
<-100,100,400>
color 40/100*ldd_light_color
area_light 5, 5, 5, 5
adaptive 1
jitter
circular
orient
transform { ldd_camera_transformation }
}
С координатами и цветом всё понятно. area_light: именно это и делает источник распределённым. Первые два числа отвечают за его "объём", два других за "плотность". По умолчанию эти параметры ставятся слишком большими, рекомендую устанавливать на 4-5. jitter включает смягчение теней. transform { ldd_camera_transformation } связывает координаты с камерой.

spotlight "Прожектор"

// create a point "spotlight" (conical directed) light source
light_source {
<0,0,0> // light's position (translated below)
color rgb <1,1,1> // light's color
spotlight // this kind of light source
point_at <0, 0, 0> // direction of spotlight
radius 5 // hotspot (inner, in degrees)
tightness 50 // tightness of falloff (1...100) lower is softer, higher is tighter
falloff 8 // intensity falloff radius (outer, in degrees)
}

point_at координаты, на которые направлен источник. radius - радиус "основного" диска, интенсивность от центра постоянная. falloff - радиус диска переменной интенсивности. tightness - скорость спада интенсивности.


falloff > radius


falloff < radius




Помещение источника внутрь детали

Допустим, мы хотим сделать так, чтобы источник света находился внутри определённой детали. Для этого запоминаем её индекс в LDD (например, 30106). Индекс отображается внизу экрана, когда деталь выделена. Ищем объявление детали с таким индексом в Pov-Ray (поиск текста в коде Ctrl+F). Выглядеть это будет таким образом:

ldd_30106(array[1]{44},array[1]{0},array[1][12]{{1,0,0,0,1,0,0,0,1,-6,2.8819348812103271,8.3999996185302734}})

Последние 3 числа и есть координаты детали. Далее вставляем эти координаты в источник света. Иногда приходится несколько приподнять источник (вторая координата), так как он имеет тенденцию проваливаться в штырёк нижней детали.

light_source
{
<-6,3.8819348812103271, 8.3999996185302734 >
color rgb <1,1,1>
}




В заключение хочу сказать, что все рекомендации являются ИМXО и были выведены опытным путём, а за полную чистоту этих опытов я не ручаюсь. Так что идеальные настройки должен найти для себя каждый своими экспериментами. Это лишь малая часть того, что нужно сказать. Статья будет дополняться, естественно.


Поделиться |

Голосование
?
Ваша оценка
(6)
0.0
Голосовать могут только зарегистрированные пользователи.

6437 просмотров