Schon wieder ein ärgerniss :/(läuft sehr langsam)

Übersicht BlitzBasic Blitz3D

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen

 

Inso

Betreff: Schon wieder ein ärgerniss :/(läuft sehr langsam)

BeitragMo, Dez 05, 2011 18:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo!
Hab folgendes Problem, in meinem "mapeditor" erstell ich einige bäume, einige zäune, ein haus, einen kleinen marktstand, alles kein problem.
aber sobald ich einen wald versuche zu produzieren, in dem ich einfach viele bäume setz, fängt das spiel bei schon 10-15 bäumen an langsam zu werden. wo liegt das problem?
liegt es daran dass ich jede mesh mit loadmesh lade? würde copyentity das problem lösen?

ZEVS

BeitragMo, Dez 05, 2011 18:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
liegt es daran dass ich jede mesh mit loadmesh lade? würde copyentity das problem lösen?

Was ist das Problem: Ist das Spiel während des Bauens langsam? Dann ja.
Ist es danach zu langsam? Dann ist der Baum wohl zu detailreich. Prinzipiell ist aber CopyEntity der Befehl für sowas.

ZEVS
 

Inso

BeitragMo, Dez 05, 2011 18:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Das bauen ist kein Problem, mir ist aufgefallen dass es auch bei anderen Sachen passiert..
z.b. gehe ich an einem zaun, über bodenplatten, vorbei.. in die eine richtung passiert nix, geh ich in die andere richtung wird alles langsam, ich schaue dabei auf den boden und sehe nur den zaun und die bodenplatten :s
also die tree.b3d ist 26kb groß, denke also nicht dass es daran liegt.. man das ganze wirkt irgendwie willkürlich Sad

Xeres

Moderator

BeitragMo, Dez 05, 2011 18:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Dateigrößen sind relativ aussage los. Wie viele Vertices/Tris (und Texturen) hat ein Baum?
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)
 

Inso

BeitragMo, Dez 05, 2011 18:51
Antworten mit Zitat
Benutzer-Profile anzeigen
380 polys, 550 verts.
die datei hat eine textur drauf, allerdings füg ich die in blitz nochmal extra mit ein, da die blätter sonst nicht korrekt angezeigt werden

die textur: http://www.xup.in/dl,17949786/tree_skin.bmp/
hab das ganze mal hochgeladen: http://www.xup.in/dl,16557360/Output.rar/
könnt es ja mal testen, vielleicht liegts auch nur an meinem rechner

hab den baum auch schon 2 x ausgetauscht mittlerweile, bessert sich nix, hauptsächlich wenn ich in die baumkronen schau, laggt es :s
aber andere spiele schaffen das doch auch, sonst gäbs ja keine wälder in spielen^^
 

PacMani

BeitragMo, Dez 05, 2011 21:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Inso hat Folgendes geschrieben:
...vielleicht liegts auch nur an meinem rechner...

wie sieht er denn aus, dein rechner?

BladeRunner

Moderator

BeitragMo, Dez 05, 2011 21:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Wie wäre es mit dem Code der die Probleme verursacht?
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92
 

Inso

BeitragMo, Dez 05, 2011 21:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Pac-Man hat Folgendes geschrieben:
Inso hat Folgendes geschrieben:
...vielleicht liegts auch nur an meinem rechner...

wie sieht er denn aus, dein rechner?

Dual Core CPu @2,5ghz
2gb ram
geforce 9400 gt
-- also nichts tolles

BladeRunner hat Folgendes geschrieben:
Wie wäre es mit dem Code der die Probleme verursacht?

Das ganze ist in viele kleine include dateien gegliedert, weiß gar nicht wo ich da anfangen soll...


im prinzip macht das spiel folgendes:

am anfang lädt es eine map datei, die nur den typ und die koordinaten der objekte bereit stellt,
diesem objekt wird dann per loadmesh das modell aufgedrückt und dann positioniert und je nach typ noch pickmode gesetzt etc.

also am stärksten tritt das problem auf wenn man direkt in die baumkronen schaut. wie bereits geschrieben kanns nicht wirklich am modell liegen.

gibt es vllt ne bessere möglichkeit als meine große outdoor-welten zu realisieren mit vielen objekten drauf?

BladeRunner

Moderator

BeitragMo, Dez 05, 2011 22:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
Das ganze ist in viele kleine include dateien gegliedert, weiß gar nicht wo ich da anfangen soll...

Ganz einfach: zu einem Zip oder Rar packen, mit allen Medias, hochladen, alle gucken lassen.
Kristallkugeln sind leider aus Wink
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92
 

Inso

BeitragMo, Dez 05, 2011 22:47
Antworten mit Zitat
Benutzer-Profile anzeigen
okay. ist allerdings "etwas" chaotisch, und in minib3d
aber is ja "prinzipiell das selbe"
http://www.xup.in/dl,10086847/src.rar/

Xeres

Moderator

BeitragMo, Dez 05, 2011 23:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Warum zum Henker rückst du jetzt damit raus, dass du in BlitzMax programmierst?
Warum postest du die ganze Zeit in Blitz3D?
Ist dir nicht klar, dass es sich bis auf die Funktionsnamen um eine komplett andere Sprache handelt?
Es könnte ja womöglich Unterschiede geben...
Evil or Very Mad
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)
 

Inso

BeitragMo, Dez 05, 2011 23:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Xeres hat Folgendes geschrieben:
Warum zum Henker rückst du jetzt damit raus, dass du in BlitzMax programmierst?
Warum postest du die ganze Zeit in Blitz3D?
Ist dir nicht klar, dass es sich bis auf die Funktionsnamen um eine komplett andere Sprache handelt?
Es könnte ja womöglich Unterschiede geben...
Evil or Very Mad

Weil bisher alle in B3D funktionierenden Lösungen auf auf minib3d anwendbar waren.Und mir kommt es vor als "kann" in minib3d hier niemand helfen, wenn ich die Fragen aber auf b3d zuschneide, bekomm ich hilfe, und es funktioniert dann auch in minib3d.

Edit: hab mir überlegt die bäume beim erstellen einer globalen "bäume"-mesh hinzuzufügen, sodass alle bäume im endeffekt nur eine mesh sind.. dann hab ich aber das problem dass ich die bäume nicht mehr fällen kann Neutral

es muss doch irgendeine sinnvolle lösung für das ganze geben..

hab jetzt auch das ganze bisschen umgeschrieben, sodass die modelle nicht mehr jedes mal geladen werden, sondern einfach kopiert werden.. bringt aber gar nix =/
das problem tritt bei allen objekten auf, sobald zuviele davon im camera-blickfeld sind, wird alles laaaangsam..

the FR3AK

BeitragDi, Dez 06, 2011 1:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
... das problem tritt bei allen objekten auf, sobald zuviele davon im camera-blickfeld sind, wird alles laaaangsam..


Dann sind das wohl zuviele Polygone auf einmal.

Du könntest die ja mal "Level of Detail" (LoD) anschauen, Objekte mit weniger Polygonen nehmen oder möglicherweise deinen Code genauer betrachten (ich hab ihn mir jetzt nicht angeguckt), ob nicht da ein paar Rechenaufwändige Dinge vorkommen, also dass die Anzeige der Meshs nur die Spitze des Eisbergs ist, die das Programm letztendlich total abbremsen.

Zitat:

Edit: hab mir überlegt die bäume beim erstellen einer globalen "bäume"-mesh hinzuzufügen, sodass alle bäume im endeffekt nur eine mesh sind.. dann hab ich aber das problem dass ich die bäume nicht mehr fällen kann Neutral



Und lief es dann schneller? Natürlich kannst du so die Bäume dann nicht mehr fällen, da musst du dann wohl über Umwege das Fällen ermöglichen. Aber warum sollte man das nicht tun, wenn es dann eine flüssigere Laufzeit garantiert?
 

Inso

BeitragDi, Dez 06, 2011 12:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Hey, danke für die antwort. also das zusammenfassen hat nichts gebracht.
werd jetzt erstmal alle meine modelle nochmal überarbeiten, da ist/war über all (viel)einsparpotential (bodenplatten von 12 auf 1 poly , zaun von 270 auf 51polys)
beim baum bin ich allerdings überfragt, und weiß nicht wie ich da die polyzahl noch drosseln soll, sodass es aber immernoch aussieht wie ein baum :s

ozzi789

BeitragDi, Dez 06, 2011 13:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Per LOD:
Du erstellst ein Modell mit weniger Polys, sodass es zumindest auf Distanz aussieht wie ein Baum.
Dann per EntityDistance und ShowEntity HideEntity arbeiten, eventuell auch CameraFogMode brauchen und ganz weit entferntes Zeug ausblenden.

So kannst du einiges an Performance gewinnen.


Grüsse
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5

Holzchopf

Meisterpacker

BeitragDi, Dez 06, 2011 13:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Liest man sonst nicht auch vom Stichwort Singlesurface, wenn es um Performance geht?
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BYBinaryBorn - Yogurt ♫ (31.10.2018)
Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm
 

Inso

BeitragDi, Dez 06, 2011 13:32
Antworten mit Zitat
Benutzer-Profile anzeigen
ozzi789 hat Folgendes geschrieben:
Per LOD:
Du erstellst ein Modell mit weniger Polys, sodass es zumindest auf Distanz aussieht wie ein Baum.
Dann per EntityDistance und ShowEntity HideEntity arbeiten, eventuell auch CameraFogMode brauchen und ganz weit entferntes Zeug ausblenden.

So kannst du einiges an Performance gewinnen.


Grüsse

das problem tritt aber leider schon bei den ersten 10 bäumen in unmittelbarer nähe des spielers auf, bei ca 300 polys, und 100kb textur, also würde mir das nur was bringen, wenn ich dieses erste problem gelöst bekomme


und zu dem singlesurface zeug: gehts da nicht darum dass dabei nur wirklich sichtbare flächen gezeichnet werden? ist das mit fertigen modellen machbar? ich muss dazu sagen dass ich den baum auch nicht selber gemacht hab, weils mir da zu kompliziert wurde.

ozzi789

BeitragDi, Dez 06, 2011 14:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Da ist was faul!

Wärs möglich ne Exe zu kriegen um das zu testen?
Respektive einen Einblick in deinen Code?

Betreffend Singlesurface -> https://www.blitzforum.de/foru...p?p=385086


Grüsse
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5
 

PhillipK

BeitragDi, Dez 06, 2011 14:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Grundlegend:
Wenn du mit dem Begriff "Surface" nichts anfangen kannst, versuch ichs mal grob zu umschreiben: (vorsicht, gefährliches halbwissen!)

Eine Surface hält die Vertexdaten, dh normals, position, UV's, Polys, etc etc etc. Alles, was du brauchst, um das ding anzuzeigen.
Eine Surface wird als Batzen an die Grafikkarte gesendet (bzw, Minib3d unterstüzt von Haus aus VBO's -> Performacne boost, wenn VBO von der Grafikkarte supportet werden.)
Es ist, grob gesagt, für die Grafikkarte einfacher, eine Surface mit Tausend Würfeln darauf zu berechnen, als Tausend Surfaces mit je einem Würfel.

Grade bei Outdoor-szenarien (schöne große berge, üppige Wälder, vereinzelte Grasbüschel) bietet es sich an, mehrere Objekte zu Singlesurfaces zusammenzufassen.
Aber: Singlesurface ist nur mühseelig also Nicht-statisch zu realisieren. Grund ist, das ein "updaten" einer surface mitunter recht lange dauern kann, dh nachbearbeiten ist da nur schwer möglich.

Andererseits, wenn du schon bei 10 Bäumen einen Performanceleak verpsürst, ist das problem wohl woanders zu suchen.

Zumal 300 Polys n klacks sind.
Hier mal eine idee: Lade doch statt der Bäume mal einen Cube (CreateCube odersowas!) und tue so als wären das bäume. Also: Statt Bäume zu erstellen, einfach die Cubes dahin.

Vielleicht gibt es in deinem "Fällen" - code ein paar drosseln drin ? Wenn ja, dürfte das problem auch mit den Cubes bemerkbar sein.

Ansonsten, nur so eine idee, erstell den baum einmal ohne blattwerk.
Ich habe mir das ganze zwar nicht angeschaut, aber Typischerweise sind Blätter an bäumen einfach größere Flächen mit ein paar blättern + alphatranzparenz drauf. Vielleicht gibts da ein paar probleme (falsche einstellungen etc?).

Nur so ein paar ideen *g*
 

Inso

BeitragDi, Dez 06, 2011 15:56
Antworten mit Zitat
Benutzer-Profile anzeigen
ozzi789 hat Folgendes geschrieben:
Da ist was faul!

Wärs möglich ne Exe zu kriegen um das zu testen?
Respektive einen Einblick in deinen Code?

Betreffend Singlesurface -> https://www.blitzforum.de/foru...p?p=385086


Grüsse


http://www.xup.in/dl,16557360/Output.rar/ <- als exe
http://www.xup.in/dl,10086847/src.rar/ < minib3d code

PhillipK hat Folgendes geschrieben:
Grundlegend:

Zumal 300 Polys n klacks sind.
Hier mal eine idee: Lade doch statt der Bäume mal einen Cube (CreateCube odersowas!) und tue so als wären das bäume. Also: Statt Bäume zu erstellen, einfach die Cubes dahin.



Probier ich gleich mal


PhillipK hat Folgendes geschrieben:
Grundlegend:


Vielleicht gibt es in deinem "Fällen" - code ein paar drosseln drin ? Wenn ja, dürfte das problem auch mit den Cubes bemerkbar sein.



Der Code wird ausschließlich ausgeführt wenn man "F" gedrückt hält.


PhillipK hat Folgendes geschrieben:


Ansonsten, nur so eine idee, erstell den baum einmal ohne blattwerk.
Ich habe mir das ganze zwar nicht angeschaut, aber Typischerweise sind Blätter an bäumen einfach größere Flächen mit ein paar blättern + alphatranzparenz drauf. Vielleicht gibts da ein paar probleme (falsche einstellungen etc?).


Also ich hab eine Baum mesh die ich im code dann texturiere(hintergrund ist schwarz für die transparenz)
Global treetex:TTexture = LoadTexture("data/textures/tree_skin.png",4)
EntityTexture obj.mesh,treetex


wegen der surface-sache, wenn ich meine bäume fällen will könnte das ja dann quasi arge neue probleme nach sich ziehen..

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group