DiscussionsIssue archiveOCCT:Visualization

Archived issue #0024503

TKOpenGl - Porting ray-tracing component on BVH package

Open CASCADEOCCT:Visualizationclosed9 public notes

Search issues

Description

This patch makes changes to geometry preparation for the OCCT ray-tracing engine. Inner acceleration structure has been replaced by the two-level BVH from OCCT BVH package. Two-level hierachy allows for efficient dynamic updates and instancing. Individual bottom-level BVHs are built for each ray-tracing object (OpenGL primitive array), and then a high-level BVH is built over these set of objects. This reduces the overall tree quality, but allows for fast updates in case of adding or removing objects (the already built BVHs can be reused). This patch also introduces parallel construction of independent bottom-level BVHs.

Public activity

9 archived notes

Participants are labeled by their role within this record.

01Commenter 1
Dear kgv,

could you please review the patch in CR24503_1 branch?

Final modifications can be made in OpenCL code, so it is not necessary to review this file (OpenGl_RaytraceSource.cxx).

02Commenter 2
Dear kgv,

the patch is ready in branch CR24503. Please, review.
03Commenter 3
Branch CR24503 is messed up with another patch.
04Commenter 4
Dear kgv,

the new version of the patch can be found in CR24503_3 branch. Please, review.
05Commenter 3
Dear Commenter 1,

patch is ready for testing.
Please make sure that OpenCL part is tested for regressions on hardware.
06Commenter 6
Dear bugmuster,

please update test case bug24130 (tests/v3d/raytrace). The new version checks correctness of shadows (attached to this issue).

Reference images are also attached (Attachment 2 (7Z)).
07Commenter 3
Dear dbp,

please revert branch CR24503_3 to initial state or request additional review.
08Commenter 8
Dear kgv,

branch CR24503_3 was reverted to previous state.
09Commenter 2
Dear Commenter 1,

Branch CR24503_3 (and products from GIT master) was compiled on Linux and Windows platforms and tested.
[revision removed]

Number of compiler warnings:

occt component :
Linux: 48 (48 on master)
Windows: 1 (1 on master)

products component :
Linux: 12 (12 on master)
Windows: 2 (2 on master)

Regressions/Differences:
No regressions

Testing cases:
v3d raytrace bug24130 - OK
http://occt-tests/CR24503-3-master-occt/Debian60-64/v3d/raytrace/bug24130.html
http://occt-tests/CR24503-3-master-occt/Windows-32-VC9/v3d/raytrace/bug24130.html

Testing on Linux:
Total MEMORY difference: 373047360 / 373415136
Total CPU difference: 54316.76999999995 / 44037.36000000017

Testing on Windows:
Total MEMORY difference: 417913524 / 417413028
Total CPU difference: 28563.4375 / 32472.046875

There are not differences in images found by testdiff.

Related records