Was kann man gegen starkes ruckeln tun?

Fragen zu Grafik- & Soundproblemen und zur Spieleprogrammierung haben hier ihren Platz.
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7031
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: Was kann man gegen starkes ruckeln tun?

Beitrag von STARGÅTE »

Level Of Detail

Das heißt, das Mesh hat in der Entfernung weniger Dreicke.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
Purebasium
Beiträge: 74
Registriert: 05.02.2014 22:08
Computerausstattung: Ein Computer halt.
Mit Windows 7
und mit AMD Phenom(tm) II X4 B50 Prozessor
und einer ATI Radeon HD 5450 Grafikkarte
Wohnort: Mars, Kraterstr. 57b, Apartment 7

Re: Was kann man gegen starkes ruckeln tun?

Beitrag von Purebasium »

Aha.

Ich experimentiere jetzt noch etwas mit CastShadows auf dem Terrain, denn mit denen könnte es gehen.
Allerdings haben diese sehr viele Bugs, dass sie nicht korrekt angezeigt werden.
"Ordnung braucht nur der Dumme, das Genie beherrscht das Chaos. "
Albert Einstein
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7031
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: Was kann man gegen starkes ruckeln tun?

Beitrag von STARGÅTE »

Ich möchte dich keineswegs Kritisieren, aber ein so "drastischer" einbruch der Frames liegt nicht außschließlich an der Engine3D.
Ich behaupte einfach mal, du hast deinen Code selbst immer noch falsch aufgebaut, bzw. den Aufbau der Welt falsch strukturiert.

Ich kenn den aktuellen Stand nicht, was alles schon drin ist (KI?, Sounds?), aber 55 FPS geht auf keinen Fall.
Klar können Parameter an der 3D-Engine, einige Frame rausholen, aber das kannst du später machen.

Zuerst muss du mit "deinen" Mitteln, die Frames auf ein Niveau von 150 bis 300 Frames bekommen (ohne ASync),
damit du dann mit dem hinzufügen von weiten Sachen nicht unter 120 Frames sinkst.

Eine 3D-Engine kann nur so schnell sein, wie der der sie benutzt. Falsche benutzung führt halt zu extremen Frameverlust.

Um dir weiter zu helfen kannst du ja mal einige Daten durchgeben:
Wie viele Entitys werden erstellt (mit oder ohne Body?)?
Wie viele Dreicke werden gerändert?
Wie viele Lichtquellen?
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
Purebasium
Beiträge: 74
Registriert: 05.02.2014 22:08
Computerausstattung: Ein Computer halt.
Mit Windows 7
und mit AMD Phenom(tm) II X4 B50 Prozessor
und einer ATI Radeon HD 5450 Grafikkarte
Wohnort: Mars, Kraterstr. 57b, Apartment 7

Re: Was kann man gegen starkes ruckeln tun?

Beitrag von Purebasium »

Es gibt 1 Lichtquelle
1 Terrain (240*240)
ca.15 einfache Häuser (ohne Body)
und ca. 300 Bäume (ohne Body)

Kann ich dir den Code vielleicht mal per PN schicken?
"Ordnung braucht nur der Dumme, das Genie beherrscht das Chaos. "
Albert Einstein
Benutzeravatar
Purebasium
Beiträge: 74
Registriert: 05.02.2014 22:08
Computerausstattung: Ein Computer halt.
Mit Windows 7
und mit AMD Phenom(tm) II X4 B50 Prozessor
und einer ATI Radeon HD 5450 Grafikkarte
Wohnort: Mars, Kraterstr. 57b, Apartment 7

Re: Was kann man gegen starkes ruckeln tun?

Beitrag von Purebasium »

ca. 370 000 Dreiecke

und ich habe bis jetzt weder KI noch Sounds noch sonst etwas besonderes eingefügt.
"Ordnung braucht nur der Dumme, das Genie beherrscht das Chaos. "
Albert Einstein
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7031
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: Was kann man gegen starkes ruckeln tun?

Beitrag von STARGÅTE »

Hab dein Spiel jetzt mal getestet.

Ich habe hier 400 Frames (ohne ASync, 1280x1024) mit einigen Häusern.

Die Frames brechen total ein, wenn ich ein Gebäude setzen will.
Grund dafür ist die etwas abenteuerliche procedure:
Durchschnitthoehe()

Dort hast du eine Doppelschleife:

Code: Alles auswählen

For i = x*50-6000 To x*50-6000 +weite*50
  For j = z*50-6000 To z*50-6000+hoehe*50
Bei der zB für weite = 4 und hoehe = 4 ... wegen der *50 ... 200*200 also 40000 mal TerrainHeight() aufgerufen wird.

Das musst du vereinfachen.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
Purebasium
Beiträge: 74
Registriert: 05.02.2014 22:08
Computerausstattung: Ein Computer halt.
Mit Windows 7
und mit AMD Phenom(tm) II X4 B50 Prozessor
und einer ATI Radeon HD 5450 Grafikkarte
Wohnort: Mars, Kraterstr. 57b, Apartment 7

Re: Was kann man gegen starkes ruckeln tun?

Beitrag von Purebasium »

Wie kann ich ASync ausschalten?
"Ordnung braucht nur der Dumme, das Genie beherrscht das Chaos. "
Albert Einstein
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7031
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: Was kann man gegen starkes ruckeln tun?

Beitrag von STARGÅTE »

Bei OpenWindowedScreen() kannst du hinten angeben: #PB_Screen_NoSynchronization

Das ist in dem Screen3DRequester.pb Zeile 221

Code: Alles auswählen

Result = OpenWindowedScreen(WindowID(#WINDOW_Screen3DRequester), 0, 0, ScreenWidth, ScreenHeight, 0, 0, 0, #PB_Screen_NoSynchronization)
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
Chimorin
Beiträge: 451
Registriert: 30.01.2013 16:11
Computerausstattung: MSI GTX 660 OC mit TwinFrozr III
6Gb DDR 3 RAM
AMD Phenom II X4 B55 @ 3,6GHz
Windows 7 Home Premium 64-bit

Re: Was kann man gegen starkes ruckeln tun?

Beitrag von Chimorin »

Kann es sein, dass du versuchst das Terrain unter einem gesetzten Gebäude auf die gleiche Höhe zu bringen?

Eine Frage an Stargate: Wie bekommst du es hin, dass dir OGRE mehr als 60 FPS (Bzw. das, was dein Bildschirm hat) ausgibt? Oder haust du einfach einen Zähler in die Hauptschleife?

@Purebasium:
Arbeitest du jetzt mit Statischen Geometrien? Wie schon gesagt muss man den Batchcount auf ein Minimum reduzieren; Wie viele Dreiecke ein Batch hat ist egal. Das spart wieder einiges an Ressourcen.
Bild

- formerly known as Bananenfreak -
Benutzeravatar
Purebasium
Beiträge: 74
Registriert: 05.02.2014 22:08
Computerausstattung: Ein Computer halt.
Mit Windows 7
und mit AMD Phenom(tm) II X4 B50 Prozessor
und einer ATI Radeon HD 5450 Grafikkarte
Wohnort: Mars, Kraterstr. 57b, Apartment 7

Re: Was kann man gegen starkes ruckeln tun?

Beitrag von Purebasium »

Ich arbeite nicht mit Stativgeometry denn immer wenn ich es versucht habe kam diese Fehler
http://forums.purebasic.com/german/view ... =4&t=27894

Und ich versuche nicht das Terrain unter dem Gebäude zu glätten, sondern das Haus steht dann auf einem Stützbalken.

Terrain normal:

______
...........\_
..............\__
...................\___


Mit Haus:

______[_____]
........|..\_''''''|
........|.....\_|_
........|........|..\___
"Ordnung braucht nur der Dumme, das Genie beherrscht das Chaos. "
Albert Einstein
Antworten