Материал: Алгоритмы компьютерной графики. В 3 ч. Ч. 3 (200

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

ymax

направление

света

поверхность

объекта

ymin

Рис. 2.14. Модель Варна. Заслонки

направление γ света

β

Р

Рис. 2.15. Модель Варна. Конусы

Заслонки, ориентированные по координатным плоскостям, моделируются путем ограничения протяженности освещенного участка по осям X, Y и Z. Если точка поверхности лежит внутри ограничителей, то вычисляется интенсивность, определяемая этим источником, иначе она игнорируется. Для рис. 2.14 необходимо, чтобы

ymin ≤ yобъекта ≤ ymax.

Конус позволяет получить четко очерченное пятно света без затухания по краям. Но при этом необходимо, чтобы угол β был меньше или равен углу γ, иначе точка поверхности не освещается данным источником света.

2.6.Прозрачность

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

31

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

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

η1 sinθ η2 sinθ ,

где η1 и η2 – показатели преломления сред; – угол падения; – угол преломления (рис. 2.16). Ни одно вещество не пропускает весь падающий свет, часть его всегда отражается, что также проиллюстрировано на рис. 2.16.

 

 

Среда 1

Падающий

 

 

луч

 

Отраженный

 

 

θ

θ

луч

 

 

 

граница

 

 

Преломленный

 

θ'

луч

 

 

 

 

Среда 2

Рис. 2.16. Преломление света

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

Некоторые эффекты преломления показаны на рис. 2.17.

32

b

2

a

3

1

4

Рис. 2.17. Эффекты преломления света

Показатели преломления объектов 1 и 2 одинаковы, а объекты 3 и 4 непрозрачны. Если не принимать во внимание эффект преломления, то наблюдатель в точке a видит объект 3, а наблюдатель в точке b – объект 4 (пунктирная линия). На самом деле, с учетом преломления, из точки a мы видим объект 4, а из точки b – объект 3 (непрерывная линия).

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

Простое пропускание можно встроить в любой алгоритм (кроме алгоритма с z-буфером) следующим образом.

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

I tI1 1 t I2 ,

где I1 – интенсивность видимой поверхности;

I2 – интенсивность поверхности, расположенной непосредственно за ней;

33

t – коэффициент прозрачности видимой поверхности (если t = 0, то поверхность полностью прозрачна, иначе при t = 1 поверхность полностью непрозрачна). Если поверхность 2 тоже прозрачна, то алгоритм применяется рекурсивно, пока не встретится фон или непрозрачная поверхность. Вблизи контурных линий прозрачность уменьшается изза толщины материала (например, ваза). Поэтому в данном случае применяется нелинейная интерполяция:

t tmin tmax tmin 1 1 nz

p ,

где tmin и tmax – минимальные и максимальные составляющие прозрачности объекта;

nz – z-составляющая нормали к поверхности; p – коэффициент степени прозрачности;

t – прозрачность пиксела или точки объекта.

Для алгоритма с z-буфером необходимы отдельные буферы прозрачности, интенсивности и весовых коэффициентов прозрачности. Также необходимо отметить прозрачные многоугольники в структуре данных. Алгоритм для z-буфера приведен в [1].

3. ГЕОМЕТРИЧЕСКИЕ ПРЕОБРАЗОВАНИЯ

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

3.1. Двумерные преобразования

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

34

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

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

xyx y m, nx m y n ,

где m и n – коэффициенты матрицы преобразования.

Рассмотрим результаты матричного умножения матрицы [x y] на матрицу преобразования общего вида и частные случаи этой матрицы

x y

a

b

ax cy bx dy

x y ,

c

d

 

 

 

при a = d = 1 и c = b = 0 умножение приводит к идентичной матрице

x y

1

0

x y

;

0

1

 

 

 

d = 1, b = c = 0 и a = const – изменение масштаба в направлении X

x y

a

0

ax y

;

0

1

 

 

 

b = c = 0, a = const и d = const – изменение масштаба в направлениях x и y

x y

a

0

ax dy

,

0

d

 

 

 

если a d, то перемещения вдоль осей неодинаковы, если (a и d) > 1, то увеличение масштаба по обеим осям, если 0 < (a и d) < 1 – уменьшение, а если коэффициенты a или (и) d отрицательны, то происходит отображение координат точек

x y

1

0

x y

0

1

 

 

– отображение относительно оси Y. Отображение и изменение масштаба вызывают только диагональные элементы матрицы преобразования;

при a = d = 1, c = 0, b = const – сдвиг

x y

1

b

x

bx y ,

0

1

 

 

 

 

 

 

35

 

Источник: https://studfile.net/preview/16724844/