Raycasting

Geometrie a omezení

Popisuje resources zasažitelné rigid-body rayem a geometrické údaje, které API úmyslně neposkytuje.

Aktuální raycasting API dotazuje Jolt narrow-phase rigid bodies. Jeho veřejná smlouva je orientovaná na celé body: vrací nejbližší bod povrchu každého spravovaného tělesa, nikoliv úplná metadata trojúhelníku nebo compound child.

Podporované typy bodies#

ResourceChování raycastu
Dynamic / Static / Kinematic bodyJe zahrnuto bez ohledu na active nebo sleeping stav.
Sensor bodyJe zahrnuto a filtruje se podle své user layer.
Primitive / Convex shapeVrací nejbližší průsečík povrchu.
Compound shapeVrací nejvýše jeden nejbližší výsledek celého body.
Mesh / HeightFieldSoučasné výchozí nativní nastavení ignoruje zadní strany trojúhelníků.
PlanePoužívá solid-side a boundary chování daného shape.
CharacterVirtualNevrací se; v tomto API nemá rigid Body.
ClothNevrací se; spravuje se odděleně jako SoftBody resource.
BBMODVizuální geometrie potřebuje fyzikální těleso, aby se účastnila Jolt dotazů.

Jednostranné trojúhelníky#

Ray přicházející k zadní straně Mesh nebo HeightField triangle může minout, i když je povrch z dané strany viditelný. Udržujte správné winding, vrhejte ray z očekávané solid side nebo vytvořte vhodnou collision geometry. Současný wrapper neposkytuje nastavení back-face mode.

Počátek uvnitř nebo na shape#

Boundary chování závisí na konkrétním Jolt shape a jeho výchozím ray nastavení. Self-filtering nestavte na předpokládaném exit hitu. Ignorujte zdrojové body, podle potřeby posuňte origin mimo collider a ověřte konkrétní primitive, compound, mesh či Plane použitý ve hře.

Výsledek orientovaný na celé body#

  • jolt_raycast_all() vrací nejvýše jeden výsledek na body.
  • Více children v compound nevytvoří samostatné veřejné položky.
  • Více triangles v mesh nevytvoří samostatné veřejné položky.
  • Sub-shape, triangle a material identifikátory nejsou dostupné.

Omezení tenkého paprsku#

  • Ray nemá poloměr a může minout malé či tenké cíle.
  • Ray nepopisuje swept volume projektilu nebo postavy.
  • Jediný ground ray neposkytuje stabilní oporu přes hrany ani pro široká chodidla.
  • Pokud je důležitý herní objem, použijte Shape Cast nebo více sond.