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.