Downprojizieren eines imaginären 4D-Netzes auf den Bildschirm

11

Als mentale Übung versuche ich mir vorzustellen, ein beliebiges 4D-Netz auf den Bildschirm zu projizieren (2D).

Ich vermute, ein einzelnes 4D-Dreieck würde immer noch aus nur 3 Punkten bestehen, jedoch würde jeder dieser 3 Punkte durch eine Spalte mit 4 Dimensionen definiert.

Wäre es sinnvoller, zuerst eine Projektionsmatrix zu definieren, um den 4D-Raum dem 3D-Raum zuzuordnen, und dann OpenGL eine eigene Projektion von diesen Daten in den 2D-Raum durchführen zu lassen?

Oder ist es am besten, einfach direkt von 4 auf 2 zu projizieren?

Danke vielmals.

Bitcruncher
quelle
Interessant, gibt es einen Spielentwicklungskontext?
AttackingHobo
Es ist vorerst nur explorativ, aber letztendlich ja.
Bitcruncher
Bis Sie eine Art Spielentwicklungskontext hinzufügen, werde ich dafür stimmen, dass das Thema nicht zum Thema gehört.
AttackingHobo
Nebenbei bemerkt, die homogenen Koordinaten , mit denen sich Grafik-APIs befassen, sind eine spezielle Art von 4D-Raum, in dem alle Punkte auf einer Linie durch den Ursprung in 3D als der gleiche Punkt betrachtet werden. Das heißt, <kx, ky, kz, k> ist der gleiche Punkt <x, y, z> für alle k.
Lars Viklund
4 Drehachsen? Du machst Witze oder?
Subb

Antworten:

7

Die mehrdimensionale Verallgemeinerung eines Dreiecks ist ein N-Simplex . Hier ist ein Video einer Projektion eines solchen Objekts. Hier ist ein weiteres interessantes Video eines 4D-Hyperwürfels.

Diese Wiki- Seite ist ein guter Ausgangspunkt, wenn Sie mehr über die vierte Dimension und die Visualisierung solcher Objekte erfahren möchten. Es verknüpft auch eine Wiki-Seite mit einer Liste von 4D-Spielen .

Zu Ihrer Frage zur Projektion: In diesem Artikel wird die Mathematik von orthografischen und perspektivischen Projektionsmatrizen für höhere Dimensionen erläutert. Ein weiteres großartiges Papier ist die Vier-Raum-Visualisierung von 4D-Objekten von Steven Richard Hollasch. Insbesondere der Abschnitt "4.1: Überblick über die 4D-zu-2D-Projektion auf hoher Ebene" beantwortet Ihre Projektionsfrage ausführlich und enthält den Quellcode.

Schließlich ist hier ein N-dimensionaler Renderer mit OpenGL, der mit vollständigem Quellcode geliefert wird.

Maik Semder
quelle
Ich bin mir nicht sicher, warum Sie ein Dreieck so behandeln würden. So wie ein 3D-Netz ein Dreieck enthält (im Gegensatz zu Tetraedern), kann ein 4D-Netz 2D-Formen wie ein Dreieck enthalten.
Mikael Öhman
@Mikael, nur wegen der mentalen Übung der Frage wäre es interessanter, eine 4D-Verallgemeinerung eines 2D-Dreiecks zu verwenden. 'Die Rotation eines solchen Objekts sieht fantastisch aus. Sie haben jedoch Recht, man könnte ein einfaches Dreieck im 4D-Raum verwenden.
Maik Semder
Vielen Dank für eine sehr gründliche Antwort. Am faszinierendsten war die schiere Anzahl an Spielen / Projekten seit Anfang der 90er Jahre.
Bitcruncher