Компьютерная графика. На примере стандарта WebJS и библиотеки THREE.JS

Содержание

Слайд 2

Основные графические API Microsoft DirectX – появился в 1995, с выходом

Основные графические API

Microsoft 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

WebGL WebGL - библиотека, позволяющая создавать на JavaScript интерактивную 3D-графику, функционирующую

WebGL

WebGL - библиотека, позволяющая создавать на JavaScript интерактивную 3D-графику, функционирующую

в широком спектре совместимых с ней веб-браузеров. За счёт использования низкоуровневых средств поддержки OpenGL, часть кода на WebGL выполняется на видеокартах. WebGL - это контекст HTML элемента canvas , который обеспечивает API 3D графики без использования плагинов.