Програмування уявної 4D сітки на екран


11

В якості розумової вправи я намагаюся уявити проекцію довільної 4D сітки на екран (2D).

Я здогадуюсь, що один 4D-трикутник все ще буде складатися лише з 3-х точок, однак кожна з цих 3-х точок була б визначена стовпчиком із 4-ма вимірами.

Чи було б більше сенсу визначити матрицю проекції, щоб спочатку зіставити 4D-простір у тривимірний простір, а потім OpenGL зробити власну проекцію з цих даних у 2D-простір?

Або було б найкраще просто планувати проектування вниз з 4 на 2 безпосередньо?

Дуже дякую.


Цікаво, чи є контекст розвитку гри?
AttackingHobo

це зараз лише дослідницьке, але, зрештою, так.
bitcruncher

Поки ви не додасте якийсь контекст розвитку ігор, я збираюся проголосувати за те, щоб бути поза темою.
AttackingHobo

Як бічна примітка, однорідні координати, якими користуються графічні API, - це особливий вид 4D-простору, в якому всі точки на лінії через початок вважаються однаковою точкою в 3D. Тобто <kx, ky, kz, k> - однакова точка <x, y, z> для всіх k.
Ларс Віклунд

4 осі обертання? Ти жартуєш так?
субб

Відповіді:


7

Багатовимірне узагальнення трикутника - це N-Simplex , ось відео проекції такого об’єкта. Ось ще одне цікаве відео 4D гіперкуба.

Ця вікі- сторінка - хороша відправна точка, якщо ви хочете дізнатися більше про четвертий вимір та способи візуалізації таких об'єктів. Він також посилає сторінку вікі зі списком 4D ігор .

Що стосується вашого питання щодо проекції: У цьому документі пояснюється математика ортографічних та перспективних матриць проекцій для більш високих розмірів. Ще один чудовий документ - Візуалізація 4- об'єктних об'єктів у чотирьох просторах Стівена Річарда Холлаша. Зокрема абзац "4.1: Огляд високого рівня 4D до 2D проекції" відповідає детально на ваше питання проектування та постачається із вихідним кодом.

Нарешті, ось N-мірний візуалізатор, що використовує OpenGL, що постачається з повним вихідним кодом.


Я не впевнений, чому ви ставитесь до такого трикутника. Так само, як 3D-сітка містить трикутник (на відміну від тетраедронів), 4D-сітка може містити двовимірні форми, як трикутник.
Mikael Öhman

@Mikael, якраз через розумове здійснення питання було б цікавіше використовувати 4D узагальнення 2D трикутника, 'обертання такого об’єкта виглядає приголомшливо. Однак ви маєте рацію, можна скористатися простим трикутником у 4D просторі.
Майк Семер

Дякую за дуже ретельну відповідь. Власне, найбільше захоплююче було великою кількістю ігор / проектів, що існували з початку 90-х.
bitcruncher
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.