Как управляемость системы координат связана с направлением вращения и упорядочением вершин?
при попытке понять различные системы координат я наткнулся этот сайт, в которой говорится,:
В RenderMan используется left-handed coordinate system
и положительное вращение clockwise
, в то время как OpenGL использует right-handed coordinate system
и положительное вращение counter-clockwise
.
мой вопрос в том, является ли направление вращения и управляемость системы координат просто двумя различными соглашениями или это результат самой математики ?
аналогично, я знаю, что фронтальная вершин треугольники должны быть упорядочены в counter-clokwise
направление в OpenGL. Это тоже относится к управляемости системы координат или это просто еще одна несвязанная конвенция ?
и в-третьих, когда изображение случайной системы координат с осями, помеченными как x, y, z
бросается передо мной, как я могу сказать, что один-левша, а кто правша ?
Я знаю, что есть правило с правой рукой и средним, указательным и большим пальцами, но все, кажется, используют его по-разному. Как следует Я совместил пальцы с этими топорами ?
Извините, что, вероятно, смешивая много несвязанных вещей вместе, но после чтения всех видов интернет-источников, вещи начинают смешиваться в моей голове.
3 ответов
довольно распространенный метод для левой или правой руки:
- С плоской рукой, направьте пальцы в направлении X.
- скрутите все пальцы, кроме указательного пальца, чтобы указать на Y.
- поднимите большой палец. Это З.
опять это:
- +x = указательный палец
- +y = средний палец (и / или кольцо и Мизинец) согнуты на 90 градусов внутрь
- +з = большой палец торчит вон!--4-->
учитывая координатную рамку XYZ, определите положительные вращения:
- направьте большой палец в направлении +X, или +Y, или +Z.
- направление, в котором ваши пальцы и указывают направление положительного вращения.
в большинстве случаев, с которыми я знаком (YMMV), правое правило является нормой. Графика может быть немного странной в использовании левого правила иногда. В тех случаях, с которыми я знаком, ни в коем случае не являются исчерпывающими, левое правило выбрано, потому что программист/дизайнер хочет, чтобы Z указывал в некотором "естественном" направлении. Возможно, некоторым людям не нравится, что Z указывает на экран или из него.
Как только определенная управляемость была выбрана, то есть последствия для векторных направлений. Хотя я не уверен, что это правильный пример, поскольку я имею дело с обработкой изображений, а не с графикой, если полигон определен с использованием ориентированных сегментов, то крест продукт последовательных сегментов будет указывать из или в экран. Важно знать, какая сторона 2D-полигона обращена" наружу " к зрителю, потому что полигон может представлять собой некоторый 2D-объект, который имеет разные цвета на противоположных сторонах.
вообще говоря, выбор handedness определит как перекрестные продукты отрегулированы. "X cross Y равно Z" - это то, что вы делаете, когда указываете пальцами и большим пальцем рукой.
попробуйте протянуть оба руки и сделайте так:
- точки левой и правой руки пальцами вперед, подальше от вашего тела. Это х.
- скрутите пальцы влево-переверните одну руку, чтобы сделать это. Это Я.
- теперь торчат пальцы. Они указывают в противоположных направлениях.
Иногда, картина рисует тысячу слов...
на самом деле существует несколько допустимых конфигураций правой руки, поэтому выберите одну и придерживайтесь ее:
левая / правая системы координат и их соответствующее вращение вершин являются различными соглашениями. Вращение вершин имеет значение, потому что оно определяет, в каком направлении нормальные грани.
эти нормали используются во всем, от легких расчетов до определения рендеринга. Если Нормаль треугольника указывает в том же направлении, что и вектор вида, то он обращен в сторону от камеры и не будет нарисован.
Если нормальный вектор треугольник обращен в противоположном направлении вектора вида (другими словами, к камере), тогда треугольник виден и он будет нарисован.
поскольку направление z (z обычно считается направлением " спереди назад "в компьютерной графике, оно также может быть x или y) переворачивается в правой и левой системе," вращение " векторов загружается в определенных вопросах.
чтобы ответить на ваш третий вопрос: если у вас есть пара вершин, чтобы уйти, и вы знаете, какая ось спереди назад,вы можете легко сказать, является ли это правой или левой системой. В правой системе z уменьшается по мере удаления от камеры. В системе левой руки z увеличивается.
вы можете увидеть, как расположить руки на этом веб-сайте: правой / левой рукой системы координат