Как управляемость системы координат связана с направлением вращения и упорядочением вершин?

при попытке понять различные системы координат я наткнулся этот сайт, в которой говорится,: В RenderMan используется left-handed coordinate system и положительное вращение clockwise, в то время как OpenGL использует right-handed coordinate system и положительное вращение counter-clockwise.

мой вопрос в том, является ли направление вращения и управляемость системы координат просто двумя различными соглашениями или это результат самой математики ?

аналогично, я знаю, что фронтальная вершин треугольники должны быть упорядочены в counter-clokwise направление в OpenGL. Это тоже относится к управляемости системы координат или это просто еще одна несвязанная конвенция ?

и в-третьих, когда изображение случайной системы координат с осями, помеченными как x, y, z бросается передо мной, как я могу сказать, что один-левша, а кто правша ? Я знаю, что есть правило с правой рукой и средним, указательным и большим пальцами, но все, кажется, используют его по-разному. Как следует Я совместил пальцы с этими топорами ?

Извините, что, вероятно, смешивая много несвязанных вещей вместе, но после чтения всех видов интернет-источников, вещи начинают смешиваться в моей голове.

3 ответов


довольно распространенный метод для левой или правой руки:

  1. С плоской рукой, направьте пальцы в направлении X.
  2. скрутите все пальцы, кроме указательного пальца, чтобы указать на Y.
  3. поднимите большой палец. Это З.

опять это:

  • +x = указательный палец
  • +y = средний палец (и / или кольцо и Мизинец) согнуты на 90 градусов внутрь
  • +з = большой палец торчит вон!--4-->

учитывая координатную рамку XYZ, определите положительные вращения:

  1. направьте большой палец в направлении +X, или +Y, или +Z.
  2. направление, в котором ваши пальцы и указывают направление положительного вращения.

в большинстве случаев, с которыми я знаком (YMMV), правое правило является нормой. Графика может быть немного странной в использовании левого правила иногда. В тех случаях, с которыми я знаком, ни в коем случае не являются исчерпывающими, левое правило выбрано, потому что программист/дизайнер хочет, чтобы Z указывал в некотором "естественном" направлении. Возможно, некоторым людям не нравится, что Z указывает на экран или из него.

Как только определенная управляемость была выбрана, то есть последствия для векторных направлений. Хотя я не уверен, что это правильный пример, поскольку я имею дело с обработкой изображений, а не с графикой, если полигон определен с использованием ориентированных сегментов, то крест продукт последовательных сегментов будет указывать из или в экран. Важно знать, какая сторона 2D-полигона обращена" наружу " к зрителю, потому что полигон может представлять собой некоторый 2D-объект, который имеет разные цвета на противоположных сторонах.

вообще говоря, выбор handedness определит как перекрестные продукты отрегулированы. "X cross Y равно Z" - это то, что вы делаете, когда указываете пальцами и большим пальцем рукой.

попробуйте протянуть оба руки и сделайте так:

  1. точки левой и правой руки пальцами вперед, подальше от вашего тела. Это х.
  2. скрутите пальцы влево-переверните одну руку, чтобы сделать это. Это Я.
  3. теперь торчат пальцы. Они указывают в противоположных направлениях.

Иногда, картина рисует тысячу слов...

enter image description here

на самом деле существует несколько допустимых конфигураций правой руки, поэтому выберите одну и придерживайтесь ее:

alternatives


левая / правая системы координат и их соответствующее вращение вершин являются различными соглашениями. Вращение вершин имеет значение, потому что оно определяет, в каком направлении нормальные грани.

эти нормали используются во всем, от легких расчетов до определения рендеринга. Если Нормаль треугольника указывает в том же направлении, что и вектор вида, то он обращен в сторону от камеры и не будет нарисован.

Если нормальный вектор треугольник обращен в противоположном направлении вектора вида (другими словами, к камере), тогда треугольник виден и он будет нарисован.

поскольку направление z (z обычно считается направлением " спереди назад "в компьютерной графике, оно также может быть x или y) переворачивается в правой и левой системе," вращение " векторов загружается в определенных вопросах.

чтобы ответить на ваш третий вопрос: если у вас есть пара вершин, чтобы уйти, и вы знаете, какая ось спереди назад,вы можете легко сказать, является ли это правой или левой системой. В правой системе z уменьшается по мере удаления от камеры. В системе левой руки z увеличивается.

вы можете увидеть, как расположить руки на этом веб-сайте: правой / левой рукой системы координат