Презентация на тему Clipmaps

Презентация на тему Презентация на тему Clipmaps, предмет презентации: Разное. Этот материал содержит 37 слайдов. Красочные слайды и илюстрации помогут Вам заинтересовать свою аудиторию. Для просмотра воспользуйтесь проигрывателем, если материал оказался полезным для Вас - поделитесь им с друзьями с помощью социальных кнопок и добавьте наш сайт презентаций ThePresentation.ru в закладки!

Слайды и текст этой презентации

Слайд 1
Текст слайда:

Clipmaps

Макаров Евгений


Слайд 2
Текст слайда:

Текстурирование рельефа

Тайлинг с использованием тайлсетов

Использование альфа-смешивания

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


Слайд 3
Текст слайда:

Тайлинг

Игры основанные на тайлах
Warcraft
Civilization
Heroes of Might and Magic и т.д.

Возможность использования процедурных текстур
Маленьких размер используемых данных

Необходимость создания “tile set’ов”
Ограниченные возможности при визуализации
Сложность использования и внесения изменений




Слайд 4
Текст слайда:

Альфа-смешивание

Использует предварительно подобранные наборы текстур для смешивания


Слайд 5
Текст слайда:

Альфа-смешивание - результаты

Возможность создавать сложные текстуры









Ограниченный набор исходных текстур


Слайд 6
Текст слайда:

Использование больших текстур

Неограниченная сложность

What you see is what you get ☺

Это просто


Слайд 7
Текст слайда:





Авиасимуляторы

0

1

2

3






0

1

2

3

уменьшение детализации

Ландшафт

используемая информация


Слайд 8
Текст слайда:


Случай FPS

Используемая информация зависит только от позиции наблюдателя








В каждом кадре используется небольшая часть информации из мип-уровней









Ландшафт

уменьшение детализации


Слайд 9
Текст слайда:

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


Слайд 10
Текст слайда:

C


Тороидальное обновление

A

B

C

D

E

F

G





A

B

C

D

E

F

G





D

E

F

G




A

B

C

D

E




C

D

E



E

F

G

A

B

C

D


центр стека

первоначальный

уровень с новыми
данными

используем wrap(repeat)
адресацию

новый центр

необновляемые
данные
не затрагиваются


Слайд 11
Текст слайда:

I

M

I

Тороидальное обновление (шаг 2)

A

B

C

D

E

F

G







E

F

B

C


D



E

F

B

C

D


уровень с новыми
данными

используем wrap(repeat)
адресацию

E

F

G

A

B

C

D

H


I

J

K

L

M

N



H

I

J

K

L

M

N

H

I

J

K

L

J

K

L

M

J

K

L

M

N

H

I

J

K

L

M

N

используем новую
позицию центра для
определения данных
для загрузки


Слайд 12
Текст слайда:

Хранение исходных данных

Высокая степень сжатия
необходимость хранения больших объемов данных
большее сжатие позволяет использовать более детальные карты

Доступность
возможность произвольного доступа в реальном времени

Простота редактирования
формат должен позволять легко вносить изменения


Слайд 13
Текст слайда:

Использование JPEG компрессии

Преимущества

Высокий уровень сжатия исходного изображения
Возможность контроля качества и размера итогового изображения
Ускорение декомпрессии с использованием GPU
Широкая распространенность формата




Слайд 14
Текст слайда:

Использование JPEG компрессии

Недостатки

Необходимость предварительной обработки на стороне CPU
Передача большого количества данных на GPU (возможны оптимизации)


Слайд 15
Текст слайда:

Clipmap в DX10

Для пирамиды используем 2D текстуру с мип-уровнями
Для стека используем массив текстур









Текстура с мип-уровнями

Массив текстур(Texture array)

Пирамида

Стек


Слайд 16
Текст слайда:

Texture array в DX10

Структура, содержащая в себе набор обычных текстур одинакового размера и формата

Создание
ID3D10Texture2D *pTexture;
D3D10_TEXTURE2D_DESC texDesc;
...
texDesc.ArraySize = levelsNum;
...
pd3dDevice->CreateTexture2D( &texDesc, NULL, &pTexture );

Адресация
_Texture.Sample( _Sampler, float3( texCoord.xy, level ) );




Слайд 17
Текст слайда:

Порядок обновления данных

Подготовка исходных данных

Определение новых областей для загрузки

Выполнение DCT преобразований для JPEG декомпрессии

Нахождение областей требующих обновления

Копирование данных на стороне GPU


Кэширование данных


Слайд 18
Текст слайда:

Адресация к стеку

Вычисление требуемого мип-уровня используя инструкции ddx и ddy
float2 dx = ddx(input.texCoord * textureSize.x);
float2 dy = ddy(input.texCoord * textureSize.y);
float d = max( sqrt( dx.x * dx.x + dx.y * dx.y ) ) ,
sqrt( dy.x * dy.x + dy.y * dy.y ) ) );
float mipLevel = log2( d );
Вычисление текстурных координат
float2 clipTexCoord = input.texCoord / pow( 2, iMipLevel );
clipTexCoord.x *= scaleFactor.x;
clipTexCoord.y *= scaleFactor.y;
clipTexCoord += 0.5f
Чтение из текстуры
float4 color = StackTexture.Sample( stackSampler, float3( clipTexCoord, iMipLevel ) );


Слайд 19
Текст слайда:

Выбор размера стека

Используемое разрешение

Относительное положение наблюдателя и способы его перемещения

Требуемая производительность



Слайд 20
Текст слайда:

Не хватает данных ?

Данные всегда есть в менее детальных уровнях

Требуемые данные всегда можно найти в менее детализированных уровнях

Данные есть в стеке

Данные есть в пирамиде


Слайд 21
Текст слайда:

Недостаточный размер стека


Слайд 22
Текст слайда:

Определение корректного уровня

Находим мип-уровень, размер которого достаточен для чтения с использованием вычисленных текстурных координат

float GetMinimumStackLevel( float2 coordinates )
{
float2 distance;

distance.x = abs( coordinates.x - g_StackCenter.x );
distance.x = min( distance.x, 1.0 - distance.x );

distance.y = abs( coordinates.y - g_StackCenter.y );
distance.y = min( distance.y, 1.0 - distance.y );

return max( log2( distance.x * texSize.x * 4.0 / stackSize ),
log2( distance.y * texSize.y * 4.0 / stackSize) );
}




центр стека

текстурные
координаты

расстояние



Слайд 23
Текст слайда:

Недостаточный размер стека


Слайд 24
Текст слайда:

Используем данные из стека


Слайд 25
Текст слайда:

Эффективность хранения*

* Данные приводятся в мегабайтах для 32 битных текселей


Слайд 26
Текст слайда:

JPEG компрессия

RGB -> YCbCr


R = Y + 1.402 * (Cr - 128.0);
G = Y - 0.34414 * (Cb - 128.0) - 0.71414 * (Cr - 128.0);
B = Y + 1.772 * (Cb - 128.0);


Слайд 27
Текст слайда:

JPEG компрессия

RGB -> YCbCr

Уменьшение разрешения цветовых составляющих


Глаз менее чувствителен к цвету,
более чувствителен к яркости

Уменьшаем разрешение для цветовых каналов

Каналы обрабатываются независимо


Слайд 28
Текст слайда:

JPEG компрессия

RGB -> YCbCr

Уменьшение разрешения цветовых составляющих

Разбиение на блоки 8x8


Слайд 29
Текст слайда:

JPEG компрессия

Уменьшение разрешения цветовых составляющих

Разбиение на блоки 8x8

DCT

RGB -> YCbCr

Кодируемые блоки представляются в виде линейной комбинации представленных квадратов


Слайд 30
Текст слайда:

JPEG компрессия

Уменьшение разрешения цветовых составляющих

Разбиение на блоки 8x8

DCT

Квантование

RGB -> YCbCr


Слайд 31
Текст слайда:

JPEG компрессия

RGB -> YCbCr

Уменьшение разрешения цветовых составляющих

Разбиение на блоки 8x8

DCT

Квантование

Зигзагообразная перестановка

Перестановка используется для
группировки компонент по частотам

−26, −3, 0, −3, −2, −6, 2, −4, 1, −4, 1, 1, 5, 1, 2, −1, 1, −1, 2, 0, 0, 0, 0, 0, −1, −1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0


Слайд 32
Текст слайда:

JPEG компрессия

RGB -> YCbCr

Уменьшение разрешения цветовых составляющих

Разбиение на блоки 8x8

DCT

Квантование

Зигзагообразная перестановка

Кодирование нулей

Кодирование Хаффмана



Вычисляем на GPU

Вычисляем на CPU


Слайд 33
Текст слайда:

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

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


Слайд 34
Текст слайда:

Ограничения

Требование локальности использования данных
Наибольшая эффективность достигается при последовательном использовании исходных данных


Слайд 35
Текст слайда:

Почему Array, a не 3D текстура?

Возможность анизотропной фильтрации

Билинейная фильтрация 3D текстур

Обновление 3D текстуры ??? Нет !!!


Слайд 36
Текст слайда:

Cсылки

[1] Christopher C. Tanner, Christopher J. Migdal, and Michael T. Jones “The Clipmap: A Virtual Mipmap”,
Silicon Graphics Computer Systems

[2] NVIDIA DirectX SDK 10 “Clipmaps” demo


Слайд 37
Текст слайда:

Вопросы



Обратная связь

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

Email: Нажмите что бы посмотреть 

Что такое ThePresentation.ru?

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


Для правообладателей

Яндекс.Метрика