Почему грани кубической карты помечены px, nx, py, ny, pz, nz?

Я использую кубическую карту в проекте WebGL, и мой коллега предоставил мне ресурсы изображения для граней, помеченных спереди, сзади, слева, справа, сверху и снизу. Однако пример кода Three.js использует изображения, помеченные цифрой 2. письма. p или n, за которыми следует x, y или z.

Путем проб и ошибок я разработал карту активов моего коллеги соответствующим образом:

  • пиксели = слева
  • пх = правильно
  • ру = топ
  • нью-йорк = дно
  • пз = назад
  • нз = передний

Итак, глядя на это, очевидно, что x, y и z относятся к осям, но p и n не так очевидны. Я думал о положительно и отрицательно, но эта теория рушится, когда вы смотрите на ось X, которая традиционно изображается возрастающей слева направо. От оси z у меня болит голова, потому что я не знаю, ожидаю ли я, что объект будет приближаться ко мне или отдаляться по мере увеличения значения z. Инстинкт говорит ближе.

Моя одержимо логичная сторона думает, что это более подходящий перевод на «повседневный» язык:

  • пиксели = справа
  • nx = левый
  • ру = топ
  • нью-йорк = дно
  • пз = спереди
  • нз = назад

Мой коллега предоставил нестандартный набор активов? Это та самая причина, по которой мы не используем повседневный язык (левый, правый, верхний и т. д.) в 3D-моделировании? Должен ли я потребовать, чтобы они предоставили их с пометкой px, nx, py и т. д.?

Некоторое руководство от опытного эксперта будет оценено по достоинству.


person Martin Joiner    schedule 01.09.2017    source источник
comment
Это хороший вопрос, и за него не должны были проголосовать.   -  person WestLangley    schedule 01.09.2017


Ответы (1)


По соглашению — вероятно, на основе спецификации RenderMan 1990-х годов — кубические карты задаются WebGL (и three.js) в системе координат, в которой положительный x находится справа при поиске по положительной оси z — другими словами, в левой системе координат. Следуя этому соглашению, ранее существовавшие кубические карты продолжали отображаться правильно.

three.js использует правостороннюю систему координат. Таким образом, карты окружения, используемые в three.js, поменяются местами px и nx. (Это касается каждого примера кубической карты three.js.)

три.js р.87

person WestLangley    schedule 01.09.2017