I am familiar with BSP, KD-tree and BVH for the general ray-primitive intersection finding problem. Are there any more efficient algorithms and data structures for finding intersections between only one sphere and many line segments? Please note that the sphere is query object.
Related Questions in ALGORITHM
- MCNP 6 - Doubts about cells
- Given partially sorted array of type x<y => first apperance of x comes before first of y, sort in average O(n)
- What is the algorithm behind math.gcd and why it is faster Euclidean algorithm?
- Purpose of last 2 while loops in the merge algorithm of merge sort sorting technique
- Dots and Boxes with apha-beta pruning
- What is the average and worst-case time complexity of my string searching algorithm?
- Building a School Schedule Generator
- TC problem 5-2:how to calculate the probability of the indicator random variable?
- LCA of a binary tree implemented in Python
- Identify the checksum algorithm
- Algorithm for finding a subset of nodes in a weighted connected graph such that the distance between any pair nodes are under a postive number?
- Creating an efficent and time-saving algorithm to find difference between greater than and lesser than combination
- Algorithm to find neighbours of point by distance with no repeats
- Asking code suggestions about data structure and algorithm
- Heap sort with multithreading
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 RAYTRACING
- How to convert raw RGB luminance using OCIO
- CPU Ray Tracer finds intersection for only a certain setup
- How can I send large arrays of objects to a fragment shader using WebGL2?
- VK_ERROR_DEVICE_LOST on create acceleration structure and possible ways to debug it
- get ray direction for voxel raymarcher
- Need help reducing image quality with samples per pixel in ray tracer
- Implementing the Phong reflection model in a compute shader - unexpected response to change of spectral and diffuse coefficients
- Implementing BVH for Ray Tracing Renderer in Python with Pygame
- How can I use (resource) barriers to sync access to a `RWTexture2D` between different shaders?
- Simultaneous access to the same pixel in a ray generation shader - is it safe?
- Path tracer fireflies
- CreateStateObject returns E_INVALIDARG - How to figure out what precisely the cause is?
- BVH structure not working in shaders but work in cpp code
- Efficient way of traversing an Octree and doing ray hit intersection in a shader
- Render only the front faces of 3D objects in a raytracer
Related Questions in SPACE-PARTITIONING
- Geometry of binary space partitioning tree
- Does a BSP tree need to be rebuilt every time the camera's position changes?
- Is there a k-d tree analog that uses hyperspheres to partition?
- KD Trees with Obstacles in space
- What is a coarse and fine grid search?
- BSP dungeon generation is not generating corridors
- Pygame make one circle move in line with another
- one sphere and many line segments intersection
- How to determine whether a polygon is above, below or inside of another polygon?
- How to eliminate colliding markers in Google Maps
- How to separate/partition polygons into existing regions?
- C++ Data Structure for k Nearest Neighbour Search in D dimension using only point cloud as query points
- QuadTree for spatial partitioning (Java)
- Octree implementation for triangular mesh and particles
- Best data structure to store coordinates for efficient look-up?
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?
Popular Tags
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)
One solution would be:
Suppose that
Rand its center is at pointC,P0andP1,D0is the distance betweenCandP0, andD1is the distance betweenCandP1.Then:
If
D0 < RandD1 < R, the line segment is contained entirely inside the sphere and does not intersect the surface.If
D0 < RxorD1 < R, the line segment intersects the sphere's surface.Otherwise, the points are outside the sphere, but the line might intersect the surface, so run a regular ray-sphere intersection test.
A further optimization would be to compare squared distances with the squared radius, to avoid taking the roots.