Close
    Search Search

    Raycaster

      Raycaster

      pédia: Raycasting


      Raycaster est l'utilisation de tests d'intersection pour résoudre des problèmes dans ROBLOX. L'utilisation la plus courante du raycasting est de déterminer le premier objet traversé par un rayon. Cela se fait en projetant un rayon virtuel à partir d'un certain point dans une direction et en déterminant la première surface avec laquelle il a intersecté.

      À la mi-2011, ROBLOX a implémenté la méthode FindPartOnRay, qui trouve la première partie avec laquelle un rayon, représenté par un objet Ray, entre en collision lors de la diffusion. Il était déjà possible, en utilisant des algorithmes créés par l'utilisateur, d'implémenter ce comportement, mais de tels algorithmes sont généralement très coûteux en performances. Les algorithmes implémentés à un niveau inférieur (dans ce cas, en C++) sont généralement plus rapides et plus performants que les algorithmes à un niveau supérieur. Même avec la méthode FindPartOnRay, le raycasting est encore suffisamment lent pour être évité lorsqu'il n'est pas nécessaire.


      ROBLOX a des valeurs Ray, qui sont utilisées par le moteur pour représenter l'origine et la direction des rayons. Ces rayons peuvent être créés avec la fonction Ray.new :

      Ray.new(origine, direction)

      Paramètres de la méthode FindPartOnRay
      Paramètre Type Détails
      rayon rayon La valeur du rayon qui représente l'origine et la direction dans laquelle le rayon doit être projeté.
      ignoreDescendantsInstance Instance Un objet dont les descendants seront ignorés par le rayon.
      terrainCellsAreCubes booléen Si ce paramètre est défini sur true, la forme des cellules de terrain sera ignorée et elles seront considérées comme des cubes.

      La méthode, qui est une méthode de l'espace de travail, renvoie deux valeurs : la partie touchée par le rayon, s'il en a touché une, et le point auquel la partie a été touchée.



      Il existe également une autre méthode presque identique à la méthode FindPartOnRay, la méthode FindPartOnRayWithIgnoreList, mais avec la différence qu'au lieu d'avoir un paramètre pour ignorer tous les descendants d'un objet, elle ignore tous les descendants des objets d'une table. Cela permet une personnalisation plus poussée des parties qui sont ignorées mais est également plus lente.


      ajouter un commentaire de Raycaster
      Commentaire envoyé avec succès ! Nous l'examinerons dans les prochaines heures.