View Issue Details

IDProjectCategoryView StatusLast Update
0028129Open CASCADEOCCT:Visualizationpublic2017-10-31 10:51
ReporterdbpAssigned Toapn  
PrioritynormalSeverityfeature 
Status closedResolutionfixed 
Target Version7.2.0Fixed in Version7.2.0 
Summary0028129: Visualization, Path Tracing - Improve interactivity in "steady" rendering mode
DescriptionIn similar issue (28114, Visualization, Ray tracing - Make ray tracing mode interactive in high resolutions) an attempt has been made to improve interactivity during interaction with the scene. However, when the camera is stabilized the performance drops significantly (to its "normal" level).

However, it is possible to prevent this drop also by improving adaptive screen sampling mode. The important feature of this mode is that it is possible to keep the same number of tiles for any screen resolution (e.g. 256 tiles can be used for both 512 x 512 window and 1920 x 1080 window). So, a smaller number of tiles allows to increase interactivity (FPS), but at the cost of higher per-frame variance ('noise'). On the contrary a larger number of tiles decrease interactivity, but leads to lower per-frame variance. Note that the total time needed to produce final final image is the same for both cases. In frames of this issue, it is proposed to keep number of tiles quite low (e.g. 256) independently on the window size. This will allow:

1) Keep interactivy at a high level (FPS) which is especially important for low-performance GPUs.

2) Prevent freezing of application GUI and possible crashes due to driver's limit on maximum frame rendering time (it is related to complex scenes).
Steps To ReproduceNow it is inherent feature of ISS mode (importance screen sampling) activated by a command:

vrenderparams -iss

Also, number of tiles used for adaptive screen sampling can be changed using command:

vrenderparams -nbtiles <64..1024>

This allows to balance GPU loading and interactivity and adapt to wide range of GPUs.
TagsNo tags attached.
Test case numberv3d raytrace sample_ball_iss

Attached Files

  • sample_ball_iss_iss_64.png (267,300 bytes)
  • sample_ball_iss_iss_256.png (266,833 bytes)
  • sample_ball_iss_iss_1024.png (266,793 bytes)

Relationships

related to 0028114 closedapn Open CASCADE Visualization, Ray tracing - Make ray tracing mode interactive in high resolutions 

Activities

git

2016-11-18 17:53

administrator   ~0060560

Branch CR28129 has been created by dbp.

SHA-1: b9bba3ab3ce45be6e0ee82255f8c2cc9d859829c


Detailed log of new commits:

Author: dbp
Date: Fri Nov 18 17:53:10 2016 +0300

    0028129: Visualization, Path Tracing - Improve interactivity in "steady" rendering mode

dbp

2016-11-18 18:00

developer   ~0060561

Dear kgv,

Could you please review the patch in branch CR28129?

git

2016-11-18 18:04

administrator   ~0060562

Branch CR28129 has been updated forcibly by dbp.

SHA-1: c33388e4fd48622b1092d99d25f82d916a96d8af

kgv

2016-11-27 12:29

developer   ~0060789

Please add test case for this functionality.

git

2017-01-17 19:24

administrator   ~0062712

Branch CR28129_1 has been created by dbp.

SHA-1: a75581dc55b3a3822a47a023a4cd47feb84895b6


Detailed log of new commits:

Author: dbp
Date: Fri Nov 18 17:53:10 2016 +0300

    0028129: Visualization, Path Tracing - Improve interactivity in "steady" rendering mode

dbp

2017-01-17 19:27

developer   ~0062713

New test case added:
v3d raytrace sample_ball_iss

See images attached for the reference result.

dbp

2017-01-17 19:27

developer  

sample_ball_iss_iss_64.png (267,300 bytes)

dbp

2017-01-17 19:27

developer  

sample_ball_iss_iss_256.png (266,833 bytes)

dbp

2017-01-17 19:27

developer  

sample_ball_iss_iss_1024.png (266,793 bytes)

kgv

2017-01-17 19:35

developer   ~0062714

+#include <vector>
+
 #include <OpenGl_Texture.hxx>
 #include <OpenGl_HaltonSampler.hxx>
 
-#include <vector>

Why this change is required?
It is a common practice to list OCCT headers first
(as far as this header does not define a mess of macros like "windows.h").

git

2017-01-17 20:47

administrator   ~0062715

Branch CR28129_1 has been updated forcibly by dbp.

SHA-1: 8526b84f448ac86f73357361593e29992537478f

dbp

2017-01-17 20:48

developer   ~0062716

Dear kgv,

Really, it is strange change. It was reverted. Please find updated code in the same branch.

kgv

2017-01-17 20:51

developer   ~0062717

Please test the patch.

git

2017-01-18 10:51

administrator   ~0062732

Branch CR28129_1 has been updated forcibly by dbp.

SHA-1: a75581dc55b3a3822a47a023a4cd47feb84895b6

git

2017-01-18 10:57

administrator   ~0062734

Branch CR28129_1 has been updated forcibly by dbp.

SHA-1: a5166c3cf0b2c95ce6c3e8a7700d36c16b9c1df5

apv

2017-01-19 12:06

tester   ~0062784

Dear BugMaster,

Branch CR28129_1 from occt git-repository (and master from products git-repository) was compiled on Linux, MacOS and Windows platforms and tested.
SHA-1: a5166c3cf0b2c95ce6c3e8a7700d36c16b9c1df5

Number of compiler warnings:
occt component:
   Linux: 0 (0 on master)
   Windows: 0 (0 on master)
   MasOS: 0 (0 on master)
products component:
   Linux: 63
   Windows: 0
   MacOS: 1161

Regressions/Differences:
Not detected

Testing cases:
v3d raytrace sample_ball_iss - FAILED
http://occt-tests/CR28129_1-master-OCCT/Debian70-64/v3d/raytrace/sample_ball_iss.html
http://occt-tests/CR28129_1-master-OCCT/Windows-64-VC10/v3d/raytrace/sample_ball_iss.html

Testing on Linux:
Total MEMORY difference: 93509351 / 92908046 [+0.65%]
Total CPU difference: 21390.860000000303 / 21505.8700000003 [-0.53%]

Testing on Windows:
Total MEMORY difference: 58646104 / 58649007 [-0.00%]
Total CPU difference: 19478.752862998495 / 19749.742200098677 [-1.37%]

There is difference in images found by testdiff:
http://occt-tests/CR28129_1-master-OCCT/Debian70-64/diff-Debian70-64.html
http://occt-tests/CR28129_1-master-OCCT/Windows-64-VC10/diff-Windows-64-VC10-image.html
v3d raytrace bug26617

apv

2017-01-19 12:07

tester   ~0062785

Dear Denis,

Branch CR28129_1 has been rejected due to:
- failed test-case for issue
- differences in images

git

2017-01-19 13:49

administrator   ~0062793

Branch CR28129_2 has been created by dbp.

SHA-1: b05e43bd27b72c8408ab4bca660fc5476077cd89


Detailed log of new commits:

Author: dbp
Date: Fri Nov 18 17:53:10 2016 +0300

    0028129: Visualization, Path Tracing - Improve interactivity in "steady" rendering mode

dbp

2017-01-19 13:49

developer   ~0062794

Dear kgv,

Could you please review fixes in CR28129_2 branch?

git

2017-01-19 14:02

administrator   ~0062797

Branch CR28129_2 has been updated forcibly by dbp.

SHA-1: e944dbf8dccb9a477c9b3d7ce19b27668c9f1f78

kgv

2017-01-19 14:10

developer   ~0062800

Please test updated patch.

apv

2017-01-20 18:28

tester   ~0062864

Dear Denis,

Please, rebase branch CR28129_2 on the current master. Thank you in advance.

git

2017-01-24 10:44

administrator   ~0062925

Branch CR28129_3 has been created by dbp.

SHA-1: 414925b84fb8d77cbb25dc0bf35c1e655cbea1be


Detailed log of new commits:

Author: dbp
Date: Tue Jan 24 10:43:26 2017 +0300

    Re-basing the patch on current master.

Author: dbp
Date: Fri Nov 18 17:53:10 2016 +0300

    0028129: Visualization, Path Tracing - Improve interactivity in "steady" rendering mode

dbp

2017-01-24 10:45

developer   ~0062926

Dear apv,

Please find rebased patch in branch CR28129_3.

apv

2017-01-25 11:57

tester   ~0062994

Dear BugMaster,

Branch CR28129_3 from occt git-repository (and master from products git-repository) was compiled on Linux, MacOS and Windows platforms and tested.
SHA-1: 414925b84fb8d77cbb25dc0bf35c1e655cbea1be

Number of compiler warnings:
occt component:
   Linux: 0 (0 on master)
   Windows: 0 (0 on master)
   MasOS: 0 (0 on master)
products component:
   Linux: 63
   Windows: 0
   MacOS: 1140

Regressions/Differences:
Not detected

Testing cases:
v3d raytrace sample_ball_iss - OK
http://occt-tests/CR28129_3-master-OCCT/Debian70-64/v3d/raytrace/sample_ball_iss.html
http://occt-tests/CR28129_3-master-OCCT/Windows-64-VC10/v3d/raytrace/sample_ball_iss.html

Testing on Linux:
Total MEMORY difference: 93088553 / 92067848 [+1.11%]
Total CPU difference: 21100.680000000197 / 21062.360000000153 [+0.18%]

Testing on Windows:
Total MEMORY difference: 58324712 / 58324216 [+0.00%]
Total CPU difference: 19602.290054898545 / 19152.585972198493 [+2.35%]

git

2017-02-08 11:31

administrator   ~0063545

Branch CR28129 has been deleted by kgv.

SHA-1: c33388e4fd48622b1092d99d25f82d916a96d8af

git

2017-02-08 11:35

administrator   ~0063593

Branch CR28129_1 has been deleted by kgv.

SHA-1: a5166c3cf0b2c95ce6c3e8a7700d36c16b9c1df5

git

2017-02-08 11:35

administrator   ~0063594

Branch CR28129_2 has been deleted by kgv.

SHA-1: e944dbf8dccb9a477c9b3d7ce19b27668c9f1f78

git

2017-02-08 11:35

administrator   ~0063595

Branch CR28129_3 has been deleted by kgv.

SHA-1: 414925b84fb8d77cbb25dc0bf35c1e655cbea1be

Related Changesets

occt: master 4eaaf9d8

2017-01-26 09:56:13

dbp


Committer: apn Details Diff
0028129: Visualization, Path Tracing - Improve interactivity in "steady" rendering mode

Re-basing the patch on current master.
Affected Issues
0028129
mod - src/Graphic3d/Graphic3d_RenderingParams.hxx Diff File
mod - src/OpenGl/OpenGl_TileSampler.cxx Diff File
mod - src/OpenGl/OpenGl_TileSampler.hxx Diff File
mod - src/OpenGl/OpenGl_View.hxx Diff File
mod - src/OpenGl/OpenGl_View_Raytrace.cxx Diff File
mod - src/Shaders/Display.fs Diff File
mod - src/Shaders/PathtraceBase.fs Diff File
mod - src/Shaders/RaytraceRender.fs Diff File
mod - src/Shaders/Shaders_Display_fs.pxx Diff File
mod - src/Shaders/Shaders_PathtraceBase_fs.pxx Diff File
mod - src/Shaders/Shaders_RaytraceRender_fs.pxx Diff File
mod - src/ViewerTest/ViewerTest_ViewerCommands.cxx Diff File
add - tests/v3d/raytrace/sample_ball_iss Diff File

Issue History

Date Modified Username Field Change
2016-11-18 17:51 dbp New Issue
2016-11-18 17:51 dbp Assigned To => dbp
2016-11-18 17:52 kgv Relationship added related to 0028114
2016-11-18 17:53 git Note Added: 0060560
2016-11-18 18:00 dbp Note Added: 0060561
2016-11-18 18:00 dbp Assigned To dbp => kgv
2016-11-18 18:00 dbp Status new => resolved
2016-11-18 18:00 dbp Steps to Reproduce Updated
2016-11-18 18:04 git Note Added: 0060562
2016-11-27 12:29 kgv Note Added: 0060789
2016-11-27 12:29 kgv Assigned To kgv => dbp
2016-11-27 12:29 kgv Severity minor => feature
2016-11-27 12:29 kgv Status resolved => assigned
2017-01-17 19:24 git Note Added: 0062712
2017-01-17 19:26 dbp Assigned To dbp => kgv
2017-01-17 19:26 dbp Status assigned => resolved
2017-01-17 19:26 dbp Steps to Reproduce Updated
2017-01-17 19:27 dbp Note Added: 0062713
2017-01-17 19:27 dbp File Added: sample_ball_iss_iss_64.png
2017-01-17 19:27 dbp File Added: sample_ball_iss_iss_256.png
2017-01-17 19:27 dbp File Added: sample_ball_iss_iss_1024.png
2017-01-17 19:35 kgv Note Added: 0062714
2017-01-17 20:47 git Note Added: 0062715
2017-01-17 20:48 dbp Note Added: 0062716
2017-01-17 20:51 kgv Note Added: 0062717
2017-01-17 20:51 kgv Assigned To kgv => bugmaster
2017-01-17 20:51 kgv Status resolved => reviewed
2017-01-18 10:51 git Note Added: 0062732
2017-01-18 10:57 git Note Added: 0062734
2017-01-18 17:09 apv Test case number => v3d raytrace sample_ball_iss
2017-01-18 17:11 apv Assigned To bugmaster => apv
2017-01-19 12:06 apv Note Added: 0062784
2017-01-19 12:06 apv Assigned To apv => dbp
2017-01-19 12:06 apv Status reviewed => assigned
2017-01-19 12:07 apv Note Added: 0062785
2017-01-19 13:49 git Note Added: 0062793
2017-01-19 13:49 dbp Note Added: 0062794
2017-01-19 13:49 dbp Assigned To dbp => kgv
2017-01-19 13:49 dbp Status assigned => resolved
2017-01-19 14:02 git Note Added: 0062797
2017-01-19 14:10 kgv Note Added: 0062800
2017-01-19 14:10 kgv Assigned To kgv => bugmaster
2017-01-19 14:10 kgv Status resolved => reviewed
2017-01-20 18:28 apv Note Added: 0062864
2017-01-20 18:28 apv Assigned To bugmaster => dbp
2017-01-20 18:28 apv Status reviewed => feedback
2017-01-24 10:44 git Note Added: 0062925
2017-01-24 10:45 dbp Note Added: 0062926
2017-01-24 10:45 dbp Assigned To dbp => apv
2017-01-24 10:45 dbp Status feedback => resolved
2017-01-24 23:04 kgv Status resolved => reviewed
2017-01-25 11:57 apv Note Added: 0062994
2017-01-25 11:57 apv Assigned To apv => bugmaster
2017-01-25 11:57 apv Status reviewed => tested
2017-01-27 16:15 apn Changeset attached => occt master 4eaaf9d8
2017-01-27 16:15 apn Assigned To bugmaster => apn
2017-01-27 16:15 apn Status tested => verified
2017-01-27 16:15 apn Resolution open => fixed
2017-02-08 11:31 git Note Added: 0063545
2017-02-08 11:35 git Note Added: 0063593
2017-02-08 11:35 git Note Added: 0063594
2017-02-08 11:35 git Note Added: 0063595
2017-09-29 16:21 aiv Fixed in Version => 7.2.0
2017-09-29 16:31 aiv Status verified => closed