DiscussionsIssue archiveOCCT:Visualization

Archived issue #0032722

Visualization, TKOpenGl - performance counters disappear at some camera viewpoints

Open CASCADEOCCT:Visualizationclosed11 public notes

Search issues

Description

Performance counters are lost at some camera viewpoints as can be reproduced by script below.

Steps to reproduce

pload XDE MODELING VISUALIZATION
vinit View1
vcamera -persp
vviewparams -scale 2 -proj -0 -1 -0 -up 0 0 1 -at 96 88 -68

# display red boxes
set aBoxTransp 0.5
box b1   0   0 0 50 50 50
box b2 150   0 0 50 50 50
box b3   0 150 0 50 50 50
vdisplay b1 b2 b3 -dispMode 1 -noupdate
vaspects b1 b2 b3 -color RED -transparency $aBoxTransp

vrenderparams -perfCounters fps
vviewparams -scale 2.14747 -proj 0.160074 0.265291 -0.950788 -up -0.0189965 0.963858 0.265739 -at 63.0574 214.479 199.417

Public activity

11 archived notes

Participants are labeled by their role within this record.

01Commenter 1
Branch [archived branch] has been created by Participant.

[revision removed]


Detailed log of new commits:

Author: achesnok
Date: Sat Jan 8 17:07:10 2022 +0300

    0032722: Visualization, TKOpenGl - performance counters disappear at some camera viewpoints
    
    Fixed OpenGl_View::MinMaxValues() to take into account focal plane at which performance overlay is displayed.
02Commenter 2
The text was clipped away by zfar/znear plane due to camera's bounding box zfitting
03Commenter 1
Branch [archived branch] has been updated forcibly by Participant.

[revision removed]
04Commenter 4
05Author
@@ -786,6 +786,11 @@ Bnd_Box OpenGl_View::MinMaxValues (const Standard_Boolean theToIncludeAuxiliary)
   }
 
   Bnd_Box aBox = base_type::MinMaxValues (theToIncludeAuxiliary);
+  // make sure that the focal point at which the stats overlay is displayed falls in boundary box
+  if (myRenderParams.ToShowStats && theToIncludeAuxiliary)
+  {
+    aBox.Add (myCamera->Center());

This is technically might be incorrect as text is not necessarily will be drawn at Camera center.
`Graphic3d_RenderingParams::StatsPosition` / `::ChartPosition` should be involved into computations in similar manner as `Graphic3d_CView::MinMaxValues()` handles 2D persistence presentations.

In addition, when `OpenGl_Context::arbDepthClamp` is available, `GL_DEPTH_CLAMP` could be temporarily enabled within `OpenGl_FrameStatsPrs::Render()` as a better alternative to expanding Z range.
06Commenter 1
Branch [archived branch] has been updated forcibly by Participant.

[revision removed]
07Commenter 7
Fixed remarks
08Commenter 1
Branch [archived branch] has been updated forcibly by Participant.

[revision removed]
09Commenter 1
Branch [archived branch] has been updated forcibly by Author.

[revision removed]
10Commenter 10
Combination -
OCCT branch : [archived branch]
master SHA - [revision removed]
[revision removed]
Products branch : [archived branch] SHA - [revision removed]
was compiled on Linux, MacOS and Windows platforms and tested in optimize mode.

Number of compiler warnings:
No new/fixed warnings

Regressions/Differences/Improvements:
No regressions/differences

CPU differences:
Debian80-64:
OCCT
Total CPU difference: 18239.750000000447 / 18223.400000000463 [+0.09%]
Products
Total CPU difference: 11656.240000000102 / 11659.240000000125 [-0.03%]
Windows-64-VC14:
OCCT
Total CPU difference: 19987.609375 / 20012.3125 [-0.12%]
Products
Total CPU difference: 13139.84375 / 13120.265625 [+0.15%]


Image differences :
No differences that require special attention

Memory differences :
No differences that require special attention
11Commenter 1
Branch [archived branch] has been deleted by Participant.

[revision removed]

Related records