1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-04-10 18:51:21 +03:00

20 Commits

Author SHA1 Message Date
duv
be86ba90c4 0025221: Visualization - Depth test errors in ray-tracing scene containing face outlines
Calculation of polygon offset for ray tracing has been changed.
Issues with wrong data in FBO depth buffer has been resolved.
2016-10-27 17:29:00 +03:00
dbp
3a9b5dc86a 0027607: Visualization - Implement adaptive screen space sampling in path tracing
This commit provides useful functionality for path tracing rendering core.

1) Graphic3d_RenderingParams class was extended with additional AdaptiveScreenSampling option (disabled by default).
   If this option is enabled, path tracing tries to adjust the number of samples for different screen areas.

   In this way, the more complex areas (from the point of light conditions) are sampled more intensively,
   while the simple areas are sampled very rarely.
   For example, caustics and glossy reflections are typical candidates for more precise sampling.

   In general, this allows to equalize image convergence and not to waste resources for already converged areas.
   It is also possible to visualize sampling densities by enabling ShowSamplingTiles option
   (activating and deactivating this option does not affect on the accumulated image).

2) Mixing OpenGL and ray-tracing output has been changed.
   Now blending is performed using OpenGL functionality, while ray-tracing shaders only output correct Z-value.

Test case bugs vis bug27083 has been updated,
since the alpha value is now correctly set by Ray-Tracing to 1, opaque.
2016-09-30 11:17:10 +03:00
dbp
f2474958ef 0027590: Visualization, Ray Tracing - port to quad BVH trees (QBVH)
In frames of this issue binary BVH tree produced by building algorithms was collapsed into 4-ary BVH (QBVH).
The BVH traversal code in GLSL was modified to process such trees correctly.
This allows to implore thread coherence, decrease BVH memory consumption (~2 times), and use traversal stack of the half size.
As a result, ray tracing scalability is improved, as well as rendering performance. For various setups, speedup is 12-18%.
2016-06-23 18:15:13 +03:00
duv
1d8656890c 0026571: Visualization, TKOpenGl - write depth values within RayTracing program
View-projection matrix was added to raytrace shaders (as uniform) in order to compute correct depth values for OpenGL.
For path tracing the additional depth buffer sampler was added to Display.fs program. It allows propagation of depth values from internal FBO to resulting FBO.
The old approach of mixing of OpenGL and ray-tracing graphics was kept in order to keep correct blending of transparent ray-traced objects with non-transparent OpenGL objects.
2016-03-04 07:31:07 +03:00
dbp
47e9c17868 0026536: Visualization - Ray-tracing engine: improving BVH traverse and fixing texture support
Replace 64-bit handles of bindless textures by uvec2 type in GLSL code for compatibility with AMD drivers.
OpenGl_View::initProgram() - fix NULL-dereference.
2015-09-03 14:49:24 +03:00
dbp
e99a2eef31 0026421: Visualization - Incorrect text rendering in raytracing mode 2015-08-20 16:35:13 +03:00
dbp
8c820969cc 0026437: Visualization - Improve path tracing rendering engine
Fix compile warnings.
2015-07-30 12:50:41 +03:00
dbp
189f85a3fd 0025201: Visualization - Implementing soft shadows and ambient occlusion in OCCT ray-tracing core 2015-06-10 10:56:24 +03:00
dbp
cf537aacf7 0026070: Ray tracing with reflections is poor on rotated presentation
Test case for issue CR26070
2015-04-16 11:05:37 +03:00
dbp
1804bb99a6 0025833: Visualization, ray tracing - Problems with the backside of triangles
Backside triangles are handled correctly by implementing two-sided lighting model. Ray-tracing shader was optimized (up to 25% performance increase).

Test case for CR25833
2015-04-02 14:38:42 +03:00
dbp
e2da917a1c 0025703: Visualization - Decrease number of samplers used in ray-tracing mode
This patch eliminates 3 samplers used in ray-tracing mode:

//! Texture buffer of data records of bottom-level BVH nodes.
Handle(OpenGl_TextureBufferArb) myObjectNodeInfoTexture;
//! Texture buffer of minimum points of bottom-level BVH nodes.
Handle(OpenGl_TextureBufferArb) myObjectMinPointTexture;
//! Texture buffer of maximum points of bottom-level BVH nodes.
Handle(OpenGl_TextureBufferArb) myObjectMaxPointTexture;

Serialized data contained in corresponding texture buffers were added to global scene buffers:

//! Texture buffer of data records of high-level BVH nodes.
Handle(OpenGl_TextureBufferArb) mySceneNodeInfoTexture;
 //! Texture buffer of minimum points of high-level BVH nodes.
Handle(OpenGl_TextureBufferArb) mySceneMinPointTexture;
//! Texture buffer of maximum points of high-level BVH nodes.
Handle(OpenGl_TextureBufferArb) mySceneMaxPointTexture;

This modifications leads also to small performance improvement (~2%) due to higher texture cache efficiency. Some modifications in traversal function (GLSL code) also improve performance (~3%).
2015-01-22 16:47:52 +03:00
dbp
312a4043c2 0025351: Visualization - provide pseudo random number generator in OCCT ray-tracing core 2014-12-25 18:24:26 +03:00
dbp
50d0e1cefd 0025414: Visualization - Optimize ray-tracing performance
This patch increases ray-tracing performance up to 12% in regular mode, and up to 36% in FSAA mode.
2014-10-30 11:44:37 +03:00
dbp
25ef750e44 025306: Visualization, TKOpenGl - support texturing within RayTracing
Fix bug with overlay OpenGL text.
2014-10-23 16:20:36 +04:00
duv
0e330c8cf5 0024872: Support of emission color in Phong shader and ray-tracing
Test cases for issue CR24872
2014-07-24 12:59:19 +04:00
osa
a89742cf17 0024819: TKOpenGl - extend the ray-tracing core by visualization of lines, text and point sprites
OpenGl_GraphicDriver::Redraw() - do not recompute structures more than required
OpenGl_Workspace::Raytrace() - bind proper FBO before clearing it
Visual3d_View::Redraw() - perform automatic 2nd redraw on device lost
2014-07-03 15:50:27 +04:00
dbp
bc8c79bbd5 0024887: Visualization - revise and extend Raytracing controls
Fix material test case.
Fix ray-tracing test case and sample.
2014-05-22 19:00:18 +04:00
duv
dc9ef964d2 0024864: Implementing refractions in ray-tracing
Refraction index passed to raytrace shader.
For transparent objects implemented ray refraction according to refraction index.
Transparent materials modified to look better with refractions.
2014-05-22 18:19:18 +04:00
duv
84c71f29e4 0024520: Implementing affine transformations in ray-tracing 2014-04-10 19:21:21 +04:00
dbp
fc73a20256 0024739: TKOpenGl - port ray-tracing from OpenCL to GLSL for better integration and portability
RayTracing - disable reflections by default
Fix possible compilation issue on Mac OS X.
2014-04-04 14:15:08 +04:00