УДК 69:004.43
И.М. Лебедева, С.А. Синенко
ФГБОУ ВПО «МГСУ»
АВТОМАТИЗАЦИЯ ПРОЦЕССА ВИЗУАЛИЗАЦИИ ПРОЕКТНЫХ РЕШЕНИЙ В СРЕДЕ AUTOCAD
Дано краткое описание алгоритма программы, разработанной для автоматизации некоторых этапов процесса проектирования зданий и сооружений, в частности для автоматического получения реалистической визуализации моделируемого объекта в среде AutoCAD. Особое внимание уделено реалистичности построения теней, что важно при «вписывании» строительного объекта в окружающую среду.
Ключевые слова: солнечное освещение, рассеянное освещение, AutoCAD, фотореалистическая визуализация, азимут солнца, поворот точки, однородные координаты, программа на VB.
Проектировщики, работающие в строительной области, для реалистической визуализации проектных решений, выполненных в среде AutoCAD, часто прибегают к экспорту трехмерных моделей в 3DsMax. 3DsMax традиционно считается одним из лучших средств для получения фотореалистичной картины.
Работа же полностью в программе AutoCAD могла бы значительно облегчить механизм поэтапного редактирования проекта с параллельной визуализацией промежуточных результатов. Постоянно отслеживая изменения в картине освещенности, можно найти наиболее выигрышное с точки зрения эстетики, эргономики и инсоляции решение по планировке и вписыванию здания или сооружения в окружающую среду.
Для автоматического выполнения реалистической визуализации моделей проектируемых строительных объектов в среде AutoCAD было разработано специальное приложение.
Приложение создано на алгоритмическом языке Visual BASIC for Applivations (VBA). Средой разработки может служить встроенный в AutoCAD редактор VBA или редактор Visual Studio. Такие приложения могут использоваться как самостоятельные программы или в системе AutoCAD непосредственно из текущего чертежа.
Язык VBA имеет ряд преимуществ для разработки приложений для AutoCAD:
прозрачная логика; простой синтаксис;
дружественный интерфейс как редактора VisualStudio, так и встроенного в AutoCAD редактора VisualBasic;
возможность обработки ошибок; возможность компиляции в режиме отладки; варианты конечной компиляции в P-код либо в машинный код. Основная цель приложения — создание и настройка освещения, подготовка и выполнение операции реалистической визуализации моделируемых строительных объектов.
Данная задача в рамках настоящей работы решается путем разработки технологии автоматизированного создания фотореалистической визуализации, основанной на моделировании комбинации из нескольких типов источников света, имитирующих солнечное освещение в сочетании с рассеянным в атмосфере светом.
Такое решение вызвано рядом причин. В AutoCAD имеется такой вид освещения, как солнечный. Для его настройки требуется задать географическое положение и время суток. Солнечное освещение является фотометрическим, т.е. все параметры света: интенсивность излучения, цвет и т.д., — являются стандартными, недоступными для редактирования. Включение солнца в AutoCAD не вызывает трудностей. Освещение получается бледно серым с резкими тенями. Для включения небесного отраженного освещения пользователь должен обладать определенными знаниями и навыками. Требуется провести ряд операций, связанных с созданием именованного вида с фоном «Солнце и небо» и с подключением небесного освещения. Создание такого вида полностью исключает использование в качестве фона, например, фотографию реальной окружающей среды. Кроме того, временные затраты на визуализацию увеличиваются.
В разработанном приложении роль солнца будет выполнять удаленный источник света. Его положение определяется лишь направлением света, лучи параллельны, интенсивность не меняется с расстоянием. Форма теней, соответственно, также не искажается, как и в случае солнечного освещения. Значит, картина теней будет приближена к реальной.
Пользователь после старта приложения должен будет определиться с временем суток и выбрать время года (месяц). Также пользователю придется задать направление на север, для того чтобы в зависимости от времени определить направление лучей. Все параметры освещения, такие как яркость, цвет, будут настроены автоматически. Тени также будут иметь различные густоту, цвет и мягкость кромок в зависимости от времени суток.
Рассеянное освещение будет создаваться за счет взаимодействия двух дополнительных удаленных источников света. Все они будут иметь отключенную функцию формирования теней, их интенсивность и положение будут соответственно рассчитаны. Дополнительное освещение предназначено для подсветки неосвещенных областей.
Приложение следует запускать непосредственно в системе AutoCAD после того, как будет смоделирована трехмерная сцена с удачным ракурсом, максимально отображающии конструктивные особенности проектируемого сооружения.
Для вычисления параметров основного освещения от пользователя потребуется определиться со сторонами света, временем года и временем суток. Это осуществляется в специальной форме в диалоговом режиме.
Далее в программе создается пользовательская система координат ПСК-Компас, начало координат при этом совпадает с центром композициии и лежит в нулевой плоскости, направление оси Y совпадает с направлением на север, а направление оси X — на восток.
ВЕСТНИК
МГСУ-
В процессе расчета направления основных лучей приходится обращаться к матричной алгебре и аналитической геометрии.
На плоскости точку представляют с помощью двух ее координат. Их значения можно рассматривать как элементы матрицы Р[ху], т.е. в виде вектор-строки или вектора положения точки. Геометрически преобразовать точку, представленную с помощью вектора положения, можно, умножив этот вектор на некую матрицу преобразования Т.
[х' у'] = [х у] Т. (1)
Существует три типа элементарных преобразований: перенос, масштабирование относительно начала координат, поворот относительно начала координат. Математически их можно представить в виде систем уравнений, а также в матричном виде: перенос
Р' = Р + М; (2)
масштабирование относительно начала координат Р' = Р • 5; (3)
поворот относительно начала координат
Р' = Р • R. (4)
Перенос реализуется с помощью операции сложения, а масштабирование и поворот — с помощью умножения. Это неудобно для более сложных преобразований, например, для поворота относительно произвольного центра.
Чтобы получить результирующую матрицу такого преобразования, необходимо применить однородные координаты.
Однородные координаты в данном случае можно представить как вложение промасштабированной с коэффициентом Ж двумерной плоскости в плоскость Z = Ж в трехмерном пространстве (рис. 1). В этом случае количество координат увеличивается до трех: Р(х, у) ^Р(м> х, ц> у, м>).
Рис. 1. Однородные координаты
Введение однородных координат позволяет:
записать преобразования в универсальном виде, т.е. с учетом формулы (1) в виде произведения матриц
Р'= Р х Т; (5)
записать сложные преобразования в виде матрицы за счет композиции элементарных преобразований:
T = M x R x M2;
(6)
использовать при необходимости очень большие или очень маленькие координаты за счет коэффициента масштабирования V.
Для решения задач преобразования коэффициент масштабирования не имеет значения. Поэтому для простоты примем V = 1. Теперь вектор положения точки Р будет записываться в виде [х у 1].
И любое преобразование с учетом (5) и (6) можно записать в виде [х' у' 1] = [х у 1] • Т.
Поворот относительно произвольного центра можно представить как цепь последовательных преобразований:
перенос центра поворота в начало координат
М1 =
l о -d„
0
1 d
(7)
поворот относительно начала координат
cosa sina 0 R = -sina cosa 0 ; 0 0 1
(8)
перенос центра поворота из начала координат обратно в исходную позицию
M2 =
l 0 d
0 l
d
Суммарную матрицу для поворота относительно точки рСеп4ег (рс) с учетом однородных координат можно записать в таком виде:
T =
Pc
cosa -sina (l - cosa)+yPcsina
sina cosa
Уpc (1- cosa)-
xp sina
pc
(lO)
Для создания пользовательской системы координат ПСК-Компас используется способ «по трем точкам»: начало координат рСеПег; точка на оси X — точка рЕш,4; точка на оси У — точка р№г(Г
Координаты точек рСеп4ег и снимаются с экрана из заданного пользователем направления на север. Направление на восток будет определяться точкой рЕай, координаты которой можно найти путем поворота точки относительно рСеПег на 90° по часовой стрелке.
Таким образом, координаты точки, определяющей направление оси X в новой ПСК-Компас, будут определены по формулам:
ВЕСТНИК roft,-
3/2013
| x^ =xp cosa - y ^ sina+xp (1 - cosa)+v sina;
J Pe pn ^ pn pe \ j ^ pe (11)
1У Pe =XPn sina+ypn COsa+yp e í1 - COsa ) - xpesina- ( )
Перед созданием удаленного источника света «Уд1» в программе отключается освещение по умолчанию и разрешаются удаленные источники, выключается фотометрическое освещение и включается отображение всех теней, и собственных, и падающих.
Положение источника «Уд1» находится в бесконечности.
Математический алгоритм подпрограммы основан на поиске условной точки положения источника света pL1 в новой системе координат ПСК-Компас.
Для задания направления света необходимо определить следующие параметры:
угол наклона проекции вектора на плоскость XY к оси X;
угол наклона луча к плоскости XY (рис. 2).
Угол с: НИЩ Угол с:
осдоХ VÉlV плоскостью XY' ^5.3
Ёид е плане ОК | Отмена | ¡ Справка
Рис. 2. Углы, определяющие направление распространения света
Будем брать эти величины из таблицы в зависимости от указанного времени года и суток, где а — азимут солнца (юг 0°), в — угол высоты солнцестояния (в зените 90°).
Таблица углов солнечного света
Час (до /после Декабрь Январь, ноябрь Февраль, октябрь Март, сентябрь Апрель, август Май, июль Июнь
полудня) a в a в a в a в a в a в a в
4/20 125 1 127 3
5/19 110 2 114 8 117 11
6/18 90 0 92 10 107 16 105 18
Окончание табл.
Час (до /после полудня) Декабрь Январь, ноябрь Февраль, октябрь Март, сентябрь Апрель, август Май, июль Июнь
а ß а ß а ß а ß а ß а ß а ß
7/17 — — — — 72 0 78 7 85 18 90 20 92 22
8/16 — — 55 0 60 6 65 16 71 27 77 33 80 35
9/15 42 2 44 5 46 13 51 24 57 34 62 42 65 44
10/14 27 7 29 10 31 18 36 29 40 40 44 43 48 51
11/13 12 10 14 13 16 22 18 33 20 45 23 53 27 56
12 0 12 0 15 0 24 0 40 0 46 0 55 0 58
Для использования в расчетах азимут солнца удобнее измерять относительно направления на восток, что соответствует оси X пользовательской системы координат ПСК-Компас.
Чтобы привести угол а к мировой системе координат, необходимо найти угол между осью X ПСК-Компас и соответствующей осью мировой системы координат.
Угловой коэффициент прямой, проходящей через две точки, вычисляется по формуле k = (y2 -yx)/(x2 - Xj).
Будем искать угол между прямой, проходящей через точки pCenter и pNord, и осью X МСК.
Для нового направленИЯ на север kj = (Y ^Center - YPNord)/(XPCenter - XPn<J.
Для оси X: k2 = 0.
Если (XpCenter - XpNord) = 0, значит направление на север соответствует оси Y МСК и угол поворота осей равен нулю. В противном случае
k - k
tge =
i+kk
так как k2 = 0, то tg9 = -k.
Направление света задается единичным вектором е. Координаты начала вектора е:
fxe1 = cos 0; Уе1 =sin 0;
[ zei = sin ф.
Координаты конца вектора е:
[ *е2 = 0;
| Уе2 = 0; Ze2 = 0.
Интенсивность и цвет излучения источника «Уд1» также берем из таблицы.
Для большей реалистичности тени сделаем мягкими, но повторяющими геометрию объектов.
Композиция из двух источников света обеспечивает подсветку неосвещенных областей и имитирует рассеянный свет. Источники располагаются в плане ровно с противоположной от основного света стороны под углом в 90° друг к другу (рис. 3).
pL2
R
\
pAntL \
g г ^
а
pL3
1 ^
^ -- pL1
ОТ X)
Рис. 3. Схема расположения источников света вокруг модели
Для этого сначала найдем точку рАп1Ь, симметричную точке pL1 относительно начала координат в ПСК-Компас. Для определения координат х и у точки рАпЛ используем матрицу масштабирования с учетом однородных координат:
0 0
(12)
Коэффициенты масштабирования по осям х и у:
5 = -1;
х
5 = -1.
у
Таким образом, координаты точки рАп1Ь:
I ХрАп£Ь _ 5xXpL1;
S* 0 0
0 0 0
0 1
I У pAntL = SуУ pL1.
Координату zpAntL возьмем примерно на уровне глаз и примем равной 2000 мм.
Точки, определяющие направления светового потока от двух вспомогательных источников обратного света, получим с помощью поворота точки pAntL относительно оси Z ПСК-Компас в обе стороны, соответственно на 45° и на -45°.
Так как поворот осуществляется в плоскости, параллельной координатной плоскости XOY, то воспользуемся матрицей двухмерного поворота относительно начала координат (8).
Координаты точки, определяющей положение второго удаленного источника света:
*pL2 = *pL1 C0S а- УpL1 Sin a;
УpL2 = *pL1 sin a + УpL1 C0s a'; (13)
z pL2 = z pL1 ;
*pL2 = *pL1 C0S « - УpL1 Sin
УpL2 = *pL1 Sin a + УpL1 C0S ». (14)
Интенсивность излучения для Уд2 и Уд3 будет в 4 раза меньше, чем у Уд1. Функция генерации теней отключена. Цвет назначим в диапазоне цвета Уд1, но менее насыщенный.
С помощью подпрограммы на VB в среде AutoCAD по данным вычислений будут построены три источника света, настроены параметры света и теней, подготовлена и осуществлена реалистическая визуализация проектного решения.
Библиографический список
1. Полещук Н.Н. AutoCAD Разработка приложений, настройка и адаптация. СПб. : БХВ-Петербург, 2006.
2. Сиденко Л.А. Компьютерная графика и геометрическое моделирование. СПб. : Питер, 2009.
3. Глотова В.В., Лебедева И.М. Механизм центрального проецирования в компьютерной графике // Вестник МГСУ 2011. № 2. Т. 2. С. 342—346.
4. Позиционирование солнечных модулей. Метеорологические данные. 2012 г. Режим доступа: http://www.solarinntech.ru/informations/meteorological_data/. Дата обращения: 01.04.12.
5. Движение небесных тел. Специальная астрофизическая обсерватория Российской академии наук. 2011 г. Режим доступа: http://www.sao.ru/Doc-k8/Science/. Дата обращения: 01.04.12.
6. Фоли Дж., Вэн Дэм А. Основы интерактивной машинной графики. М. : Мир, 1987.
Поступила в редакцию в феврале 2013 г.
Об авторах: Лебедева Ирина Михайловна — доцент кафедры начертательной геометрии и графики, ФГБОУ ВПО «Московский государственный строительный университет» (ФГБОУ ВПО «МГСУ»), г. Москва, Ярославское шоссе, д. 26, 8(499)183-24-83, [email protected];
Синенко Сергей Анатольевич — доктор технических наук, профессор кафедры информационных систем, технологий и автоматизации в строительстве, ФГБОУ ВПО «Московский государственный строительный университет» (ФГБОУ ВПО «МГСУ»), г. Москва, Ярославское шоссе, д. 26, 8(495)287-49-14, доб. 31-07, sasin50@ mail.ru.
Для цитирования: Лебедева И.М., Синенко С.А. Автоматизация процесса визуализации проектных решений в среде AUTOCAD // Вестник МГСУ 2013. № 3. С. 228—236.
I.M. Lebedeva, S.A. Sinenko
AUTOMATION OF THE PROCESS OF VISUALIZATION APPLICABLE TO DESIGN SOLUTIONS IN THE AUTOCAD ENVIRONMENT
The authors provide a brief description of the software algorithm designed to automatize some of the final stages of design and research into buildings and structures, namely, computer-aided realistic visualization of a simulated object in the AutoCAD environment. Special attention is driven to realistic shadows that are important whenever a construction site is positioned within the environment. The software simulates sunlight by creating a remote source of light. Diffused light is generated by a set of three additional sources of light. The software algorithm is based on a pattern of light sources simulating sunlight and skylight. The point of location of each additional source of light is pre-set by the software operator. This point is identified by the software as the set of coordinates calculated using a special subroutine. The article has a table of sun angles for any time of the day and each month of the year at the latitude of Moscow.
Key words: solar lighting, ambient lighting, AutoCAD, photorealistic visualization, azimuth of the sun, turning points, homogeneous coordinates.
References
1. Poleshchuk N.N. AutoCAD Razrabotka prilozheniy, nastroyka i adaptatsiya [AutoCAD Application Development, Customization and Adaptation]. St.Petersburg, BKhV-Peterburg Publ., 2006.
2. Sidenko L.A. Komp'yuternaya grafika i geometricheskoe modelirovanie [Computer Graphics and Geometric Simulation]. St.Petersburg, Piter Publ., 2009.
3. Glotova V.V., Lebedeva I.M. Mekhanizm tsentral'nogo proetsirovaniya v komp'yuternoy grafike [Mechanism of Central Mapping in Computer Graphics]. Vestnik MGSU [Proceedings of Moscow State University of Civil Engineering]. 2011, no. 2, vol. 2, pp. 342—346.
4. Pozitsionirovanie solnechnykh moduley. Meteorologicheskie dannye. 2012 g. [Positioning of Solar Modules. Meteorological data. 2012.] Available at: http://www.solarinntech.ru/ informations/meteorological_data Date of access: 01.04.12.
5. Dvizhenie nebesnykh tel. Spetsial'naya astrofizicheskaya observatoriya Rossiyskoy akademii nauk. 2011 g. [Motion of Celestial Bodies. Special Astrophysical Observatory of the Russian Academy of Sciences. 2011] Available at: http://www.sao.ru/Doc-k8/Science/ Date of access: 01.04.12.
6. Folly G., Van Dam A. Osnovy interaktivnoy mashinnoy grafiki [Fundamentals of Interactive Computer Graphics]. Moscow, Mir Publ., 1987.
About the authors: Lebedeva Irina Mikhaylovna — Associate Professor, Department of Descriptive Geometry and Graphics, Moscow State University of Civil Engineering (MGSU), 26 Yaroslavskoe shosse, Moscow, 129337, Russian Federation; [email protected]; +7 (499) 183-24-83;
Sinenko Sergey Anatol'evich — Doctor of Technical Sciences, Professor, Department of Information Systems, Technology and Automation in Civil Engineering, Moscow State University of Civil Engineering (MGSU), 26 Yaroslavskoe shosse, Moscow, 129337, Russian Federation; [email protected]; +7 (495) 287-4914, ext. 31-07.
For citation: Lebedeva I.M., Sinenko S.A. Avtomatizatsiya protsessa vizualizatsii pro-ektnykh resheniy v srede AUTOCAD [Automation of the Process of Visualization Applicable to Design Solutions in the AutoCAD Environment]. Vestnik MGSU [Proceedings of Moscow State University of Civil Engineering]. 2013, no. 3, pp. 228—236.