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

Диффузное отражение

Bj_article | 09.09.2007 | 01:08 | Автор: Hor  | Разделы: BrickJournal | Виртуально

Научитесь тому, как заставить ваши собственные сгенерированные изображения сногсшибательно выглядеть.

Коян Деррудер (текст и изображения)
Джеф Грэй (модель)

В этой статье я объясню, как я получаю свои изображения. Я уверен, что это не самый лучший вариант и, очевидно, не самый быстрый или эффективный способ, но именно так я готовлю свои изображения в эти дни. Я постоянно пробую новые варианты, поэтому изложенное может быстро устареть, но вы должны получить достаточно хорошие изображения, которые вы без сомнения можете использовать в качестве отправной точки для поиска своего собственного варианта. (В случае, если вы обнаружите новый отличный способ создания изображений, обязательно напишите мне!)

1. Файл POV

Самое первое, что мы должны сделать - это конвертировать нашу модель в формат .pov. Я использую для этого утилиту L3P с графическим интерфейсом L3PAO. На самом первом этапе мы заботимся только о мезансцене, то есть мы пытаемся только найти место для камеры, откуда наша модель будет полностью и хорошо видна. Само качество картинки вовсе не обязательно должно быть очень хорошим - так как мы будем пробовать разные положения для камеры, единственное условие - это высокая скорость работы, поэтому мы установим параметр качества в 0, что означает, что всё будет сделано из больших блоков (см. рисунок 1). Поиграйте со значениями широты (latitude), и долготы (longitude) и углом наблюдения. Обычно я использую что-то около 30. Попробуйте и решите сами, что вам больше нравится.

Диффузное отражение

Рисунок 1

2. Улучшение деталей

Библиотека элементов LDraw отлично годится для моделирования, но некоторые элементы выполнены со слишком низким разрешением, чтобы получить хорошее изображение. Существуют другие библиотеки с более качественными деталями, такими как LGEO и библиотека Антона Рейвса. Поддержка LGEO уже встроена в L3P, поэтому мы будем использовать именно эту библиотеку.

Библиотека содержит меньше элементов, чем LDraw. Утилита L3P использует исходный файл LDraw для замены существующих, поэтому некотрые части всё же выглядят не очень хорошо. Существует небольшая программа, которая может исправить большинство проблем: Mesh Enhancer. Эта программа сглаживает острые переходы. Её можно применить и к целому файлу .pov, но я рекомендую использовать только при необходимости, потому что при обработке некоторые части могут потерять детализацию. Просто выберите необходимый код в файле .pov, запустите Mesh Enhancer, и вставьте результат преобразования вместо исходного кода.

* В библиотеке LGEO есть несколько ошибок. Ларс Хассинг исправил большинство из них. Вы можете загрузить исправления по адресу http://www.hassings.dk/l3/lgeofix.html.

* LGEO это старая библиотека. После её выхода множество элементов было обновлено. Например, в давние времена была только одна разновидность детали 3040 (Скошенный кирпич 45 1x2). В наши дни, эта ей на замену пришла деталь 3040B, в то время как старому варианту с некотрыми отличиями соответствует 3040A. При обработке файла утилитой L3P, новая деталь 3040B не будет заменена на аналог из библиотеки LGEO. Поэтому, перед обработкой я обычно заменяю такие детали на их более старые эквиваленты. Некотрые детали, например 4085A, 4085B и 4085C почти не отличаются друг от друга, поэтому обычно замена одну на другую не является проблемой. Но некоторые детали, такие как 4081A и 4081B, внешне похожи между собой, но на самом деле имеют достаточное количество отличий. Поэтому осторожно выбирайте детали для замены.

Диффузное отражение

Рисунок 2

Рисунок 2 показывает, как выглядит наша модель с использованием деталей LDraw. На рисунке 3 показана та же самая модель, но с использованием элементов LGEO. (Просто обработайте вашу модель снова утилитой L3PAO, но на этот раз включите параметр LGEO, используйте те же самые координаты камеры.)

Диффузное отражение

Рисунок 3

3. Улучшенные цвета

Как видно на рисунке 2, цвета выглядят немного стёртыми. Библиотека LGEO использует свои собственные настройки цветов, поэтому на рисунке 3 они выглядят гораздо лучше, но их можно сделать ещё лучше. Особенно это будет заметно позже, когда мы будем использовать диффузное отражение и HDR-освещение.

Я использую определения цветов Тодда Лемана (http://guide.lugnet.com/color/), (ещё я добавил несколько сам - цвета для новых вариантов серого и коричневого цветов, а также цвета разной резины). Вы можете найти полный архив цветов Тодда по адресу http://guide.lugnet.com/color/povray-20021003/lg_colors.tar.gz. Мои добавления вместе с файлом, который отображает их в подходящие номера MLCad, содержатся в каталоге includes. Просто загрузите архив и распакуйте всё в какой-нибудь каталог, после чего добавьте в файл POVRAY.ini строку:

Library_Path="\path\to\colour\directory"

Потом замените в вашем файле .pov, строку

#include "lg_color.inc"

на строку

#include "koyancolours.inc"

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

Диффузное отражение

Рисунок 4

4. Освещение с диффузным отражением

Когда используется освещение с диффузным отражением, то мы как бы помещаем большую светящуюся сферу вокруг модели, так чтобы свет излучался со всех сторон вместо нескольких ненатуральных точечных источником света. Удалите все источники света, которые у вас есть в файле .pov, (в противном случае ваш результат будет выглядеть слишком ярко, и добавьте следующие строки:

#version unofficial MegaPov 1.10; #declare LDRAW_RAD_LEVEL = 5; #declare LDRAW_MTL = 10; #declare INDEXOFREFRACTION=1.52; #declare LDRAW_RAD_NORMAL = off; #declare LDRAW_RAD_MEDIA = off;   #include "rad_def.inc" global_settings {   assumed_gamma 1.4   max_trace_level LDRAW_MTL   adc_bailout 0.01/2   radiosity {     Rad_Settings(LDRAW_RAD_LEVEL, LDRAW_RAD_NORMAL, LDRAW_RAD_MEDIA)   } }   sky_sphere {   pigment {     gradient -y     color_map {       [ 1 rgb 1 ]     }   } }

Давайте поиграем с настройками. Теперь изображение выглядит как на рисунке 5.

Диффузное отражение

Рисунок 5

В стандартном файле .pov, который создаёт L3P, все частям назначается внешнюю и рассеивающую составляющие 0.4. Это означает, что они будут излучать немного света, даже если на неё не проникает свет ни от одного источника. С использованием диффузного отражения, все части автоматически получают значения для 0 для внешней составляющей, и 1 для рассеивающей. Это делает их гораздо более реалистичными. Проверьте, что вы изменили значения amb и dif для пола, так как они не изменяются автоматически!

Рисунок уже достаточно хорош, но выглядит несколько стерильным. Обратите внимание на прозрачные элементы - они ничего не отражают. Это потому что вся сфера равномерно белая. Поэтому давайте перейдём к следующему разделу.

5. Освещение HDRI

Изображение или светопробы с HDR ("high dynamic range" - большой динамический диапазон, англ.)симулируют более натуральную обстановку. Освещение, а также и отражение, становятся более реалистичными. Вы можете загрузить несколько свободно распространяемых светопробами с сайта www.debevec.org. Снова удалите определения всех источников света в вашей сцене. Потом измените определение небесной сферы с:

sky_sphere {   pigment {     gradient -y     color_map {       [ 1 rgb 1 ]     }   } }

на следующее:

sphere {   <0,0,0>,10000   pigment {     image_map { hdr "lightprobe.hdr" once interpolate 2 map_type 7 }   }   finish { ambient 1 diffuse 0 }   hollow }

Снова попробуйте поменять настройки. Я использую сферу, потому что версия MegaPOV, которой я пользуюсь, не позволяет использовать изображения hdr как текстуры для небесной сферы. В будущем это может измениться. Значение map_type зависит от того, какой тип изображений HDR вы используете. Существуют разные способы проецирования. Вы можете прочитать больше об этом на сайте www.debevec.org. Значение map_type 7 используется для сферических светопроб, подобных тем, которые могут быть загружены оттуда. Значение ambient определяет, насколько ярким будет изображение HDR. Тепрь результат должен выглядеть как на рисунке 6.

Диффузное отражение

Рисунок 6

6. Область - источник света

Вы можете добавить несколько прямых источников света для того, чтобы добавить глубину или выделить какие-то детали. Если вы хотите получить хорошие, мягкие тени, то обычных источников света недостаточно, нужно добавлять области. Область состоит из нескольких точечных источников. Можно изменить настройки для того, чтобы использовать больше или меньше точек, а также для того, чтобы увеличить или уменьшить размер области, чтобы сделать тени более резкими или мягкими. Например:

light_source {   <-5000,-5000,-5000>   color rgb .4   area_light 200, 200, 10, 10   adaptive 1   jitter   circular   orient }

Результат представлен на рисунке 7.

Диффузное отражение

Рисунок 7

7. Сглаживание

Встроенное в Pov-Ray сглаживание не выглядит особенно хорошо, особенно если вы используете прозрачные или блестящие материалы. Вы сами можете попробовать поменять настройки в Pov, но я обычно выключаю сглаживание и готовлю изображение, которое как минимум в два раза больше, чем требуемый размер. После этого нужно изменить размер в Photoshop или любой другой графической программе, которая может выполнять бикубическое сглаживание. Вы можете наблюдать разницу на рисунке 8.

Диффузное отражение

Рисунок 8

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

И этого добились вы сами!


Теги: 3d
Поделиться |
Переведено и опубликовано с разрешения BrickJournal.
Оригинал статьи читайте в Серия 1, Номер 4, стр. 52-55
Голосование
?
Ваша оценка
(1)
0.0
Голосовать могут только зарегистрированные пользователи.

1483 просмотра