§ 8. Удаление невидимых граней. Расчёт теней
Рассмотрим последовательность действий, которая обычно применяется при удалении невидимых граней. Допустим, уже сформировано множество треугольных граней t t1 ,..., tn и все они непрозрачны.
I. Удаление граней, расположенных на невидимых сторонах объектов.
Для каждой грани рассматривается ее внешняя нормаль N, а также радиус-вектор r, соединяющий точку на грани с точкой наблюдения.
Рис 9.6
Если грань находится с видимой стороны объекта, то для угла y между векторами N иr выполняется условие y < 90 o , если с невидимой, то y 90 o (Рис.9.6). Данное условие проверяется для всего массива треугольников t. Из него удаляются все, у которых
yi 90 o.
Обозначим множество оставшихся треугольников через t t1 ,...tm, m<n.
I. Удаление граней, полностью закрывающихся другими, и определение видимых частей граней, закрывающихся час-тично.
200
Организуется последовательный просмотр множества и для каждого треугольника tJ выполняются следующие операции:
1.Рассматривается списокt, в который входят треугольники tk с номерами k = j+1, ... , m - т.е. все последующие за tJ треугольники из t. Из списка t удаляются заведомо непересекающиеся с tJ треугольники. Допустим , tk t. Обозначим координаты вершин с номерами 1, 2, 3 в треуголь-никах tJ и tk в виде:
tJ = ( (хJ 1 , уJ 1 ), ( хJ 2 , уJ 2 ), ( хJ 3 , уJ 3 ) ) ,
tk = ( (хk 1 , уk 1 ), ( хk 2 , уk 2 ), ( хk 3 , уk 3 ) ) .
Условия пересечения tJ , tk по оси х формулируются в виде двух неравенств:
( Рис.9.7)
(Рис.9.8)
Первое неравенства означает, что все вершины tJ лежат ле-вее по оси х всех вершин tk, второе неравенство - обратное условие.
Условия непересечения tJ и tk по оси y формулируются ана-логично. При непересечении tJ c tk хотя бы по одной из осей x, y треугольник tk исключается из списка t. В итоге после исключения заведомо непересекающихся с tJ треугольников из списка t получается сокращённый список t треуголь-ников, которые имеют пересечения с tJ по обеим коор-динатам. Если список t пуст, то треугольник tJ сохра-няется в списке t и рассматривается треугольник из этого списка с последующим номером (переход к пункту 1).
Eсли список t не пуст, то это означает, что есть тре-угольники, пересекающиеся с tJ одновременно по обеим координатам. Эта ситуация встречается наиболее часто.
201
Рис. 9.7 Рис. 9.8
Здесь используется более углубленный анализ относитель-ного положения граней.
Поочередное сравнение треугольника tJ с треугольниками из t. Возможны следующие случаи относительного расположения tJ и треугольников tst:
а) треугольники не пересекаются (Рис.9.9), поэтому никаких действий производить не требуется.
Рис. 9.9 Рис. 9.10
202
б) tJ попадает внутрь ts (Рис. 9.10). Дополнительно анали-зируется их близость к наблюдателю. Если ts ближе, то tJ ис-ключается из списка видимых граней и его анализ закан-чивается. Если tJ ближе, то видимая часть ts делится на новые треугольные грани, которые включают в список t вместо ts .
в) ts попадает внутрь tJ (Рис. 9.11). Обработка аналогична.
Рис. 9.11 Рис. 9.12
г) треугольники tJ и ts пересекаются (Рис. 9.12). Исходя из близости граней к наблюдателю невидимые части граней исключаются, оставшиеся части при необходимости разбивают на новые треугольники и рассматривают вместо исходной грани.
Алгоритмы нанесения теней идентичны алгоритмам удаления скрытых граней с той разницей, что во втором случае определяются поверхности, видимые наблюдателем, а в первом – поверхности, видимые из источника освещения (осве-щаемые). Эти поверхности воспринимают свет от источника в отличие от не воспринимающих невидимых (затенённых) поверхностей. Поскольку на сцене, как правило, всегда присутствует несколько источников (в том числе – и рассеян-
203
ный свет, то затенённые относительно одного источника по-верхности освещаются другими.
Если объекты и источники освещения неподвижны, а изменяется только положение наблюдателя (он рассматривает неподвижную сцену), то положение теней не изменяется и они рассчитываются только один раз.
- Глава 1. Основные виды геометрических объектов
- §1. Основные аналитические способы задания кривых
- §2. Виды кривых
- §3. Основные способы задания прямых
- §4. Способы задания окружностей и их дуг
- §6. Виды поверхностей
- Пример 2.Уравнение конуса второй степени
- §7. Основные способы задания плоскостей
- §8. Аналитические способы задания пространственных тел
- Глава 2. Интерполяция кривых и поверхностей алгебраическими полиномами
- §1. Основные способы моделирования кривых. Интерполяция и аппроксимация
- §2. Интерполирование кривых с помощью алгебраических полиномов канонического вида
- §3. Интерполирование по однократным узлам. Интерполяционные многочлены Лагранжа и Ньютона
- §4. Интерполирование по двукратным узлам. Интерполяционные многочлены Эрмита
- §5. Интерполирование поверхностей
- 5.1. Интерполирование по однократным узлам. Билинейные поверхности
- 5.2. Интерполирование по двукратным узлам
- Глава 3. Моделирование кривых и поверхностей при помощи сплайнов
- I. Построение локальных сплайнов.
- II. Построение интерполяционных сплайнов.
- §1. Интерполирование кривых и поверхностей с помощью локальных сплайнов
- 1.1 Построение сплайнов по однократным узлам
- 1.2 Интерполирование по двукратным узлам
- §2. Построение интерполяционных сплайнов.
- 2.2. Кубические интерполяционные сплайны
- §3. Интерполяция с помощью в-сплайнов
- Глава 4. Интерполирование поверхностей по линиям
- §1.Интерполирование по кривым (линейчатые или плазовые поверхности)
- §2. Линейные поверхности Кунса
- §3. Обобщенные поверхности Кунса
- Глава 5. Аппроксимация алгебраическими полиномами
- §1. Аппроксимация по методу наименьших квадратов
- §2. Аппроксимация алгебраическими многочленами по критерию наилучшего равномерного приближения
- § 3. Аппроксимация при помощи кривых и поверхностей Безье
- Глава 6. Модели объектов. Плоские и пространственные линейные преобразования
- §1. Модели (структуры данных) графических объектов
- §2. Задание плоских и пространственных линейных преобразований при помощи уравнений связи
- § 3. Однородные координаты. Матричные представления линейных преобразований
- Задачи. Записать прямые и обратные матрицы элемен-тарных преобразований, при помощи которых можно осу-ществить следующие действия:
- § 4. Составные линейные преобразования
- § 5. Линейные преобразования каркасных моделей
- Глава 7.Проективные изображения трехмерных объектов
- §1. Аксонометрические проекции
- 1.1.Ортогональные проекции
- 1.2 Диметрические проекции
- Куб Диметрическая проекция
- 1. 3. Изометрическая проекция
- §2. Перспективные проекции
- §3. Построение проективных векторных изображений трёхмерных объектов
- Глава 8. Графические базы данных (гбд)
- §1. Структура и схема функционирования типовых гбд
- §2. Постановка задачи проектирования гбд в графической системе AutoCad
- Точки привязки
- §3. Разработка структуры гбд
- §4. Пакетные файлы гбд
- §5. Параметрические функции гбд
- §6. Создание библиотек слайдов гбд
- §7. Модификация основного меню AutoCad 2000
- 7.1. Файл меню. Его разделы. Управляющие символы
- 7.2. Модификация всплывающего и падающего меню AutoCad2000
- 7.3. Модификация экранного меню AutoCad2000
- 7.4. Модификация графического меню AutoCad2000
- §8. Использование разработанной базы данных
- Глава 9. Создание реалистических изображений
- § 1. Пространственные модели
- §2. Геометрическое моделирование объектов сложной формы
- § 3. Текстуры
- § 4. Основные операции при построении реалистических изображений
- § 5. Моделирование источников освещения и расчёт освещённости малых участков поверхности объектов
- § 6. Моделирование отражающих свойств поверхностей
- § 7. Моделирование отражения от поверхности (затенение)
- § 8. Удаление невидимых граней. Расчёт теней
- §9. Создание стереоскопического эффекта
- §10. Анимация
- Порядок выполнения и примерные темы курсовых работ
- Литература