Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция №5 по КГиГ.doc
Скачиваний:
6
Добавлен:
11.11.2018
Размер:
7.79 Mб
Скачать

§ 2.3 Определение видимости

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

Видимость рассматривается из определенной точки пространства, которая называется точкой зрения.

Если лучи проецирования не параллельны и размер рассматриваемого объекта соизмерим с расстоянием, с которого этот объекта рассматривается, то проецирование называется центральным.

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

Видимой считается единственная точка, из лежащих на луче проецирования, которая расположена ближе всех к точке зрения и дальше всех от экрана (объект расположен между экраном и точкой зрения).

Алгоритм определения видимости для сцены, содержащей несколько объектов, следующий (рис.2.6):

  1. Определение глубин точек, лежащих на различных поверхностях и на одном луче проецирования;

  2. Сравнение этих глубин и выбор точки, ближайшей к точке зрения;

  3. Определение уровня освещенности выбранной точки;

  4. Вывод точки на экран;

  5. Сканирование осуществляется последовательно по всем поверхностям всех объектов, начинается с точки выбора поверхности, и проверяются все точки поверхности (рис.2.6);

  6. Начиная с точки выбора поверхности, проверяется видимость точек поверхности сравнением значений глубин с точками всех других поверхностей (процедуры 1,2). Если точка видна, то выполняем процедуры (3,4), если нет, то переходим к проверке следующей точки;

  7. Процесс определения видимости заканчивается проверкой последней точки последней поверхности.

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

Рис. 2.6

§ 2.4 Построение теней

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

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

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

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

Алгоритм визуализации пространственной сцены с тенями следующий:

  1. Для каждого источника света:

- освещаем полностью экран в зависимости от интенсивности источника света;

- проводим лучи света из источника света к экрану через объекты, начиная с точек выбора поверхностей объекта;

- если луч света задерживается полностью или частично (при полупрозрачных объектах) поверхностью объекта, то в этой точке экрана вычитаем интенсивность источника света в полутонах освещенности и получаем тень объекта на экране;

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

  1. При вычислении полутонов окраски поверхности:

- вычисляем суммарный вектор освещенности с учетом всех источников света;

- определяем угол между линией зрения и суммарным вектором освещенности;

- определяем полутон окраски поверхности с учетом цвета поверхности.

Этот алгоритм при последовательной обработке и выводе изображения на экран дает следующий зрительный эффект:

  1. Включается первый источник света и полностью освещается экран;

  2. Появляется тень на экране от первой поверхности первого объекта сцены;

  3. Затем появляются последовательно все тени от всех поверхностей всех объектов сцены;

  4. Включаем следующий источник света, освещенность растет, появляются новые тени;

  5. Далее включаются остальные источники света.

  6. После отображения теней от последнего источника света начинают появляться изображения объектов со своей окраской и освещенностью от различных источников.

Рассмотрим другой алгоритм построения теней:

  1. Суммируем интенсивность всех источников света и освещаем экран;

  2. Проводим лучи света из источника света к экрану через объекты, начиная с точек выбора поверхностей объекта;

  3. Если луч света задерживается полностью или частично (при полупрозрачных объектах) поверхностью объекта, то в этой точке экрана вычитаем интенсивность источника света в полутонах освещенности и получаем тень объекта на экране;

  4. Перебираем все источники света и получаем тени и полутени на экране.

На рис.2.7 показана схема построения теней от поверхности пространственного объекта на экране.

Рис. 2.7

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

Из двух рассмотренных алгоритмов второй алгоритм более “быстрый”, так как не требует запоминания и проверки полутонов освещенности экрана при определении тени.