0024130: Implementing ray tracing visualization core
authordbp <dbp@opencascade.com>
Thu, 31 Oct 2013 11:35:18 +0000 (15:35 +0400)
committerbugmaster <bugmaster@opencascade.com>
Thu, 31 Oct 2013 14:02:12 +0000 (18:02 +0400)
commite276548b0927bc9f164a1d9c9e8705991cdac5d4
tree74e5014e553d9bfe98d7b90ed9cdc42c006d0999
parent008aef40eb40feb8736faf09364fdae4b296d9b4
0024130: Implementing ray tracing visualization core

The purpose of this functionality is to bring a basic ray-tracing solution to existing OCCT visualization toolkit (TKOpenGL).
Currently ray-tracing visualization core supports sharp shadows, specular reflections, transparency and adaptive anti-aliasing.
However, the basis for all ray-tracing algorithms is versatile, allowing you to add new ray-tracing features easily (such as ambient occlusion).
All ray-tracing computations are performed on the GPU using OpenCL framework, allowing real-time rendering performance.

It is important to note, that real-time ray-tracing is possible using high-performance GPUs with support of OpenCL 1.1 and higher (such as NVIDIA GeForce 660 or ATI/AMD Radeon 7850).
When using low-end GPUs (such as NVIDIA GeForce 640) the ray-tracing performance may slow down significantly.
Therefore, even with NVIDIA GeForce 640 you can render scenes with the millions of triangles. The support of OpenCL-enabled CPUs and integrated graphics cards is not guaranteed.
52 files changed:
.gitattributes
adm/UDLIST
samples/qt/Common/res/antialiasing.png [new file with mode: 0644]
samples/qt/Common/res/reflections.png [new file with mode: 0644]
samples/qt/Common/res/shadows.png [new file with mode: 0644]
samples/qt/Common/src/ApplicationCommon.cxx
samples/qt/Common/src/ApplicationCommon.h
samples/qt/Common/src/Common-icon.ts
samples/qt/Common/src/Common-string.ts
samples/qt/Common/src/DocumentCommon.cxx
samples/qt/Common/src/DocumentCommon.h
samples/qt/Common/src/MDIWindow.cxx
samples/qt/Common/src/MDIWindow.h
samples/qt/Common/src/View.cxx
samples/qt/Common/src/View.h
samples/qt/IESample/IESample-vc10.sln
src/Graphic3d/Graphic3d_CView.hxx
src/OpenGl/EXTERNLIB
src/OpenGl/FILES
src/OpenGl/OpenGl_AABB.cxx [new file with mode: 0644]
src/OpenGl/OpenGl_AABB.hxx [new file with mode: 0644]
src/OpenGl/OpenGl_Caps.cxx
src/OpenGl/OpenGl_Caps.hxx
src/OpenGl/OpenGl_Cl.hxx [new file with mode: 0644]
src/OpenGl/OpenGl_Display_2.cxx
src/OpenGl/OpenGl_GraphicDriver.cxx
src/OpenGl/OpenGl_GraphicDriver.hxx
src/OpenGl/OpenGl_GraphicDriver_7.cxx
src/OpenGl/OpenGl_Group.cxx
src/OpenGl/OpenGl_Group.hxx
src/OpenGl/OpenGl_LayerList.cxx
src/OpenGl/OpenGl_LayerList.hxx
src/OpenGl/OpenGl_PrimitiveArray.cxx
src/OpenGl/OpenGl_PriorityList.hxx
src/OpenGl/OpenGl_RaytraceSource.cxx [new file with mode: 0644]
src/OpenGl/OpenGl_RaytraceTypes.hxx [new file with mode: 0644]
src/OpenGl/OpenGl_SceneGeometry.cxx [new file with mode: 0644]
src/OpenGl/OpenGl_SceneGeometry.hxx [new file with mode: 0644]
src/OpenGl/OpenGl_Structure.cxx
src/OpenGl/OpenGl_Structure.hxx
src/OpenGl/OpenGl_View.cxx
src/OpenGl/OpenGl_View.hxx
src/OpenGl/OpenGl_View_2.cxx
src/OpenGl/OpenGl_Workspace.cxx
src/OpenGl/OpenGl_Workspace.hxx
src/OpenGl/OpenGl_Workspace_Raytrace.cxx [new file with mode: 0644]
src/TKOpenGl/EXTERNLIB
src/V3d/V3d_View.cdl
src/V3d/V3d_View_5.cxx
src/ViewerTest/ViewerTest_ViewerCommands.cxx
tests/bugs/parse.rules
tests/bugs/vis/bug24130 [new file with mode: 0644]