Jump to content
Unity Insider Forum

Kein Cylinder Collider?


Reggie()

Recommended Posts

Ich habe im Internet gesucht und scheinbar gibt's keinen Cylinder Collider in Unity. Was komisch ist, denn a) braucht man den doch recht häufig, b) ist ein Cylinder eine der stardard Formen und c) ist der nur schwer zu ersetzen bzw. selbst du bauen und d) steht in der Dokumentation: 

Zitat

Capsule Collider

The Capsule Collider is made of two half-spheres joined together by a cylinder. It is the same shape as the Capsule primitive.

Also wenn der Capsule Collider schon einen Cylinder COllider enthält, warum gibt es den dann nicht alleine? Kann man den evtl. importieren?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich würde stark davon ausgehen, dass das immer noch aktuell ist.

Wenn man zwei Kreise miteinander vergleicht, ist das so simpel, dass man dafür nichtmal lange nachdenken muss. Vergleicht man zwei Polygon-Collider, sieht das schon ganz anders aus. Kapseln, Kugeln und Boxen sind einfach einfacher untereinander zu vergleichen als andere geometrische Formen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

 

Seit 2010 sind 2 (oder sind es mit der 2018 sogar3?) Physics Updates gekommen. Das Erste hat die Performance mächtig erhöht und das Zweite hat viele Neuerungen in der Art und Weise der Kollisionserfassung gebracht.

Aber es stimmt schon. Je einfacher der Collider ist umso performanter ist das Ganze. Und das ist natürlich immer so, nicht nur bei der Physik. Am besten macht man ein Textadventure wo man nur Enter drücken kann. Dann ist man auf der sicheren Seite! :D
*Spaß* ;) 

Man sollte aber trotzdem die Kirche im Dorf lassen. Wenn bei meinen Flippern die Kugeln über eine Drahtrampe rollen, dann berührt die Kugel 2-3 Meshcollider gleichzeitung. Und diese Collider sind wirklich aufwendig weil sie recht fein unterteilt sind und sich winden. Performancetechnisch passiert da kaum etwas.
Unity könnte also ruhig bei einem Zylindergrundobjekt auch einen Zylindercollider anbieten. Sie bieten ja auch Echtzeitreflektionen in ihren Posteffekten an, die ein 100Faches an Performance kosten. (Ja, ich weiß. Das eine macht die Grafikkarte, das Andere macht der Prozessor, obwohl es die Grafikkarte machen sollte)


Auf meinem Kalender steht jetzt 2019. Die Geräte, wie mein IPad1, die damals nicht so den schnellsten Prozessor hatten, bekommen überhaupt keine SW mehr, weil das Betriebssystem seit Jahren nicht mehr aktualisiert werden kann. Das IPad2 war schon "DOPPELT" so schnell wie das iPad1.
Deswegen sind Physik Performanceaussagen von 2010 absolut nicht mehr relevant. ;)
 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ein MeshCollider in Zylinderform ist wirklich kein Problem, da bin ich ganz bei dir. Aber das ist eben nicht dasselbe wie ein echter Zylinder, da er aus geraden Flächen besteht und nicht wirklich rund ist. Ein echter CylinderCollider würde wie der CapsuleCollider rollen, wenn er auf der Seite liegt, aber eben abgeschnittene Enden haben. Da braucht es andere Berechnungen als bei einem MeshCollider, der keine Rundungen hat. Und ganz ehrlich - ich habe keine Idee, wie man so etwas überhaupt berechnen würde. Performance ist da noch gar kein Thema in meinem Kopf.

Beim Thema "Einen MeshCollider in Zylinderform anbieten" wäre dann wieder die Frage, wie viele Segmente der haben sollte. Anstatt sich da auf etwas einzuschießen, sagt Unity einfach "wir bieten keinen an, importier dir halt kurz einen". Finde ich auch nicht doof.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Er ist nicht unmöglich aber schwierig zu berechnen. Bei den vorgefertigten Collidern werden gewisse Algorythmen genutzt, die ein Kugel und eine Kapsel eben für die Physik ganz rund machen. Es gibt da also keine geraden Flächen, wie bei einem Polygonobjekt. Dadurch kann das Objekt richtig rollen. Bei einem Meshcollider ist man in der Anzahl der Flächen begrenzt. Man kann den Kollider also nicht unendlich fein machen und somit würde er eher hoppeln, anstatt zu rollen, weil eben Kanten vorhanden sind. Kleine Kanten können dazu führen, dass die Physik falsch rechnet und das Objekt ab einer gewissen Geschwindigkeit zu hüpfen anfängt, auch wenn die Kanten direkt aneinander liegen.
Naja, das ist wohl das Problem. Rundungen sind machbar, Flächen, wie beim Quader auch. Aber die Kombination aus beidem scheint wohl schwieriger und kompliziert zu berechnen zu sein.
 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Gute Erklärung @malzbie!

Bei einer Kugel kannst du berechnen, ob ein Punkt darin ist, indem du den Abstand zum Mittelpunkt mit dem Radius vergleichst. Bei einer Kapsel kannst du das, indem du den Abstand zur Linie betrachtest, die zwischen den beiden Endpunkten liegt. Bei einem Zylinder wird's einfach komplex. Und das ist erstmal nur für Punkte aufgelistet.

Wenn du irgendetwas komplexeres als die Standard-Colliderformen brauchst, hast du immer zwei Möglichkeiten.

  1. Compund Collider - du baust dir eine Komplexe Form aus den einfachen Formen zusammen. Wenn das geht, ist's immer gut.
  2. MeshCollider - du baust die Kollisionsform in einem Modellingprogramm, importierst das Modell und gibst es einem MeshCollider.
Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.

×
×
  • Neu erstellen...