Similar presentations:
Компьютерная графика. На примере стандарта WebJS и библиотеки THREE.JS
1.
Компьютерная графикаНа примере стандарта WebJS
и библиотеки THREE.JS
Снитко П.В
2.
Основные графические APIMicrosoft DirectX – появился в 1995, с выходом
Winodows 95, с целью дать единое графическое API
c прямым доступом к видеокарте. Который был
частично утрачен с выходом первых версии
Windows.
OpenGL и производные OpenGL ES, WebGl, Vulkan –
появился в 1992, стандартизирует доступ к
графической аппаратуре путём смещения
ответственности за создание аппаратного драйвера
на производителя графического устройства.
3.
С чем работаютвидеускорители?
Главными сущностями с которыми работают
видеоускорители являются:
Вершины
Грани
Примитивы или полигоны
Текстуры
Шейдеры
4.
Полигональная модельПолигональная модель - совокупность
полигонов, состоящих из вершин и граней.
5.
Пример полигональной модели6.
Что такое текстура?Текстура — растровое изображение,
накладываемое на поверхность модели
состоящей из множества полигонов для
придания им нужного внешнего вида.
7.
Танк с текстурой и без8.
Что такое шейдер?Шейдер — программа составленная на
специальном языке программирования
предназначенная для исполнения на
видеоускорителе.
Типы шейдеров:
Вершиинный шейдер
Геометрический шейдер
Фрагментный (пиксельный) шейдер
9.
КамераКамера задает область отсечения
невидимых областей: ближнюю плоскость
отсечения, дальнюю область отсчения,
угол обзора камеры. Камера имеет два
типа проекции: перспективная проекция
или ортографическую прекцию.
10.
Камера11.
Процессор+Оперативная памятьШейдеры
Видеоускоритель+Видеопамять
Растеризация
Фрагментный
шейдер
Тесселляция
Контрольный
шейдер
Пост-обработка
Тесселяция
Тест границы,
Тест глубины,
Тест шаблона
Оценочный
шейдер
Смешение цветов
Шейдер
геометрии
Пост-обработка
геометрии
Сборка примитива
Маска записи
Буффер геометрии
Буффер кадра
12.
Вершинный шейдерВершинный шейдер позволяет менять позицию
вершин, а так же их цвет и нормаль.
13.
ТесселяцияТесселяция – это автоматический процесс добавления
новых выпуклых многоугольников в полигональную
сетку с целью повышения детализации сетки.
14.
Шейдер геометрииПозволяет добавлять к текущему примитиву (или
вершинам или линиям) новые примитивы (или
вершины или линии). На входе принимает один
примитив, на выходе ноль или больше примитивов.
15.
Пост-обработка геометрииНа этапе пост-обработки отсекаются точки, линии,
полигоны находящиеся за пределами области
отрисовки. Так же на данном этапе есть возможность
получить буффер геометрии, для последущего его
быстрого использования без пересчета.
16.
РастеризацияНа данном этапе происходит трансформация
обьектов подготовленных на предыдущих этапах в
трехмерном пространстве в растровое, двухмерное,
изображение.
17.
Пиксельный(фрагментый)шейдер
На данном этапе происходит придание цвета
каждому пикселю растрированной геометрии.
18.
ПостобработкаНа данном этапе происходит окончательное
формирование изображения. Проходят
следующие операции:
тест владения пикселем (пиксель может не
принадлежать opengl )
scissor тест (обрезает часть изображения
заданным прямоугольником)
тест глубины
смешение (blending)
применение логических операций для
отображения по маске
19.
WebGLWebGL - библиотека, позволяющая создавать на
JavaScript интерактивную 3D-графику,
функционирующую в широком спектре
совместимых с ней веб-браузеров. За счёт
использования низкоуровневых средств
поддержки OpenGL, часть кода на WebGL
выполняется на видеокартах. WebGL - это
контекст HTML элемента canvas , который
обеспечивает API 3D графики без использования
плагинов.
20.
Three JSThree.js — легковесная кроссбраузерная
JavaScript библиотека c открытым
исходным кодом, предназначена для
упрощения создания и отображения
анимированной компьютерной 3D
графики при разработке вебприложений.