Turn on suggestions

Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.

Showing results for

- Intel Community
- Software
- Visual Computing (Graphics and Gaming)
- Intel® Embree Ray Tracing Kernels
- Double precision intersection

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Mute
- Printer Friendly Page

Chouh__Hamza1

Beginner

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

12-03-2018
01:51 AM

130 Views

Double precision intersection

Hi all,

In a case I'm working on, I am dealing with high values for tfar compared to the dimensions of my triangles. This results in precision problems, specifically around edges.

Thus, I am thinking about using double precision for ray/triangle intersection. What do you think would be the best approach? For now, I'm considering implementing a user geometry and implementing the Pluecker algorithm with double precision vertex coordinates.

Hamza

Link Copied

2 Replies

SvenW_Intel

Moderator

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

12-04-2018
03:05 AM

130 Views

Using a user geometry to do the job should work. You would then still have vertices as float as well as u,v,t?

Could you describe the problem you face in some more detail? As you mention issues around edges, I assume you see rays tunneling through the mesh at an edge?

Chouh__Hamza1

Beginner

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

12-04-2018
05:36 AM

130 Views

Currently, my mesh is described using double precision out of Embree. I think that doing the intersection test using double precision should be enough to avoid the problems I'm describing.

These are, for example, two hits near an edge between two triangles with the following characteristics :

Hit 0 :

tfar = 1000;

u = 0.5

v = 5e-4

primID = 0

Hit 1 :

tfar = 1000

u = -5e-4

v = 0.5

primID = 1

Both these hits verify the condition from triangle_intersector_pluecker.h :

(minUVW >= -eps) | (maxUVW <= eps)

I could choose to eliminate one of the two intersections (which, in this case, are equivalent) when tfar0 ~ tfar1.

However, this would result in missed intersections when two triangles from the same geometries overlap (and in this case, I need to have both the intersections).

Thus, the whole problem consists in deciding whether a ray hit an edge of hits two overlapping triangles, which is problematic when hit distances become high enough to reach the precision limits of the float 32 type.

Topic Options

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page

For more complete information about compiler optimizations, see our Optimization Notice.