Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Anonymous

unregistriert

11

11.08.2003, 21:35

ach mist

natürlich, ich meinte natürlich anders herum :-)) ;D :jojo:

Anonymous

unregistriert

12

11.08.2003, 21:37

oh schon wieder mist

David, ich bin eben hängen geblieben und würde es Dir nicht übel nehmen, wenn Du mal den Thread um die zwei letzten Einträge von mir kürzen könntest.
Danke

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

13

11.08.2003, 22:04

Wo? Ich seh nix :)
Hab auch nix gelöscht.

Anonymous

unregistriert

14

11.08.2003, 22:25

OK, auch nicht schlimm

bin ja selber schuld. Ist manchman so, wenn man zwischen verschiedenen Projekten hin und herspringen muss. Da negiere ich Zahlen usw. Es gab ganz sicher eine Verbesserung! ;-)

Aber wenn ich noch weiterreden darf...
Auch die Methode BoxHitsBox hat bei mir Probleme ergeben, wenn ein Körper um ein mehr als vierfaches kleiner war, als der andere.
In dem Fall musste ich den Parameter iSamples erhöhen. Doch es haben nicht alle Körper dieses Verhältnis. Die Erhöhung der Samples erhöht die Ablaufzeit drastisch.
Also habe ich mir gedacht, dass nicht die Eckpunkte, sondern die Linien die Box schneiden müssen, um eine Boxkollision als wahr zu erkennen.
Dummerweise funzt die Methode LineHitsBox auch nicht viel schneller.
Kann man die noch optimieren.
So, dass kein Kollisionspunkt ausgerechnet wird.
So ähnlich wie LineHitsPlaneFast, nur dass diese Funktion in diesem Fall natürlich falsch ist, denn das Dreieck ist schon begrenzt...

Sag mir ruhig, wenn ich zu viel rede.

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

15

11.08.2003, 23:13

Nein, Du redest nicht zu viel! Ich diskutiere gerne über Optimierungen.
Also, tbLineHitsBox ist eigentlich schon recht schnell, denke ich. Und einen Schnittpunkt muss man bei diesem Verfahren in jedem Fall ausrechnen. Denn man muss ja testen, ob einer der Schnittpunkte mit den Ebenen des Quaders im Quader liegt.
Momentan kenne ich kein anderes Verfahren.
Und bei Box-Box weiß ich leider auch nichts besseres... es muss da aber was geben. Naja, man könnte aber noch versuchen, die Box-Box-Tests durch Sphere-Sphere-Tests zu ersetzen. Allerdings ist bei Kugeln das Problem, dass sie sich nicht gut genug an den Inhalt anpassen können.

Anonymous

unregistriert

16

11.08.2003, 23:26

spheretest

danke erst mal für Deine Bemühungen.
Spheretest kann ich vergessen.
Die Spheren sind komischerweise so groß!!!
Ich weiß nicht, warum. Irgendwie muss hier die Funktion D3DXComputeBoundingSphere... Oder besser irgendwie mache ich hier noch was falsch.
Also auf deutsch: Der Spheretest hilft wirklich nur fürs erste Erbrechen.

Die BoxBox-Funktionen zu optimieren incl. OcTree halte ich für besser.
Ist es Dir schon aufgefallen, dass ein ziemlich kleiner Körper beim Durchwandern eines größeren immer Kollision nicht Kollision, Kollision nicht Kollision anzeigt... und das, bis er aus dem anderen Käörper herausgewandert ist. (natürlich bei deaktivierter React-Funktion, der physikalischen Einheit der Tribase ;-) )

Mit LineHitBox funzt das immer richtig.
Muss mal nachsehen, wass es da anderes gibt...
Aber Du meinst jetzt nicht etwa die Bibo von magic-software mit der Berücksichtigung der Zeit (der Geschwindigkeit)?

Bis später
Jens

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

17

11.08.2003, 23:36

Re: spheretest

Zitat von »"Jens"«

Die Spheren sind komischerweise so groß!!!

Ist schon klar, warum die so groß werden. Nehmen wir mal ein Beispiel: Du hast eine Box, die 5 Einheiten breit ist, 5 tief und 100 hoch. Dann muss die Bounding-Sphere schon fast einen Radius von 50 haben, um alles zu umschließen.
Ich werde mich mal nach anderen Algorithmen umsehen...

Anonymous

unregistriert

18

12.08.2003, 00:05

genau

z. B. das MS Sample heli.x.
Da ist ein toller Rotor oben dran.
Der Radius ist demzufolge riesengroß.
Aber ich habe auch noch den Verdacht, dass sich die DX-Funktion bei der Berechnung des Radius im Mesh tyni.x verrechnet.
Ich finde bei mir keinen Fehler und trotzdem ist der Radius viel größer, als die größte Ausdehnung.
OK, ich bin gespannt auf die Methoden, die Du findest...
Viel Erfolg.

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

19

12.08.2003, 00:10

Danke.
Es könnte sein, dass der Tiny-Radius größer ist, weil das Mesh in seiner Original-Pose anders ist als in der Animation. Normalerweise modelliert man Menschen so, dass sie mit ausgestreckten Armen da stehen. Das erhöht möglicherweise den Radius.
Denn viel verrechnen kann man sich da eigentlich nicht. Prüfe doch mal, was bei Deiner Rechnung rauskommt.

PS: Warum registrierst Du Dich nicht mal hier im Forum? ;)

Jens

Treue Seele

Beiträge: 117

Wohnort: Dresden

  • Private Nachricht senden

20

12.08.2003, 12:51

tyni-Radius

Das mit den Frameradien kann natürlich sein....

heute vielleicht nur was kleineres:
Ich habe jetzt eine Klasse CTriangle erstellt, die alle Planes mit bei Initialisierung des Dreiecks bildet. In Update(ExtraData) werden die Dreiecke geladen und initialisiert. Dadurch entfällt die getrennte Speicherung der Vectoren und TriPlanes.
In der Funktion ModelHitsModelX erspare ich mir nun die Kopie der Dreiecke.

Werbeanzeige