Performance-Frage (Skalierung, Kamerareichweite)

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

 

Aptem

Betreff: Performance-Frage (Skalierung, Kamerareichweite)

BeitragMi, Sep 28, 2011 12:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo zusammen,

ich bin neu hier und würde gerne wissen inwieweit man Meshes skalieren darf, ohne dabei Perfomance zu verlieren. Denn ich will für mein Projekt reale Proportionen beibehalten.

Ich habe jetzt die Erde als Sphere. Der Radius beträgt ca. 6350km.
Dann habe ich ein Raumschiff mit den Maßen BxHxL: 20mx2mx15m. Wird sich das später auf die Performance auswirken, wenn ich sage das 1 Einheit = 1 km entspricht? Dann müsste ich den Planeten mit EntityScale(p,6350,6350,6350) skalieren und danach noch meine Kamerareichweite deutlich erhöhen, sagen wir mal auf 10000000.
Wie siehts dann mit der Performance aus wenn ich ein ganzes Sonnensystem darstellen will?

Gruß
Aptem

Jan_

Ehemaliger Admin

BeitragMi, Sep 28, 2011 13:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Die Größe ist kein Problem, solange du in den Float/Integer werten bleibst, jedoch ist die Kamera Reichweite schwierig. diese sollte man durchaus schlau begrenzen. Weil sie auch den Z-Buffer regelt. Und wenn du dort eine Übelste Spanne rein machst, wird es langsam.
du könntest auch einfach zwei konst machen.

BlitzBasic: [AUSKLAPPEN]
Const tkm#=1
Const km#=0.001
Const cm#=0.00001

Erdradius#=6,35 * tkm
between angels and insects

Mr.Keks

BeitragMi, Sep 28, 2011 15:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Das größte Problem ist, dass du so blöde Z-Buffer-Glitches bekommst, wenn du eine zu weit reichende Kamera hast... Wenn du dann auf dein kleines Raumschiff blickst, kommt es zu so Zickzackkanten an den Stellen, wo sich Flächen des Raumschiffs schneiden. Auch versagt potentiell die Float-Arithmetik, wie Jan schon erwähnte (kann dazu führen, dass durch Rundungsfehler Bewegungen falsch oder gar nicht mehr funktionieren oder dir Blitz' Sprites um die Ohren fliegen...)

Auch für die Spielmechanik macht es vermutlich keinen Sinn, solche Skalierungsunterschiede drin zu haben. Ich meine, dein Raumschiff muss dann ja tausendfach seine eigene Länge pro Frame zurücklegen, um voranzukommen. Wenn du das nicht planst, kannst du die Planeten auch einfach als Hintergrundobjekte führen oder eben kleiner machen. Btw nervt bei echten Größen auch, dass das Universum quasi leer ist. Deine Spielwelt besteht dann eigentlich nur aus einsamem Raum.

Es hat schon seine Gründe, dass eigentlich kein Spiel mit ernsthaften Dimensionen arbeitet. Sowohl spielmechanische als auch technische.
MrKeks.net

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group