6. Туман

 

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

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

Мы рассмотрим пиксельный туман.

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

Расстояние до точки.

 

D – расстояние от наблюдателя (Р) до точки (или дистанция).

 

 

 

 

 

 

 

            отсюда получаем      

          

где

Подставляя в формулу получаем уравнение расстояния до точки:

 ,           где

 

V(D) – яркость в данной точке

dD – расстояние, на которое добавляем туман

V(D+dD) – яркость в точке с учетом добавленного тумана

Формула яркости в точке с учетом добавленного тумана.

,

где       Vт – яркость тумана

            s - плотность тумана

решим дифференциальное уравнение

             отсюда получим

В нулевой точке, то есть в точке, где находится наблюдатель тумана нет, поэтому получаем:

, тогда получим:

,         где Dт – дистанция тумана

Получаем уравнение вычисления тумана:

.       На дистанции Dт туман увеличивается в раз.

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

 

Экспоненциальный туман.

Значение функции  можно вычислять таблично:

h – по старшим разрядам, например, 6 разрядов

r – делим на зоны, r = r0…rmax , например, на 16 зон (4 разряда)

 

Итого, например, получаем 10-ти разрядную таблицу.

 

Hosted by uCoz