StaticGeometry aus Würfeln beschleunigen

Fragen zu Grafik- & Soundproblemen und zur Spieleprogrammierung haben hier ihren Platz.
Benutzeravatar
Darie
Beiträge: 204
Registriert: 14.09.2004 21:51

StaticGeometry aus Würfeln beschleunigen

Beitrag 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
Repeat
PureBasic
ForEver
Benutzeravatar
Darie
Beiträge: 204
Registriert: 14.09.2004 21:51

Re: StaticGeometry aus Würfeln beschleunigen

Beitrag 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
Repeat
PureBasic
ForEver
Benutzeravatar
Darie
Beiträge: 204
Registriert: 14.09.2004 21:51

Re: StaticGeometry aus Würfeln beschleunigen

Beitrag 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)
Repeat
PureBasic
ForEver
Antworten