Изометрическая проекция

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
Проекции
п·о·р

Прочие

Стол в прямоугольной изометрической проекции

Изометри́ческая прое́кция — это разновидность аксонометрической проекции, при которой в отображении трёхмерного объекта на плоскость коэффициент искажения (отношение длины спроецированного на плоскость отрезка, параллельного координатной оси, к действительной длине отрезка) по всем трём осям один и тот же. Слово «изометрическая» в названии проекции пришло из греческого языка и означает «равный размер», отражая тот факт, что в этой проекции масштабы по всем осям равны. В других видах проекций это не так.

Изометрическая проекция используется в машиностроительном черчении и САПР для построения наглядного изображения детали на чертеже, а также в компьютерных играх для трёхмерных объектов и панорам.

Необходимо отметить, что параллельные проекции, разновидностью которых являются аксонометрические и, в том числе, изометрические проекции, делятся также на ортогональные (перпендикулярные), с направлением проекции перпендикулярным к плоскости проекции, и косоугольные, с углом между направлением и плоскостью, отличным от прямого. По советским стандартам (см. ниже) аксонометрические проекции могут быть и ортогональными, и косоугольными[1]. По западным же стандартам, аксонометрические проекции являются только ортогональными, а косоугольные проекции рассматриваются отдельно.[источник не указан 1949 дней] В результате, по западным стандартам изометрическая проекция определяется более узко и, помимо равенства масштабов по осям, включает условие равенства 120° углов между проекциями любой пары осей. Во избежание путаницы далее, если не указано иное, под изометрической проекцией будет подразумеваться только прямоугольная изометрическая проекция.

Стандартные изометрические проекции[1][править | править вики-текст]

Прямоугольная (ортогональная) изометрическая проекция[править | править вики-текст]

В прямоугольной изометрической проекции аксонометрические оси образуют между собой углы в 120°, ось Z' направлена вертикально. Коэффициенты искажения (k_x, k_y, k_z) имеют числовое значение \sqrt{ \frac{2}{3} } \approx 0,82. Как правило, для упрощения построений изометрическую проекцию выполняют без искажений по осям, то есть коэффициент искажения принимают равным 1, в этом случае получают увеличение линейных размеров в \frac{1}{0,82} \approx 1,22 раза.

Косоугольная фронтальная изометрическая проекция[править | править вики-текст]

Ось Z' направлена вертикально, угол между осью X' и Z' равен 90°, ось Y' с углом наклона 135° (допускается 120° и 150°) от оси Z'.

Фронтальная изометрическая проекция выполняется по осям X', Y' и Z' без искажения.

Кривые параллельные фронтальной плоскости проецируются без искажений.

Косоугольная горизонтальная изометрическая проекция[править | править вики-текст]

Ось Z' направлена вертикально, между осью Z' и осью Y' угол наклона равен 120° (допускается 135° и 150°), при этом сохраняется угол между осями X' и Y' равным 90°.

Горизонтальную изометрическую проекцию выполняют без искажения по осям X', Y' и Z'.

Кривые, параллельные горизонтальной плоскости[2] проецируются без искажений.

Визуализация[править | править вики-текст]

Изометрический вид объекта можно получить, выбрав направление обзора таким образом, чтобы углы между проекцией осей x, y, и z были одинаковы и равны 120°. К примеру, если взять куб, это можно выполнить направив взгляд на одну из граней куба, после чего повернув куб на ±45° вокруг вертикальной оси и на ±arcsin (tan 30°) ≈ 35,264° вокруг горизонтальной оси. Обратите внимание: на иллюстрации изометрической проекции куба контур проекции образует правильный шестиугольник — все рёбра равной длины и все грани равной площади.

Подобным же образом изометрический вид может быть получен, к примеру, в редакторе трёхмерных сцен: начав с камерой, выровненной параллельно полу и координатным осям, её нужно повернуть вниз на ≈35.264° вокруг горизонтальной оси и на ±45° вокруг вертикальной оси.

Другой путь визуализации изометрической проекции заключается в рассмотрении вида кубической комнаты с верхнего угла с направлением взгляда в противолежащий нижний угол. Ось x здесь направлена диагонально вниз и вправо, ось y — диагонально вниз и влево, ось z — прямо вверх. Глубина также отражается высотой картинки. Линии, нарисованные вдоль осей, имеют угол 120° между собой.

Матричные преобразования[править | править вики-текст]

Имеется 8 различных вариантов получения изометрической проекции в зависимости от того, в какой октант смотрит наблюдатель. Изометрическое преобразование точки a_{x,y,z} в трёхмерном пространстве в точку b_{x,y} на плоскости при взгляде в первый октант может быть математически описано с помощью матриц поворота следующим образом. Вначале, как объяснено в разделе Визуализация, выполняется поворот вокруг горизонтальной оси (здесь x) на α = arcsin (tan 30°) ≈ 35,264° и вокруг вертикальной оси (здесь y) на β = 45°:


\begin{bmatrix}
   \mathbf{c}_x \\
   \mathbf{c}_y \\
   \mathbf{c}_z \\
\end{bmatrix}=\begin{bmatrix}
   1 & 0 & 0  \\
   0 & {\cos\alpha} & {\sin\alpha}  \\
   0 & { - \sin\alpha} & {\cos\alpha}  \\
\end{bmatrix}\begin{bmatrix}
   {\cos\beta } & 0 & { - \sin\beta }  \\
   0 & 1 & 0  \\
   {\sin\beta } & 0 & {\cos\beta }  \\
\end{bmatrix}\begin{bmatrix}
   \mathbf{a}_x \\
   \mathbf{a}_y \\
   \mathbf{a}_z \\
\end{bmatrix}=\frac{1}{\sqrt{6}}\begin{bmatrix}
   \sqrt{3} & 0 & -\sqrt{3}  \\
   1 & 2 & 1  \\
   \sqrt{2} & -\sqrt{2} & \sqrt{2}  \\
\end{bmatrix}\begin{bmatrix}
   \mathbf{a}_x \\
   \mathbf{a}_y \\
   \mathbf{a}_z \\
\end{bmatrix}

Затем применяется ортогональная проекция на плоскость x-y:


\begin{bmatrix}
   \mathbf{b}_x \\
   \mathbf{b}_y \\
   0 \\
\end{bmatrix}=\begin{bmatrix}
   1 & 0 & 0  \\
   0 & 1 & 0  \\
   0 & 0 & 0  \\
\end{bmatrix}\begin{bmatrix}
   \mathbf{c}_x \\
   \mathbf{c}_y \\
   \mathbf{c}_z \\
\end{bmatrix}

Другие семь возможных видов получаются поворотом к противостоящим сторонам и/или инверсией направления взгляда.[3]

Ограничения аксонометрической проекции[править | править вики-текст]

Изометрический рисунок с голубым шаром на два уровня выше красного

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

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

Дополнительная проблема, специфичная для изометрической проекции — сложность определения, какая сторона объекта наблюдается. При отсутствии теней и для объектов, которые относительно перпендикулярны и соразмерны, сложно определить, какая сторона является верхней, нижней или боковой. Это происходит из-за приблизительно равных по размеру и площади проекций такого объекта.

Большинство современных компьютерных игр избегают этого за счёт отказа от аксонометрической проекции в пользу перспективного трёхмерного рендеринга. Однако эксплуатация проекционных иллюзий популярна в оптическом искусстве — таком, как работы из серии «невозможной архитектуры» Эшера. Водопад (1961) — хороший пример, в котором строение в основном изометрическое, в то время как блеклый фон использует перспективную проекцию. Другое преимущество заключается в том, что в черчении даже новички легко могут строить углы в 60° с помощью только циркуля и линейки.

Изометрическая проекция в компьютерных играх и пиксельной графике[править | править вики-текст]

Рисунок телевизора в почти-изометрической пиксельной графике. У пиксельного узора видна пропорция 2:1

В области компьютерных игр и пиксельной графики аксонометрическая проекция была весьма популярна в силу лёгкости, с которой двухмерные спрайты и плиточная графика могли быть использованы для представления трёхмерной игровой среды — поскольку во время перемещения по игровому полю объекты не меняют размер, компьютеру не требуется масштабировать спрайты или выполнять вычисления, необходимые для моделирования визуальной перспективы. Это позволяло старым 8-битным и 16-битным игровым системам (и, позднее, портативным игровым системам) легко отображать большие трёхмерные пространства. И хотя неразбериха с глубиной (см. выше) иногда могла быть проблемой, хороший дизайн игры способен её смягчить. С приходом более мощных графических систем аксонометрическая проекция стала терять свои позиции.

Проекция в компьютерных играх обычно несколько отличается от «истинной» изометрической в силу ограничений растровой графики — линии по осям x и y не имели бы аккуратного пиксельного узора, если бы рисовались под углом в 30° к горизонтали. Хотя современные компьютеры могут устранять эту проблему с помощью сглаживания, ранее компьютерная графика не поддерживала достаточную цветовую палитру или не располагала достаточной мощностью процессоров для его выполнения. Вместо этого использовалась пропорция пиксельного узора 2:1 для рисования осевых линий x и y, в результате чего эти оси располагались под углом arctg 0,5 ≈ 26,565° к горизонтали. (Игровые системы с неквадратными пикселями могли, однако, приводить к другим углам, включая полностью изометрические[4]). Поскольку здесь из трёх углов между осями (116,565°, 116,565°, 126,87°) равны только два, такой вид проекции более точно характеризуется как вариация диметрической проекции. Однако большинство представителей сообществ компьютерных игр и растровой графики продолжает называть эту проекцию «изометрической перспективой». Также, часто используются термины «вид 3/4 (англ.)» и «2.5D».

Термин применялся и к играм, не использующим пропорцию 2:1, общую для многих компьютерных игр. Fallout[5] и SimCity 4[6], в которых используется триметрическая проекция, были отнесены к «изометрическим». Игры с косоугольной проекцией, такие как The Legend of Zelda: A Link to the Past[7] и Ultima Online[8], а также игры с перспективной проекцией с видом «с воздуха» (англ.)русск., такие как The Age of Decadence (англ.)[9] и Silent Storm[10], также иногда относят к изометрическим или «псевдо-изометрическим».

Кадр из игры «echochrome»

Интересный пример использования особенностей изометрической проекции наблюдается в игре echochrome (яп. 無限回廊 муген кайро:?). Слоган игры — «В этом мире то, что ты видишь, становится реальностью». Смысл игры заключается в том, что иллюзия, возникающая при взгляде на изометрически построенный трёхмерный уровень с определённой точки, перестаёт быть иллюзией. Например, если посмотреть на уровень таким образом, чтобы площадки, находящиеся на разной высоте, выглядели так, будто они находятся на одной и той же высоте (см. изображение с синим и красным шарами из предыдущего раздела), игрой они будут расцениваться как находящиеся на одной высоте, и человек (игрок) сможет запросто «перешагнуть» с одной площадки на другую. Затем, если повернуть карту уровня и посмотреть на конструкцию так, чтобы было отчётливо видно разницу в высоте, можно понять, что в действительности человек «перешагнул» на другую высоту, пользуясь тем, что изометрическая иллюзия на какой-то момент стала реальностью. На приведённом в качестве иллюстрации кадре из игры положение площадки, находящейся вверху лестницы, можно представить двояко: в одном случае она находится на одной высоте с площадкой, на которой находится игрок (можно перешагнуть), а в другом случае — под ней (можно спрыгнуть через чёрное отверстие). Оба случая будут одновременно являться правдой. Очевидно, этот эффект достигается отсутствием перспективы в изометрии.

История изометрических компьютерных игр[править | править вики-текст]

Q*bert (1982), одна из первых игр с изометрической графикой

Первыми играми, использующими изометрическую проекцию, были аркадные игры начала 1980-х: так, Q*bert[11] и Zaxxon (англ.)[12] выпущены в 1982 году. Q*bert показывает статичную пирамиду, нарисованную в изометрической перспективе, по которой должен прыгать управляемый игроком персонаж. Zaxxon предлагает прокручиваемые изометрические уровни, над которыми летает управляемый игроком самолётик. Год спустя, в 1983 году, была выпущена аркадная игра Congo Bongo (англ.)[13], работавшая на тех же игровых автоматах, что и Zaxxon. В этой игре персонаж перемещается по большим изометрическим уровням, включающим трёхмерные подъёмы и спуски. То же самое предлагается и в аркадной игре Marble Madness (1984).

С выходом Ant Attack (англ.) (1983) для ZX Spectrum изометрические игры перестали быть изюминкой только аркадных игровых автоматов и пришли также и в домашние компьютеры. Журнал CRASH присудил этой игре 100 % в категории «графика» за новую «трёхмерную» технологию.[14] Год спустя для ZX была выпущена игра Knight Lore, которая расценивается как революционное произведение[15], определившее последующий жанр изометрических квестовых игр[16]. На домашних компьютерах было отмечено столько изометрических игр-последователей Knight Lore, что эта игра стала считаться вторым наиболее клонируемым образцом программного обеспечения после текстового редактора WordStar (англ.).[17] Среди клонов большой успех имела игра Head Over Heels (1987)[18]. Однако, изометрическая перспектива не ограничивалась только аркадами и квестовыми играми — например, стратегическая игра Populous (1989) также использовала изометрическую перспективу.

На протяжении 1990-х некоторые очень успешные игры вроде Civilization II и Diablo использовали фиксированную изометрическую перспективу. С приходом 3D ускорителей на персональные компьютеры и игровые консоли игры с трёхмерной перспективой в основном переключились на полноценную трёхмерность вместо изометрической перспективы. Это можно видеть в преемницах вышеназванных игр — начиная с Civilization IV в этой серии используется полная трёхмерность. Diablo II, как и ранее, использует фиксированную перспективу, но опционально применяет перспективное масштабирование спрайтов на расстоянии, получая псевдо-трёхмерную перспективу.[19]

Примечания[править | править вики-текст]

  1. 1 2 По ГОСТ 2.317-69 — Единая система конструкторской документации. Аксонометрические проекции.
  2. Здесь горизонтальной называется плоскость, перпендикулярная оси Z (которая является прообразом оси Z').
  3. Ingrid Carlbom, Joseph Paciorek. Planar Geometric Projections and Viewing Transformations // ACM Computing Surveys (CSUR) : журнал. — ACM, декабрь 1978. — Т. 10. — № 4. — С. 465—502. — ISSN 0360-0300. — DOI:10.1145/356744.356750
  4. Так, в распространённом разрешении CGA/VGA 320×200 этот угол равняется arctg 0,6 ≈ 30,96°.
  5. Jeff Green. GameSpot Preview: Arcanum (англ.)(недоступная ссылка — история). GameSpot (29 февраля 2000). Проверено 29 сентября 2008. Архивировано из первоисточника 31 августа 2000.
  6. Steve Butts. SimCity 4: Rush Hour Preview (англ.). IGN (9 сентября 2003). Проверено 29 сентября 2008. Архивировано из первоисточника 19 февраля 2012.
  7. GDC 2004: The History of Zelda (англ.). IGN (25 марта 2004). Проверено 29 сентября 2008. Архивировано из первоисточника 19 февраля 2012.
  8. Dave Greely, Ben Sawyer. Has Origin Created the First True Online Game World? (англ.). Gamasutra (19 августа 1997). Проверено 29 сентября 2008. Архивировано из первоисточника 19 февраля 2012.
  9. Age of Decadence (англ.). Iron Tower Studios. Проверено 29 сентября 2008. Архивировано из первоисточника 19 февраля 2012.
  10. Steve O’Hagan. PC Previews: Silent Storm (англ.). GamesRadar—CVG (7 августа 2003). Проверено 29 сентября 2008. Архивировано из первоисточника 19 февраля 2012.
  11. Q*bert (англ.) на сайте Killer List of Videogames
  12. Zaxxon (англ.) на сайте Killer List of Videogames
  13. Congo Bongo (англ.) на сайте Killer List of Videogames
  14. Soft Solid 3D Ant Attack // CRASH : журнал. — февраль 1984. — № 1.
  15. Ultimate Play The Game — Company Lookback // Retro Micro Games Action — The Best of gamesTM (англ.) Retro. — Highbury Entertainment, 2006. — Т. 1. — С. 25.
  16. Steven Collins. Game Graphics During the 8-bit Computer Era // ACM SIGGRAPH. Computer Graphics. — май 1998. — Т. 32. — № 2.
  17. Krikke J. Axonometry: a matter of perspective // IEEE. Computer Graphics and Applications. — июль-август 2000. — Т. 20. — № 4. — С. 7—11. — DOI:10.1109/38.851742
  18. Looking for an old angle // CRASH : журнал. — апрель 1988. — № 51.
  19. Diablo II Nears Completion As Blizzard Prepares For Final Phase Of Beta Testing(недоступная ссылка — история). Market Wire (май 2000). Проверено 29 сентября 2008. Архивировано из первоисточника 10 июля 2012.

Ссылки[править | править вики-текст]

Литература[править | править вики-текст]

  • Богданов В. Н., Малежик И. Ф., Верхола А. П. и др. Справочное руководство по черчению. — М.: Машиностроение, 1989. — С. 864. — ISBN 5-217-00403-7.
  • Фролов С. А. Начертательная геометрия. — 2-е изд., перераб. и доп. — М.: Машиностроение, 1983. — С. 240.