![]() |
In einer 3D Welt bewegen.
Ich will in einem Projekt eine 3D Minimap-Welt erstellen, in der ich mich drehen/bewegen kann. Eine 3D Engine will ich nicht, dass will ich alleine programmieren. Nur fehlt mir der Ansatz.
Code:
Womit ich keine Probleme habe ist die 3D-Perspektive. Wenn ich also im Süden stehe, kann ich die Welt perspektivisch korrekt darstellen. Auch habe ich keine Probleme Objekte darzustellen die eine andere Perspektive haben, also zum Beispiel von Südwest nach Nordost ausgerichtet sind. Solange ich auf der Linie bleibe, kann ich nach Norden alles 3D darstellen.
NW N NO
+--+--+--+--+ | | | | | +--+--+--+--+ | | | | | W +--+--+--+--+ O | | | | | +--+--+--+--+ | | | | | +--+--+--+--+ SW S SO Ich weiß nur nicht wie ich mich drehen soll. Wie machen es die 3D Spiele? Meine bisherige Idee ist, dass ich Punkt S als absoluten Nullpunkt wähle und passend zum Drehwinkel jeden Punkt im Raum umrechne. Ist eine Idee. Hat jemand Erfahrungen mit so was? |
AW: In einer 3D Welt bewegen.
Im Grundlegenden ist die Antwort auf deine Fragen relativ einfach: Lineare Algebra.
Du kannst bspw. schauen, wie eine solche Aufgabe mit DirectX gelöst werden würde (Projektionsmatrizzen und Vektoren). Dich durch einführende Tutorials arbeiten wäre da ein guter Anfang, auch ein grundlegendes Verständnis zu entwickeln. Danach kannst du den Teil, den DirectX erledigt, manuell umsetzen. Aber als Vorwarnung: Das wird nicht einfach, sehr zeitintensiv, und der Lerneffekt wird das einzig Brauchbare davon sein. Aus Neugier muss ich jetzt aber fragen: Wie zeichnest du derzeit Objekte aus unterschiedlichen Perspektiven? Deine Beschreibung was funktioniert und was nicht gibt mir Rätsel auf. |
AW: In einer 3D Welt bewegen.
Habe deine Beschreibung nicht ganz verstanden. Willst du wirklich ein 3D Modell zeichnen, oder willst du lediglich die 2D Abbildung eines 3D Modells zeichnen (das was ich als "Minimap" bezeichnen würde, wie man sie auch aus Spielen kennt)?
Im ersten Falle, würde ich dir auch dringend dazu raten DirectX oder OpenGL zu verwenden. Soll es nur die 2D Abbildung von Punkten sein, ist lineare Algebra schon das richtige Stichwort. Die Umrechnung von 3D Koordinaten nach 2D ist relativ trivial. Für Rotation oder Zentrierung auf einen Ursprungspunkt (z.b. eigener Spieler) verwende ich am liebsten ![]() |
AW: In einer 3D Welt bewegen.
Zitat:
Zitat:
|
AW: In einer 3D Welt bewegen.
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:22 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz