OpenGL отмечает исследование, «шесть» система координат

  В предыдущей статье мы выяснили, что координаты вершин OpenGL, необходимый между НДЦ (нормализованная координаты устройства) от -1,0 до 1,0. Но мы используем каждый день для координации может иметь различные системы координат, такие как набор системы координат для самого объекта, описывая отношения между различными компонентами координат внутреннего объекта. Установите между объектом и объектом системы координат, координаты описывают отношения между объектами и тому подобными. OPENGL обеспечивают различные системы координат для различных ситуаций, а также на основе преобразования координат преобразуют определенные системы координат в различные координаты нормализуются устройства (NDC).

  

 

 

   Эта картина выше, описывает процесс преобразования в OpenGL систему координат мы в основном будет использоваться, и система координат.

Локальное пространство, матричная модель

  Локальное пространство, внутри объекта описывается в системе координат. Например, картина, мы по умолчанию в левом нижнем углу есть начало координат (0, 0), если длина изображения 1, мы выразим верхний правый угол с (1,1). Локальное пространство мирового пространства координат преобразования координат с помощью модели матрицы (матричная модель), водоизмещением преобразования матричной модели, включающей объекты, вращение, масштабирование операции.

WORDL ПРОСТРАНСТВО, VIEW MATRIX

  Всемирная космическая, описывает взаимосвязь между объектом и координат объекта, например, объект А координат (0,0,0), координаты объекта B (2,0,0), при визуализации объекта B будет находиться на левой стороне объекта А, через две единицы. По умолчанию для каждого объекта в мировой системе координат (0,0,0), если не установить мир координаты объекта, то эффект для визуализации все объекты сложены вместе. координаты мирового пространства можно превратить в матрице вида (матричном) для просмотра пространственных координат, матрица вида в основном через ряд вращающихся вычисление смещения, описание объекта в пространство вида, эквивалентный объект для размещения перед нашими глазами, камеры правильное положение прежде.

  Буду упомянуто позже ввиду пространство камеры концепции, мы разные операции камеры, такие как перемещать, вращать, но и генерировать различную матрицу вида (матричном)

VIEW ПРОСТРАНСТВО, ПРОЕКТИРОВАНИЕ MATRIX

  Вид пространства, пространство также может быть названа камерой или визуальным пространством, описываются на основе соотношения между угловой координатами, генерируемых глазами пользователя. То есть, от наших глаз, чтобы описать объект находится перед нами, влево, вправо? Просмотр пространство (VIEW ПРОСТРАНСТВО) также эквивалентно пространство камер. Вид пространственных координат может быть преобразован с помощью матрицы проекции (матрица проекции), чтобы обрезать пространственные координаты, проекционные координаты в виде матричных стандартных координат устройства от -1 до 1 (НДЦ), дополнительно ортогональная проекция может быть разделена в соответствии с другим вариантом выступа ( ортогональная проекция) и перспективная проекция (проекция в перспективе). На визуальном исполнении, перспективная проекция описана в наших глазах, чтобы увидеть мир: от нашего недавнего выглядеть больше, далеко от нас выглядеть меньше и орфографическая проекция нет никакой разницы в расстоянии, непосредственно координаты объекта отображения к нему на экране.

CLIP ПРОСТРАНСТВО

  Клип пространство, система координат описывается -1 до 1, то объект в этом диапазоне будет оказана, оно не отфильтровано. Кроме того, в этом пространстве, координаты объекта, наконец, преобразуются в нормированные координаты устройства (NDC). Прорубание пространства вида преобразования координат, отсечение пространственных координат (NDC), установленные для экрана пространственных координат.

ЭКРАН ПРОСТРАНСТВО

  Экран пространство, то есть ширина и высота экрана с помощью glViewport мы определим соответствующую систему координат.

  OpenGL предлагает широкий выбор систем координат, но и помочь нам иметь соответствующую систему координат при различных сценариях, есть удобный способ преобразования при различных сценариях. И мы часто MVP конверсии, то есть из объектного пространства для клипа пространства, установленного для комбинации. Кроме того, мы также узнать о прежде, вершинные шейдеры в основном адресован координаты вершин объекта, поэтому наше обращение MVP обрабатывается в вершинном шейдере.

  В обычной перспективной проекции в качестве примера, мы опишем наши глаза в передней части 3 единицы, блоки преобразования матрицы MVP справа от субъекта

// матричная модель 
GLM :: mat4 модель = GLM :: mat4 ( 1.0f ); 
модель = GLM :: переводить (модель, GLM :: vec3 ( 1.0f , 0.0f , 0.0f );
 // вид матрицы 
GLM :: mat4 вид = GLM :: mat4 ( 1.0f ); 
вид = GLM :: переводить ( вид, GLM :: vec3 ( 0.0f , 0.0f , - 3.0f );
 // матрицу проекции 
GLM :: mat4 проекция = GLM :: перспектива (GLM :: радиан ( 45.0f ), 800.0f / 600.0f , 0.1f , 100.0f );
 //传递给шейдера
 // u_model = модель; u_view = вид; u_projection = проекция; 
... 
... вершинные шейдеры 
равномерная mat4 u_model; 
равномерное mat4 u_view; 
равномерное mat4 u_projection; 
недействительным Основной () { 
    gl_Position = u_projection * u_view * u_model * vec4 (APOS, 1.0f );  
}

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

  

 

рекомендация

отwww.cnblogs.com/zhong-dev/p/11672551.html