Обмен технологиями

3D-графика в реальном времени с WebGL2

2024-07-08

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Конвейер рендеринга WebGL

На следующем рисунке схематически показан конвейер рендеринга WebGL:

Объекты буфера вершин (VBO)

VBOS содержит информацию, используемую для описания геометрии. Например, координаты вершин, координаты нормалей, цвет, координаты текстуры и т. д. геометрии.

Объекты индексного буфера (IBO)

IBO содержат информацию, описывающую отношения вершин. Он использует индексную позицию вершины в VBO.

Вершинный шейдер

Вершинный шейдер выполняется для каждой вершины. Он обрабатывает информацию, связанную с вершинами, такую ​​как координаты вершин, координаты нормалей, цвет и координаты текстуры. Эта информация получается из VBO и связана с атрибутом, используемым в вершинном шейдере.

Фрагментный шейдер

Фрагментный шейдер выполняется для каждого фрагмента для расчета цвета каждого фрагмента.

Кадровый буфер

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

Атрибуты

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

Униформа

Униформы — это входные переменные для вершинных и фрагментных шейдеров. В отличие от атрибутов, переменные Uniforms фиксируются внутри цикла рендеринга. Например, положение источника света.

Текстуры

Текстуры часто содержат данные изображения, но могут содержать и другие данные.

Вариации

Переменные Variings часто используются для передачи данных из вершинного шейдера во фрагментный шейдер. Переменные Varyings в вершинном шейдере интерполируются перед передачей во фрагментный шейдер.