I'm trying to perform an AABB-tringle intersection with the triangles coming from a tria mesh and the AABB being the individual cells from a structured 3D grid/Voxel. Are there any smart ways/ algorithms I could use to filter out and reduce the number of triangles and AABB combinations I would have to perform the SAT test against? As it stands I'm checking every triangle against every cell from the grid which isn't efficient. I was also considering filtering out the triangles based on distance of centroid and maximum triangle size in the tria mesh as a tolerance. But this again would involve looping over all the triangles. I was also considering K-nearest neighbors.
Fast ways to filter out a list of triangles before performing SAT test against AABB
183 Views Asked by Shriram Krishna At
1
There are 1 best solutions below
Related Questions in C++
- How to immediately apply DISPLAYCONFIG_SCALING display scaling mode with SetDisplayConfig and DISPLAYCONFIG_PATH_TARGET_INFO
- Why can't I use templates members in its specialization?
- How to fix "Access violation executing location" when using GLFW and GLAD
- Dynamic array of structures in C++/ cannot fill a dynamic array of doubles in structure from dynamic array of structures
- How do I apply the interface concept with the base-class in design?
- File refuses to compile std::erase() even if using -std=g++23
- How can I do a successful map when the number of elements to be mapped is not consistent in Thrust C++
- Can std::bit_cast be applied to an empty object?
- Unexpected inter-thread happens-before relationships from relaxed memory ordering
- How i can move element of dynamic vector in argument of function push_back for dynamic vector
- Brick Breaker Ball Bounce
- Thread-safe lock-free min where both operands can change c++
- Watchdog Timer Reset on ESP32 using Webservers
- How to solve compiler error: no matching function for call to 'dmhFS::dmhFS()' in my case?
- Conda CMAKE CXX Compiler error while compiling Pytorch
Related Questions in MESH
- Adhoc / mesh network not working (with and without batman-adv)
- Error: 'Mesh' object has no attribute 'use_auto_smooth' when importing .zmbx (Metabricks) file into Blender
- Grid-like lines in my procedurally generated mesh
- How to save a .msh format to read with Gmsh from vertices, elements (tetra) and type of tissue?
- How to make sure METIS partition surface mesh connected?
- How to calculate the surface area of a 3d mesh
- Distance transform to calculate centerline/skeleton
- The best methods to report object mesh problems?
- How to highlight or draw line on where 2 or more meshes intersect
- Open3d Triangle Mesh fill_holes() method leads to crash
- Hexahedral mesh creation and adjustment for modeling of a 3D printing process
- Godot 4's MultiMesh doesn't display the correct colors
- Creating a density plot out of a large matrix in octave
- How to change mesh element type in Python gmsh?
- Mesh generation using GMSH (Python)
Related Questions in INTERSECTION
- How do I find the line segments formed by the meeting of two sides of two polygons?
- How much exact are the operations in CGAL function "halfspace intersection with constructions"
- Custom equality comparator for set operation in Kotlin
- confuse about union and intersection type on typescript
- NetTopologySuite - how to detect when rectangle intersects circle?
- Find the Largest Area of Square Inside Two Rectangles(Intersection)
- Finding Intersections of Cones on a Sphere
- Intersecting two panda dataframe
- Shapely can't find intersection points that definitely exist
- create intersection points between lists of functions
- Lookahead assertion can work like a type of intersection of regular expressions, but why? (JavaScript)
- Union of intersected rotated boxes
- Ray-Triangle Intersection Issue in java
- How to merge two columns by the intersection of the elements in each col?
- Check intersection and draggable svg path (svgdotjs and kld-intersections)
Related Questions in VOXEL
- How to estimate the memory size of a binary voxelized geometry?
- Prevent Matplotlib voxels from shading facecolors
- How to use Viktor Ferenczi's Godot Voxel addon?
- 3d array data in json file, I want to read the content in C# unity
- How can I declare an enum in wgsl?
- How to calculate Uvs from texture atlas?
- Voxelization Issue with Open3D: Incomplete Filling Along Some Triangle Faces
- faster way to iterate through a chunk of voxels in rust?
- Determining voxelized .json file format
- Trying to insert a sphere defect (.ply) into an object (.obj) using Voxel Method bypassing Airspaces and Vertices using the open3d
- Can I access the mesh output of a mesh shader back to CPU?
- Function to find points along a vector line in a CT image
- No voxels with a sufficient number of points. I cannot solve this by changing parameters in setLeafSize
- Voxel Array creates a voxel that's not part of the scene
- Creating VoxelGrid using Voxels (Open3D)
Related Questions in SEPARATING-AXIS-THEOREM
- Polygon to Sphere using the SAT algorithm
- Separating Axis Theorem: how to handle the rectangles overlapping stuck
- Triangle to AABB collision code not working
- Fast ways to filter out a list of triangles before performing SAT test against AABB
- SAT Polygon Circle Collision - resolve the intersection in the direction of velocity & determine side of collision
- How get a collision point with SAT
- How to find which side was collided with using SAT
- Separating axis theorem falsely triggers
- How to find minimum translation vector of rotated squares?
- Separating Axis Theorem Implementation always returning true. What am I doing wrong?
- Separating Axis Theorem function fails when met with acute angles
- Can I simplify this implementation of the separating axis theorem?
- Separating axis theorem difficulties
- Point of intersection between Oriented Boxes (or OBB)
- Separating Axis Theorem - Python Implementation from Cartesian Points
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular # Hahtags
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
There are a few well known techniques such as:
give an AABB to each triangle. So you do AABB vs AABB intersection first. The goal is discarding quicky the non-intersecting triangles.
Once you have all triangles inside an AABB, you can do massive inter-AABB's collision detection using algorithms such as I-COLLIDE. You can also create an AABB-tree (also known as Bounding-Volume-Hierarchy or BVH) for the mesh in order to discard massive amount of non-intersecting triangles at once.
Once you have reduced the set of triangles which AABB intersect the AABB of the cell, then you need to perform the actual AABB/triangle test for which you can use the separating axis theorem.