2 registered members (RealSerious3D, rvl),
1,187
guests, and 7
spiders. |
Key:
Admin,
Global Mod,
Mod
|
|
|
Ellipsoid Kollision Slowdown
#112619
02/18/07 18:04
02/18/07 18:04
|
Joined: Aug 2005
Posts: 343 Germany
HPW
OP
Senior Member
|
OP
Senior Member
Joined: Aug 2005
Posts: 343
Germany
|
Ich habe mein Spiel von der Programmierung her fast fertig und werde demnächst nur noch weitere Levels und Models erstellen müssen. Aber vorerst müsste ich noch ein paar Probleme beheben. Ein Problem ist die Geschwindigkeit beim Ellipsoid Kollisionssystem. Ich habe momentan ein simples BSP Testlevel und darin sind 3 Entities mit folgenden Einstellungen:
my.polygon = off; my.passable = off; my.untouchable = on;
my.enable_impact = on; my.enable_entity = on; my.enable_shoot = on; my.enable_scan = on; my.enable_detect = on; my.enable_trigger = off; my.enable_push = off; my.enable_touch = off; my.enable_release = off;
wait(1); c_setminmax(me);
Die Entities benutzen c_move und c_rotate funktionen (jeweils nur eine) und haben alle ca. 3000 Polygone. Die Variable enable_polycollision steht auf 2. Soweit ist auch noch alles in Ordnung. Sobald jetzt das Level startet stehen die Entities alle weit voneinander entfernt und die Millisekunden bei fnc (functions) stehen im Debug Panel auf ca. 5. Kommen jetzt die Entities zusammen ca. 5 virtuelle Meter Entfernung gehen die Millisekunden auf 13 hoch (was einen heftigen slowdown zur folge hat; von > 130 auf 45 FPS). Wenn die Entities immer näher kommen (<5 Meter) werden die Millisekunden immer höher bis ca. 33 (15-20 FPS) bei Kollision der Bounding Boxen. Sobald ich die Variable enable_polycollision auf 0 oder bei den Models my.passable auf on setze bleiben die Millisekunden immer auf etwa 3, selbst bei Kollisionen.
Jetzt meine Fragen dazu:
1. Ist das normal? (Im Manual steht ja bereits das es langsamer ist) 2. Was könnte ich dagegen machen, das es dennoch schneller läuft? (Funktionen sind wirklich nicht das Problem, alles wurde optimal programmiert. Bin alles ca. 10 mal durchgegangen und habe keine Möglichkeiten mehr wait Anweisungen einzubringen oder c_... Anweisungen wegzulassen.) 3. Braucht man Ellipsoide Kollisionen für das kommende concave Levelsystem oder reicht AABB? 4. Ändert sich vorraussichtlich bei A7 oder bei der nächsten A6 Version irgendetwas an am Kollisionssystem?
Last edited by HPW; 02/18/07 18:08.
Evil Blood (v. 0.52) RPG Commport.de (Social Network Community)
|
|
|
Re: Ellipsoid Kollision Slowdown
[Re: Puppeteer]
#112621
02/18/07 20:38
02/18/07 20:38
|
Joined: Aug 2005
Posts: 343 Germany
HPW
OP
Senior Member
|
OP
Senior Member
Joined: Aug 2005
Posts: 343
Germany
|
Es ist das aktuelle Kollisionssytem was standardmäßig momentan genutzt wird. Das hier zu erklären würde wirklich sehr offtopic sein, daher ein Link wo du es nachlesen kannst: http://www.conitec.net/beta/collision.htmÜbrigens ist es nicht verkehrt öfters mal nach Updates ins Manual zu schauen. ![](/ubbthreads/images/graemlins/wink.gif)
Evil Blood (v. 0.52) RPG Commport.de (Social Network Community)
|
|
|
Re: Ellipsoid Kollision Slowdown
[Re: jcl]
#112624
02/19/07 19:50
02/19/07 19:50
|
Joined: Aug 2005
Posts: 343 Germany
HPW
OP
Senior Member
|
OP
Senior Member
Joined: Aug 2005
Posts: 343
Germany
|
Da das Spiel in der aktuell vorliegenden Version, ohne ausführliche Einweisung in die Administration, etwas schwer zu bedienen ist, werde ich ein paar Anpassungen am Spiel vornehmen und es dann an den Support senden. Da die Anpassungen noch ein wenig Zeit in anspruch nehmen, könnte es sich aber um ein paar Tage Wartezeit bis zum Eintreffen der Testversion handeln.
Evil Blood (v. 0.52) RPG Commport.de (Social Network Community)
|
|
|
Re: Ellipsoid Kollision Slowdown
[Re: HPW]
#112625
02/21/07 20:35
02/21/07 20:35
|
Joined: Aug 2005
Posts: 343 Germany
HPW
OP
Senior Member
|
OP
Senior Member
Joined: Aug 2005
Posts: 343
Germany
|
Oha, wollte grade alles zum mailen fertigstellen und merke grade, das es bereits ca. 140 MB groß. Also mit zusenden per E-Mail ist das denke ich nicht möglich. Sehe auch dass das Model alleine 20,6 MB inkl. Texturen groß ist. Könnte es vielleicht damit etwas zu tun haben? Sind 7 Texturen (Kopf, Oberkörper, Arme, Unterleib, Arme, Hände und Füsse) und (noch) ca. 5 Animationen. Finde es recht groß, weil als nicht MDL ist das ganze um einiges kleiner (ca. 8,5 MB im Ganzen). Würde ein Video zu dem ganzen auch ausreichen um herausfinden zu können woran es liegt, oder was schlagen Sie mir vor um das Problem genauer festlegen zu können?
Evil Blood (v. 0.52) RPG Commport.de (Social Network Community)
|
|
|
Re: Ellipsoid Kollision Slowdown
[Re: HPW]
#112626
02/22/07 00:14
02/22/07 00:14
|
Joined: Aug 2005
Posts: 343 Germany
HPW
OP
Senior Member
|
OP
Senior Member
Joined: Aug 2005
Posts: 343
Germany
|
Hab mit einigen Änderungen an meinem Code (c_move nicht dauernd aufrufen, nur bei gehen, springen und fallen) und Verwendung von vec_accelerate statt accelerate usw. die Millisekunden der Funktionen auf durchschnittlich 15 statt wie vorher 30 bekommen. Allerdings ist es immer noch viel langsamer als mit enable_polycollision = 0; Jetzt können ca. zwischen 10 bis 20 Entities gleichzeitig herumlaufen und ich bekomme eine Framerate von ca. 30-35.
Mein System ist allerdings nicht unbedingt ein Standard PC: Pentium D 3.2 GHZ 2 GB DDR 2 RAM GeForce 7900 GS
Übrigens verwundert es mich sehr, dass c_move so langsam ist gegenüber c_rotate und beide aber im Manual mit Speed = Slow gekennzeichnet sind. c_rotate ist nach meinen Tests so gut wie garnicht merkbar in den Millisekunden, c_move dafür sehr stark. c_rotate habe ich mit folgenden Flags verwendet: ignore_passable | ignore_push
Also momentan reicht mir diese Geschwindigkeit, allerdings ist meine KI noch nicht fertig (Pathfinding oder zumindest Ausweichroutinen fehlen noch). Leider werden auch meine Ideen für das Spiel nicht ganz umsetzbar sein, da ich mit mindestens 60 bis 100 Entities gleichzeitig gerechnet hatte. Für die Rendergeschwindigkeit werde ich LOD verwenden. Also ist nur noch die Geschwindigkeit der Scripte Problematisch. Könnte Lite-C oder eine C++ DLL das Ausführen der Scripte merkbar beschleunigen? Habe irgendwas zwischen 150 und 200 Scripte (Dateien) mit reichlich Funktionen drinnen. Allerdings steht im Debug Panel immer (nur) sowas zwischen 10 bis 25 Funktionen die dauernd laufen.
Last edited by HPW; 02/22/07 00:27.
Evil Blood (v. 0.52) RPG Commport.de (Social Network Community)
|
|
|
|