-
Notifications
You must be signed in to change notification settings - Fork 27
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Schwarzer Rand bei geringem Zoom Level #7
Comments
Hi Hojoe42! Danke für dein Feedback. Bei einer orthografischen Projektion ist die Kameraentfernung unendlich groß. Die einzige Möglichkeit den Kartenausschnitt zu verändern ist daher durch die Skalierung. Im Moment gibt es keine optimale Unterstützung für so Entfernungen. In der Theorie geht das aber schon. Das Problem liegt darin begründet, dass für ein flüßiges streaming immer 3x3 Chunks geladen werden. Wenn die Entfernung vergrößert werden soll, müssen die Chunk-Größen Verändert werden. Das geht über die CVars. Bei zu großen Angaben könnte die Performance aber Probleme machen. Da muss man ein bisschen mit rumexperimentieren. Wenn das Spiel z.B. die Höhe nicht nutzen soll (z.B. für Strageiespiele oder Schach), kann die Z-Achse auf z.B. auf 2 reduziert werden, was viele Algorithmen beschleunigt, da der Inhalt der Chunks dann enorm schrumpft. Soll kein Zoom benutzt werden, sondern nur die Größe geändert werden, können die Grafiken auch verkleinert werden und die dazugehörigen Variablen. So kann man einfach viele kleine Tiles anzeigen. => In einem gewissen Rahmen kann man also gut skalieren, mit extremen Größen habe ich wenig Erfahrungswerte und da müsste man vielleicht die Engine etwas umschreiben bzw. optimieren. Ich habe etwas in der Wiki dazu geschrieben. Das ist aber noch ausbaufähig. Viele Grüße |
Hallo, Danke. Das mit der Kameraentfernung habe ich fast geahnt, es gäbe ja sonst an den Rändern Verzerrungen, oder? Kurz zum Hintergrund. Ich wollte so etwas wie http://gnomoria.com/ ausprobieren. Unter Media gibt es noch ein paar Bilder. Dort gibt es im 'normalen' Modus ein 128 x 128 Blöcke großes Spielfeld mit einer Tiefe von 128 Blöcke. Das sind 2 M Blöcke. Die müssen eigentlich alle im Speicher verwaltet werden. Was meinst du ist das mit der WurfelEngine machbar? Ich habe jetzt im init() meines Controllers folgendes eingebaut:
Damit kann man ohne die schwarzen Ränder scrollen. |
In den Speicher für die Spiellogik ist es absolut kein Problem. Ich habe intern noch mal was umgebaut, so dass die Grenzen der Spielwelt flexibler sind, aber die Dimensionen sollten passen. Du kannst ausrechnen wie groß die Spielwelt sein kann. Jeder Block benötigt 4 byte: So zumindest die Theorie. Flaschenhalt ist dann aber auch wie erwähnt das Rendering. Wenn die Kamera nicht so weit rauszoomt, sollte das aber kein Problem sein. Wenn tausende Entities irgendwo rum laufen, könnte es wegen der CPU in die Knie gehen, da habe ich leider keine Messwerte und man kann noch optimieren (Octrees z.B.). EDIT: Wenn Gnomoria nicht |
Wenn ein kleiner Zoom Level verwendet wird, z.B. 0,3 dann gibt es beim Scrollen nach Osten oder Westen teilweise schwarze Ränder. Je höher der Zoom Level desto größer die schwarzen Ränder.
WurfelTest.zip
In dem Beispiel kann man mit dem Scrollrad den Zoom ändern und mit A oder D die Kamera verschieben. Wenn man ganz heraus zoomt kann man das Problem schnell sehen.
Ist es überhaupt richtig den Zoom Level zu verwenden wenn man einen größeren Bereich der Spielwelt sehen will? Kann man die Kameraentfernung ändern?
The text was updated successfully, but these errors were encountered: