User Tools

Site Tools


raycasting_line_intersections

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
raycasting_line_intersections [2023/04/17 15:33]
max
raycasting_line_intersections [2023/04/17 16:13] (current)
max update syling on linetesting
Line 12: Line 12:
  
 Overall, raycasting is a powerful technique for simulating physics in real-time applications and games, and it has a wide range of practical uses.  Overall, raycasting is a powerful technique for simulating physics in real-time applications and games, and it has a wide range of practical uses. 
 +
 +===== What's the difference between Raycasting and Linetesting? =====
 +Raycasting and linetesting are two common techniques, while both techniques are used to determine if a line segment intersects with any objects in a scene, they have distinct differences in their approach.
 +
 +The main difference between raycasting and linetesting is that raycasting uses a single point to check for intersection, whereas linetesting uses a line segment. Raycasting is also faster than linetesting because it only needs to check a single point, whereas linetesting needs to check multiple points along the line segment. However, linetesting is more accurate because it checks the entire line segment for intersections, whereas raycasting only checks for intersections along a single ray.
 +
  
 ===== Raycasting functions ===== ===== Raycasting functions =====
Line 126: Line 132:
 ===== Line testing =====  ===== Line testing ===== 
  
-===== Raycasting::Linetest(const Sphere& sphere, const Line& line) =====+==== Spheres ==== 
 + 
 +**Raycasting::Linetest(const Sphere& sphere, const Line& line) **
  
 Tests if a line intersects a sphere. Tests if a line intersects a sphere.
Line 139: Line 147:
   - ''bool''   - ''true'' if the line intersects the sphere, ''false'' otherwise.   - ''bool''   - ''true'' if the line intersects the sphere, ''false'' otherwise.
  
-===== Raycasting::Linetest(const AABB& aabb, const Line& line) =====+==== AABBs ==== 
 + 
 + 
 +**Raycasting::Linetest(const AABB& aabb, const Line& line) **
  
 Tests if a line intersects an axis-aligned bounding box (AABB). Tests if a line intersects an axis-aligned bounding box (AABB).
Line 152: Line 163:
   - ''bool''   - ''true'' if the line intersects the AABB, ''false'' otherwise.   - ''bool''   - ''true'' if the line intersects the AABB, ''false'' otherwise.
  
-===== Raycasting::Linetest(const OrientedBox& obb, const Line& line) =====+==== Oriented Boxes ==== 
 + 
 + 
 +**Raycasting::Linetest(const OrientedBox& obb, const Line& line) **
  
 Tests if a line intersects an oriented bounding box (OBB). Tests if a line intersects an oriented bounding box (OBB).
Line 165: Line 179:
   - ''bool''   - ''true'' if the line intersects the OBB, ''false'' otherwise.   - ''bool''   - ''true'' if the line intersects the OBB, ''false'' otherwise.
  
-===== Raycasting::Linetest(const Plane& plane, const Line& line) =====+==== Planes ==== 
 + 
 + 
 +**Raycasting::Linetest(const Plane& plane, const Line& line) **
  
 Tests if a line intersects a plane. Tests if a line intersects a plane.
Line 178: Line 195:
   - ''bool''   - ''true'' if the line intersects the plane, ''false'' otherwise.   - ''bool''   - ''true'' if the line intersects the plane, ''false'' otherwise.
  
-===== Raycasting::Linetest(const Triangle& triangle, const Line& line) =====+==== Triangles ==== 
 + 
 + 
 +**Raycasting::Linetest(const Triangle& triangle, const Line& line) **
  
 Tests if a line intersects a triangle. Tests if a line intersects a triangle.
Line 191: Line 211:
   - ''bool''   - ''true'' if the line intersects the triangle, ''false'' otherwise.   - ''bool''   - ''true'' if the line intersects the triangle, ''false'' otherwise.
  
-===== Raycasting::Linetest(const Mesh& mesh, const Line& line) =====+==== Meshes ==== 
 + 
 + 
 +**Raycasting::Linetest(const Mesh& mesh, const Line& line) **
  
 Tests if a line intersects a mesh. Tests if a line intersects a mesh.
Line 204: Line 227:
   - ''bool''   - ''true'' if the line intersects the mesh, ''false'' otherwise.   - ''bool''   - ''true'' if the line intersects the mesh, ''false'' otherwise.
  
-===== Raycasting::Linetest(const Entity& entity, const Line& line) =====+==== Entities ==== 
 + 
 + 
 +**Raycasting::Linetest(const Entity& entity, const Line& line) **
  
 Tests if a line intersects an entity. Tests if a line intersects an entity.
Line 217: Line 243:
   - ''bool''   - ''true'' if the line intersects the entity, ''false'' otherwise.   - ''bool''   - ''true'' if the line intersects the entity, ''false'' otherwise.
  
-===== Raycasting::Barycentric(const Point& p, const Triangle& t) =====+ 
 +===== Support Functions ===== 
 + 
 + 
 +**Raycasting::Barycentric(const Point& p, const Triangle& t)**
  
 Calculates the barycentric coordinates of a point in relation to a triangle. Calculates the barycentric coordinates of a point in relation to a triangle.
raycasting_line_intersections.txt · Last modified: 2023/04/17 16:13 by max