Seite 1 von 1

StaticGeometry aus Würfeln beschleunigen

Verfasst: 22.01.2013 15:25
von Darie
Hallo liebe Community !

Ich habe für eine Minecraft Mod einen Editor programmiert, mit dem man aus Würfeln ein Gebäude oder ähnliches bauen kann.
Dafür habe ich auch eine 3D Vorschaufunktion gemacht, in der aus den Blöcken eine StaticGeometry gebildet wird.
Das klappt auch bei kleineren Gebäuden prima, aber wenn die Arraygrösse ansteigt, dauert es ziemlich lange, bis die Vorschau
angezeigt wird. Ich frage mich nun, ob ich die Erstellung der Geometry beschleunigen kann, indem ich Threads benutze und
die X/Y/Z-Schleife aufteile. Macht das irgendeinen Sinn ? Schliesslich würde ja die ganze Zeit auf ein und diesselbe StaticGeometry
zugegriffen werden.


Bild


Hier ist der Downloadlink zu den Sourcen : https://dl.dropbox.com/u/79165522/Creep ... Source.zip

In der Datei "3dPreview.pb" wird die StaticGeometry gebildet (Prozedur CreateCubes())
Gruss
Alexander

Re: StaticGeometry aus Würfeln beschleunigen

Verfasst: 23.01.2013 01:06
von Darie
Nach etwas Überlegen bin ich drauf gekommen, dass es eigentlich problemlos gehen wird, da ich ja auch mehrere StaticGeometries nutzen kann. Am besten
teile ich die Schleifen auf 2-4 Threads je nach Gesamtgrösse des Arrays auf, wobei die grösste Dimension dann gethreaded wird. Ich poste es sobald es fertig ist.

Gute Nacht

Re: StaticGeometry aus Würfeln beschleunigen

Verfasst: 27.01.2013 02:05
von Darie
Leider klappt es doch nicht so gut, denn ohne LockMutex() gibts eine Ogre-Fehlermeldung und die bremsen wiederum die Threads untereinander aus. Da helfen auch keine
vier StaticGeometries, denn sobald der Befehl AddStaticGeometryEntity aufgerufen wird, ist ein LockMutex() erforderlich. Naja, bei sovielen Blöcken wirds auch so schon ziemlich ruckelig trotz Geometry

siehe:
*ZIP-Update (3dpreview_threaded3.pb)