建立日期:
作者:
文章:1
Bricker上的有趣東西
"Build your Minifigure" Game "Build your Minifigure" Game
LEGO 文字目錄 LEGO 文字目錄
LDD-to-PovRay: Краткое руководство
抱歉,尚未提供翻譯


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


//lh3.ggpht.com/-jCBZmVaDn98/VAVentIHm4I/AAAAAAABE2I/rDo3ojMfXRk/5f_XXL.png


______________________________________



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


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

Открываем LDD-to-PovRay...

//lh4.ggpht.com/-UBGaCFB6-ko/VAVev7Dbn1I/AAAAAAABE2Q/60K6U9M_DtY/c14_XL.png


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

//lh3.ggpht.com/-wzlJB8ZCmLQ/VAVe4XzsqOI/AAAAAAABE2Y/PQL6p2zUrg4/292_XL.png


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

//lh6.ggpht.com/-Xi6gmsXZIB0/VAVfAf030VI/AAAAAAABE2g/8o0DjOdIPNY/6ca_XL.png


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

//lh6.ggpht.com/-JEamWki2kWM/VAVfI0LBwHI/AAAAAAABE2o/iha2EV6vPN0/58a_XL.png


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

______________________________________




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

//lh3.ggpht.com/-YgyMYefN4K4/VAVhAloDqUI/AAAAAAABE20/_C8xhmONkB4/8_orig.png


В левом верхнем углу видим список доступных разрешений изображения, которое будет получено. Здесь всё просто. Тыкаем 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. Одинаковые числа дают белый свет.

//lh4.ggpht.com/-U_lRJPevhhU/VAVhZPAWFMI/AAAAAAABE28/N-MDbJ4izYw/0_orig.png


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 } связывает координаты с камерой.

//lh6.ggpht.com/-eMCikao50Nc/VAVhklY-AMI/AAAAAAABE3E/ZvzKuNI5FGQ/0_orig.png


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 скорость спада интенсивности.

//lh5.ggpht.com/-5-ZLxJwOzjY/VAVhxaQGYQI/AAAAAAABE3M/XlsLIrG1QS4/9_orig.png


falloff > radius

//lh3.ggpht.com/-NAM4pnZyQKQ/VAVh8tebAHI/AAAAAAABE3U/-5GhhEvudus/e_orig.png


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>
}

//lh4.ggpht.com/--e8JGdjoAVg/VAVjlgCwrCI/AAAAAAABE3g/IH8G2yqBdwU/5_orig.png


______________________________________


В заключение хочу сказать, что все рекомендации являются, ИМXО, и были выведены опытным путём, а за полную чистоту этих опытов я не ручаюсь. Так что идеальные настройки должен найти для себя каждый своими экспериментами. Это лишь малая часть того, что нужно сказать. Статья будет дополняться, естественно.
評論
vagrant 2014-09-02 10:40
Спасибо большое Грешнику за статью.
И призываю всех интересующихся начинать экспериментировать с LDD-TO-POVRAY, т.к. скоро будем запускать конкурс для LDD'шников.
     回應
timemechanic 2014-09-03 22:33
Спасибо Грешнику за Умную и Доходчивую статью!
А конкурс для LDD'шников давно пора запускать - есть уже настоящие творцы в этом формате отлично себя заявившие в предыдущих конкурсах на Бриккере!
     回應
MrGutenTag 2014-09-05 18:20
Builder
Жаль, что картинку рендерит очень долго - несколько часов. Но эффект приносит ощутимый - модель как настоящая.
     回應
登入, 若您想新增評論