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

InsoBetreff: Schon wieder ein ärgerniss :/(läuft sehr langsam) |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 ![]() ZEVS |
||
Inso |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 ![]() |
||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
Inso |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Inso hat Folgendes geschrieben: ...vielleicht liegts auch nur an meinem rechner...
wie sieht er denn aus, dein rechner? |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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? |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 ![]() |
||
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
okay. ist allerdings "etwas" chaotisch, und in minib3d
aber is ja "prinzipiell das selbe" http://www.xup.in/dl,10086847/src.rar/ |
||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
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... ![]() |
||
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 THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
Inso |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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... ![]() 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 ![]() 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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Per LOD:
Du erstellst ein Modell mit weniger Polys, sodass es zumindest auf Distanz aussieht wie ein Baum. Dann per EntityDistance ![]() ![]() ![]() ![]() So kannst du einiges an Performance gewinnen. Grüsse |
||
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5 |
![]() |
HolzchopfMeisterpacker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Liest man sonst nicht auch vom Stichwort Singlesurface, wenn es um Performance geht? | ||
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BY ♫ BinaryBorn - Yogurt ♫ (31.10.2018) Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm |
Inso |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 ![]() ![]() ![]() ![]() 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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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.. |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group