Мегаобучалка Главная | О нас | Обратная связь


Операции над примитивами



2019-08-13 578 Обсуждений (0)
Операции над примитивами 0.00 из 5.00 0 оценок




Над примитивами можно выполнять следующие операции: Создавать, Удалять, Устанавливать свойства, Получать копии, Перемещать, Поворачивать, Отображать зеркально, Масштабировать, Штриховать, Закрашивать и др.

37. Матричное представление двумерных преобразований

 

Преобразования переноса, масштабирования и поворота в матричной форме записываются в виде

К сожалению, перенос реализуется отдельно (с помощью сложения) от масштабирования и поворота (с помощью умножения). Хотелось бы представить их таким способом, чтобы все эти три элементарных преобразования можно было легко объединять вместе. Ниже в этом разделе показано, как это можно сделать.

Если мы выразим точки в однородных координатах, то все три преобразования можно реализовать с помощью умножений. Однородные координаты были введены в геометрии и впоследствии использованы в графике. С однородными координатами и преобразованиями над ними работают многие пакеты графических подпрограмм и некоторые дисплейные процессоры. В одних случаях эти координаты используются прикладной программой непосредственно при задании параметров для графического пакета, в других — применяются лишь внутри самого пакета и недоступны для программиста.

В однородных координатах точка Р (х, у) записывается как P(W∙ x, W ∙ y, W) для любого масштабного множителя W≠0. При этом если для точки задано ее представление в однородных координатах Р(Х, Y, W), то можно найти ее двумерные декартовы координаты как x=X/W и y=Y/W. В этой главе W всегда будет равно 1, поэтому операция деления не требуется. Однородные координаты можно представить как вложение промасштабированной с коэффициентом W двумерной плоскости в плоскость z=W (здесь z = 1) в трехмерном пространстве.

Точки теперь описываются трехэлементными вектор-строками, поэтому матрицы преобразований, на которые умножается вектор точки, чтобы получить другой вектор точки, должны иметь размер 3x3. Уравнения переноса записываются в виде матрицы преобразования однородных координат следующим образом:

где

Что будет, если точку Ρ перенести в точку Р' на расстояние (Dx1, Dy1), а затем в Р" на расстояние (Dx2 Dy2). Интуитивно ожидаемый результат в этом случае представляет собой суммарный перенос на расстояние (Dx1+Dx2, Dy1+Dy2). Чтобы доказать это, запишем данные в виде

Теперь получим:

Матричное произведение Τ(Dx1, Dy1) ∙ T(Dx2, Dy2) есть

Действительно, результирующий перенос есть (Dx1+Dx2, Dy1+ Dy2). Матричное произведение в разных случаях называют объединением, соединением, конкатенацией и композицией матриц T(Dx1, Dy2) и T(Dx2, Dy2). В этой главе мы будем использовать термин композиция.

Уравнения масштабирования в матричной форме записываются в виде

Определяя

имеем

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


то получим:

Матричное произведение S(Sx1, Sy1)∙S(Sx2, Sy2) есть

Таким образом, масштабирования в самом деле мультипликативны. И, наконец, уравнения поворота можно представить в виде:

Полагая

Имеем

 

 

Преобразования, как и компьютерную геометрию, разделяют на двумерные, или преобразования на плоскости, и трехмерные, или пространственные. Вначале рассмотрим преобразования на плоскости.

Для начала заметим, что точки на плоскости задаются с помощью двух ее координат. Таким образом, геометрически каждая точка задается значениями координат вектора относительно выбранной системы координат. Координаты точек можно рассматривать как элементы матрицы [.х, у], т. е. в виде вектор-строки или вектор-столбца. Положением этих точек управляют путем преобразования матрицы.

Точки на плоскости ху можно перенести в новые позиции путем добавления к координатам этих точек констант переноса:

Таким образом, для перемещения точки на плоскости надо к матрице ее координат прибавить матрицу коэффициентов преобразования.

Рассмотрим результаты матричного умножения матрицы [х, у], определяющей точку Р, и матрицы преобразований 2x2 общего вида:

Проведем анализ полученных результатов, рассматривая х* и у* как преобразованные координаты. Для этого исследуем несколько частных случаев.

Рассмотрим случай, когда a=d= c = b = 0. Матрица преобразований приводит к матрице, идентичной исходной,

При этом изменений координат точки Р не происходит.

Если теперь d = 1, b = с = 0, а = const, то

Как видно, это приводит к изменению масштаба в направлении х, так как х = ах. Следовательно, данное матричное преобразование эквивалентно перемещению исходной точки в направлении х.

Теперь положим Ъ = с = 0, т. е.

В результате получаем изменение масштабов в направлениях х и у. Если a<>d, то перемещения вдоль осей неодинаковы. Если а = d > 1, то имеет место увеличение масштаба координат точки Р. Если 0 < а = d < 1, то будет иметь место уменьшение масштаба координат точки Р.

В том случае, когда эти константы равны между собой, масштабирование называется однородным. На рис. 2.5 приведен пример однородного масштабирования треугольника АВС.

Рис. 2.5. Операция масштабирования

После применения операции однородного масштабирования с коэффициентом 2 он переходит в треугольник А 'В 'С.

Если а или (и) d отрицательны, то происходит отображение координат точек. Рассмотрим это, положив b = с = 0, d= 1 и а = -1, тогда

Произошло отображение точки относительно оси Y. В случае b = с = О, а= l,d = -l отображение происходит относительно оси X. Если b = с = 0, а = d < 0, то отображение будет происходить относительно начала координат.

Заметим, что отображение и изменение масштаба вызывают только диагональные элементы матрицы преобразования.

Теперь рассмотрим случай, когда а = d = 1, а с = 0, т. е.

Координата х точки Р не изменяется, в то время как у линейно зависит от начальных координат. Этот эффект называется сдвигом. Аналогично, когда а = d = 1, b = 0, преобразование осуществляет сдвиг пропорционально координате у.

Заметим, что преобразование общего вида, примененное к началу координат, не приведет к изменению координат точки (0,0). Следовательно, начало координат инвариантно при общем преобразовании. Это ограничение преодолевается за счет использования однородных координат.

Если подвергнуть общему преобразованию различные геометрические фигуры, то можно установить, что параллельные прямые преобразуются в параллельные прямые, середина отрезка - в середину отрезка, параллелограмм - в параллелограмм, точка пересечения двух линий - в точку пересечения преобразованной пары линий.

Преобразование единичного квадрата. Четыре вектора положения точек единичного квадрата с одним углом в начале координат записываются в виде

Г а b

Применение общего матричного преобразования к единич-

\_с d _

ному квадрату приводит к следующему (рис. 2.6):

Из полученного соотношения можно сделать вывод, что координаты В * определяются первой строкой матрицы преобразования, а координаты D* второй строкой этой матрицы. Таким образом, если координаты точек В* и D* известны, то общая матрица преобразования определена. Воспользуемся этим свойством для нахождения матрицы преобразования для вращения на произвольный угол.

Рис. 2.6. Преобразования единичного квадрата

Рис. 2.7. Вращение единичного квадрата

Общую матрицу 2^2, которая осуществляет вращение фигуры относительно начала координат, можно получить из рассмотрения вращения единичного квадрата вокруг начала координат (рис. 2.7).

Как следует из рис. 2.7, точка В с координатами (1,0) преобразуется в точку В , для которой х = (l)cos 0 и у = (l)sin 0, а точка D, имеющая координаты (0,1), переходит в точку D с координатами х = (-l)sin 0 и у = (l)cos 0.

Матрица преобразования общего вида записывается так:

Для частных случаев поворот на 90° можно осуществить с помощью матрицы преобразования

Если использовать матрицу координат вершин, то получим, например:

Г-i о"

Поворот на 180° получается с помощью матрицы ^ .

Отображение. В то время как чистое двумерное вращение в плоскости ху осуществляется вокруг оси, перпендикулярной к этой плоскости, отображение определяется поворотом на 180° вокруг оси, лежащей в плоскости ху.

Такое вращение вокруг линии у = х происходит при использовании

"0 11

матрицы ^ .

Преобразованные новые выражения определяются соотношением

Вращение вокруг у = 0 получается при использовании матрицы "i 0]

° -1 '

 

 

38. Составные объекты.

 

Составные объекты (Compound objects) – это объекты, которые являются результатом взаимодействия двух или более тел. Используя составные объекты, можно деформировать, разрезать, соединять, удалять и выдавливать поверхности, создавать упорядоченные или случайные массивы клонов, а также модели земных поверхностей на основе контурных линий. Объекты, к которым применяются команды для работы с составными объектами, являются операндами в операции создания составного объекта.

К составным объектам относятся лофтинговые объекты (Loft), логические операции с трехмерными объектами (Boolean), присоединение сплайна к трехмерному объекту (Merge) и др.

 

Имеется десять типов составных объектов: Boolean (Булевы), Connect (Соединяющиеся), Scatter (Распределенные), Shape Merge (Слитые с формой), Terrain (Ландшафтные], Conform (Согласованные), Loft (Лофтинговые), Morph (Mopфинговые), Меsher (Сетчатые) и BlobMesh (Капелъносетчатые).

Составные объекты сочетают некоторые из лучших качеств модификаторов и массивов. Используя составные объекты, можно деформировать, разрезать, соединять, удалять и выдавливать поверхности

39. Типы источников света. Создание и настройка общих параметров.

 

В Blender имеется пять типов источников света – Lamp, Sun, Spot, Hemi и Area – каждый для своих целей и с уникальными свойствами. Тип источника света в сцене можно изменить, используя кнопки на панели Preview.

Лампа Точка.

Свет от неё идёт во всех направлениях.

У каждого источника света (у каждой лампочки) имеются свои индивидуальные настройки. Можно настроить интенсивность, направленность и т.д.

На панели свойств открываем закладку свойства света. Мы можем изменить имя лампы. В группе «Предпросмотр» видим интенсивность света. В группе «Лампа» настраивается мы можем поменять тип лапы, установить количество света от источника освещения, расстояние, на котором интенсивность освещения уменьшается в два раза, инвертировать (затемнить вместо освещения).

В группе «Тень» можно установить параметр «Без теней» и объект не будет отбрасывать тень. При «Трассировке теней» тень будет отображаться и можно выбрать цвет тени и её интенсивность.

Лампа Солнце.

Имитирует свет солнца. Свет от неё излучается в одном направлении (направленный).

На панели свойств открываем закладку свойства Солнца. На ней можем менять энергию (количество света от источника освещения), установить небесное освещение. Не стоит устанавливать Солнце вертикально – сцена становится скучной. Лучше немного повернуть направление лучей.

Лампа Прожектор.

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

У неё также настраивается панель свойств. В ней можно установить режим без теней или с трассировкой теней, изменить размер светового пятна, смещение. Можно сделать так, чтобы световое пятно отображалось не кругом, а квадратом. Поставив галочку напротив «Гало» мы увидим интересный эффект видимости потока света.

Лампа полусфера.

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

Лампа область.

Все лампы кроме этой излучают свет из одной точки, а она излучает из многих точек (из области). Это даёт эффект гладких теней.

Светом можно придать сцене настроение. Мало света даёт ощущение пасмурности и грусти. Хорошо освещённая сцена – радость. Чересчур большое количество света – раздражающе и неестественно. Освещение (не подсветка) снизу задаёт нагнетающую обстановку, ощущение страха.

40. Размещение материала на поверхности объекта.

 

В средах трехмерного моделирования изменение цветовых свойств объекта – это не то же самое, что изменение цвета в большинстве сред 2D-графики. В 3D вы добавляете и настраиваете объекту не цвет, а материал, то есть то, из чего он как бы изготовлен. Материал может имитировать пластик, песок, стекло, металл, воду и др.

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

С другой стороны, к одному объекту могут быть применены несколько материалов. Например, с каждой гранью куба можно связать свой материал. Однако, когда вы создаете материал, он автоматом привязывается к выделенному объекту.

Для настройки материалов предназначена вкладка Material редактора свойств. Ее нет у камеры и лампы, но у меш-объектов она есть. У только что добавленных мешей нет материалов. Однако у куба стартового файла он есть.

С помощью панели Diffuse можно изменить цвет материала.

С помощью панели Specular можно управлять степенью глянцевости материала.

С помощью панели Shading можно управлять степенью затенения материала.

С помощью панели Transparency можно управлять степенью прозрачности материала.

С помощью панели Mirror можно создать зеркальный материал, т.е. материал, обладающую отражающей способностью.

41. Методы виртуального моделирования и модификации объектов. Тела вращения.

Пункт 22

Огромное количество окружающих нас объектов имеют округлую форму. 3ds Max предоставляет возможность создавать такие объекты. Для создания тела вращения следует нарисовать линией контур огибающей тела. Затем, провернуть на 360 градусов нарисованный контур вокруг виртуальной оси.


 

В результате применения модификатора Lathe (вращение), получим такой замечательный бокал:


 

Известным нам методом нарисуем и отредактируем контур объекта. Рисовать объект следует на виде Front. Начинать лучше всего с прорисовки будущей осевой линии объекта и продолжать рисование до получения замкнутого контура. При окончании рисования, когда конечная линия приблизится к начальной, 3ds Max выдаст сообщение:


 

Закрыть сплайн (замкнуть)? Следует нажать кнопку "Да" (Yes). Если был включён режим редактирования контура, то его следует отключить. Для получения тела вращения следует, в разделе модификаций, из списка Modifier List выбрать модификатор Lathe.


 

Скорей всего, получится такая фигура, явно не соответствующая задуманному:


 

Всё дело в том, что 3DS Max провернул наш контур не по предполагаемой оси вращения, а через центр контура. Для того чтобы исправить положение, следует нажать кнопку Min на панели модификаций в поле Align (Выравнивание). Объект примет задуманный вид:


 

Тела вращения – это объемные тела, которые возникают при вращении некой плоской фигуры, которая, в свою очередь, ограничена кривой и крутится вокруг оси, лежащей в той же плоскости.

Какие же основные тела вращения существуют?

1. Шар. Это геометрическая фигура, которая образована в результате вращения полукруга вокруг диаметра разреза.

2. Цилиндр. Это геометрическая фигура, которая образована в результате вращения прямоугольника вокруг одной из его сторон.

3. Конус. Это геометрическая фигура, которая образована в результате вращения прямоугольного треугольника вокруг одного из своих катетов.

4. Тор. Это геометрическая фигура, которая образована в результате вращения окружности вокруг прямой, при этом окружность прямую не пересекает.

Стоит отметить такой интересный факт, что если вращаются контуры фигур, то у нас возникает поверхность вращения. Пример – сфера, которая образовывается в результате вращения окружности. Если же вращаются заполненные контуры, то у нас возникают тела. например, шар, который образовывается в результате вращения круга 9а круг. как всем известно, тело заполненное).

Тела вращения, разумеется, имеют свой объем и свою площадь. И то и другое, можно узнать с помощью теорем Гульдина-Паппа.

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

Вторая теорема говорит о том, что объем тела, который образуется при вращении фигуры и лежит целиком в плоскости по одну сторону от оси вращения, равняется произведению площади фигуры на длину окружности, пробегаемой центром масс этой фигуры.

Тела вращения
Цилиндр
S бок = 2πRh
S полн = 2πR 2 + 2πRh
V = πR 2 h
Конус
S бок = πRl
S полн = πR(R + l)
V = 1 3 πR 2 h
Усеченный конус
S бок = πl(R + r)
S полн = S бок + π(R 2 + r 2 )
V = 1 3 πh(R 2 + Rr + r 2 )
Шар
S сферы = 4πR 2 = πd 2
V = 4 3 πR 3 = 1 6 πd 3
Шаровой сектор
S = πR(2h + a)
V = 2 3 πR 2 h
Шаровой сегмент
a 2 = h(2R - h)
S бок = 2πRh = π(a 2 + h 2 )
S полн = π(2Rh + a 2 ) = π(h 2 + 2a 2 )
V = πh 2 (R - h 3 )
Шаровой пояс(слой)

 

42. Типы материалов. Библиотеки материалов.

 

Библиотека материалов – это библиотека, где пользователь может найти базовые и наиболее часто используемые материалы для использования в своих проектах или для создания на их базе своих собственных материалов.

При создании нового проекта возможно перенести библиотеку материалов в новый проект автоматически и подключать материалы оттуда.

Для этого при создании нового проекта при помощи менеджера проектов надо выставить галочку Use Material Library. Тогда вся библиотека материалов будет автоматически скопирована в папку /assets/material_library/ в каталоге нового проекта.

Примечание

Библиотека материалов может использоваться и в уже существующем проекте. Для этого достаточно скопировать файлы из папки /blender/material_library/ в каталоге SDK в папку /assets/ в каталоге проекта. После этого файлы материалов можно подключить к файлу сцены и использовать материалы в сцене.

Примечание

Как и любые объекты, материалы можно добавлять к сцене с помощью команд Link иAppend. Разница между ними описана здесь.

Структура библиотеки

Все материалы структурированы по папкам (по группам материалов) и отдельным файлам (по материалам). В каждом blend-файле находится один базовый материал (например bronze) и материал на дополнительном объекте (например happy_recon_bronze), который позволяет демонстрировать материал на характерном объекте, ассоциирующимся с данным материалом (например: материал золото — золотой слиток).

Структура материала

1. Ядро материала

2. Нода Material, в которую подается вся нужная информация из ядра материала.

3. Карта нормалей, которую при необходимости можно подключить к любому ядру материала.

4. Текстура с необходимыми дополнительными масками для задания корректного поведения материала на поверхности объекта. В большинстве материалов использованы следующие маски:

· Карта затенения

· Карта загрязнения

· Карта потёртостей

· Карта патины

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

5. Нода Mapping, регулирующая параметры UV-развертки.

6. Ноды RGB Curve, позволяющие корректировать те или иные маски прежде чем они будут поданы в ядро материала.

7. Специфическая настройка карты спекуляра после ноды Material, для создания разной степени размытости блеска с использованием масок.

8. Запеченная карта затенения добавляется к шейдеру перед нодой Output.

9. Нода Output

Ядро материала

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

Пример использования

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

1. Базовый цвет задан простой нодой RGB Color и подан на вход в ядро материала.

2. В данной реализации материала не используется никаких карт нормалей и во вход Normal поданы данные нормалей с геометрии.

3. В данном ядре материала присутствует специфическая настройка, регулирующая уровень глянца на материале. В данном случае значение выставлено на максимум.

4. Также в материале используется запеченная маска затенения.

Теперь рассмотрим использование того же материала на другом объекте - пластиковом джойстике.

1. В качестве цвета здесь используется вертексный цвет с геометрии объекта.

2. Для геометрии джойстика была запечена карта нормалей, которая подана во вход Normal ядра материала.

3. Уровень глянца объекта настроен на меньшее значение.

4. Вместо масок демонстрационной модели используются маски (загрязнения и затемнения), запеченные специально для модели джойстика.

Примечание

Следует заметить, что содержимое ядра материала не менялось и не корректировалось под другую геометрию.



2019-08-13 578 Обсуждений (0)
Операции над примитивами 0.00 из 5.00 0 оценок









Обсуждение в статье: Операции над примитивами

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Личность ребенка как объект и субъект в образовательной технологии: В настоящее время в России идет становление новой системы образования, ориентированного на вхождение...
Организация как механизм и форма жизни коллектива: Организация не сможет достичь поставленных целей без соответствующей внутренней...
Как построить свою речь (словесное оформление): При подготовке публичного выступления перед оратором возникает вопрос, как лучше словесно оформить свою...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (578)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.015 сек.)