Системы координат в 3D-графике

В 3D-графике и математике ориентация системы координат определяет, как оси X, Y и Z располагаются относительно друг друга. Это влияет на результаты векторных произведений и направление вращений. Существуют две основные системы:

  • Правая тройка векторов (Right-Handed System)

  • Левая тройка векторов (Left-Handed System)

Правая система координат (Right-Handed System / Правая тройка)

Представьте свою правую руку:

  1. Большой палец указывает вдоль положительного направления оси X.

  2. Указательный палец — вдоль положительного направления оси Y.

  3. Средний палец, согнутый перпендикулярно первым двум, укажет положительное направление оси Z.

В этой системе, если смотреть против направления оси Z, положительное вращение вокруг оси Z происходит против часовой стрелки. Это стандарт для многих математических описаний, а также для OpenGL и Blender.

Левая система координат (Left-Handed System / Левая тройка)

Представьте свою левую руку:

  1. Большой палец указывает вдоль положительного направления оси X.

  2. Указательный палец — вдоль положительного направления оси Y.

  3. Средний палец, согнутый перпендикулярно первым двум, укажет положительное направление оси Z.

В этой системе, если смотреть против направления оси Z, положительное вращение вокруг оси Z происходит по часовой стрелке. Эта система используется, например, в DirectX и Unreal Engine.

📖 Словарь терминов

Система координат (Coordinate System)

Набор из точки отсчета (начала координат) и базисных векторов (осей), определяющих положение точек в пространстве.

Правосторонняя система координат (Right-Handed Coordinate System / RHS)

Система, где оси X, Y, Z ориентированы по правилу правой руки.

Левосторонняя система координат (Left-Handed Coordinate System / LHS)

Система, где оси X, Y, Z ориентированы по правилу левой руки.

Оси координат (Coordinate Axes)

Направляющие линии (X, Y, Z), используемые для определения положения в пространстве.

Начало координат (Origin)

Точка пересечения осей координат (0,0,0).

Правило правой руки (Right-Hand Rule)

Мнемоническое правило для определения ориентации осей в правой системе координат или направления векторного произведения.

Правило левой руки (Left-Hand Rule)

Мнемоническое правило для определения ориентации осей в левой системе координат.

Хиральность (Chirality) / Ориентация (Handedness)

Свойство системы координат быть правой или левой. Системы с разной хиральностью являются зеркальными отражениями друг друга.

Векторное произведение (Cross Product)

Операция над двумя векторами в трехмерном пространстве, результатом которой является вектор, перпендикулярный обоим исходным векторам. Направление результирующего вектора зависит от "handedness" системы координат:

  • В RHS: a×b направлен по правилу правой руки (от a к b).

  • В LHS: a×b направлен по правилу левой руки (от a к b), или, что то же самое, направление будет противоположным тому, что получилось бы в RHS для тех же векторов.

Направление вращения (Rotation Direction)

  • Положительное вращение (Positive Rotation): В RHS обычно определяется как вращение против часовой стрелки, если смотреть против направления оси вращения. В LHS — по часовой стрелке.

  • Отрицательное вращение (Negative Rotation): Вращение в противоположную сторону от положительного.

  • По часовой стрелке (Clockwise / CW)

  • Против часовой стрелки (Counter-Clockwise / CCW)

Пространства в 3D графике (Spaces in 3D Graphics)

  • Мировое пространство (World Space): Общая система координат для всех объектов в сцене. Может быть как RHS, так и LHS в зависимости от движка/API.

  • Локальное пространство / Пространство объекта (Local Space / Object Space): Система координат относительно самого объекта.

  • Пространство вида / Пространство камеры (View Space / Camera Space): Система координат относительно камеры. Часто именно здесь может происходить переход между RHS и LHS (например, камера в OpenGL (RHS) смотрит вдоль отрицательной оси Z, а в DirectX (LHS) – вдоль положительной Z).

Z-fighting

Артефакт рендеринга, когда две или более поверхности находятся очень близко друг к другу вдоль оси Z, и из-за ограничений точности буфера глубины (Z-buffer) они "борются" за то, какая из них будет отображена. Направление оси Z (вперед или назад от наблюдателя) определяется хиральностью системы.

Last updated

Was this helpful?