DiscussionsIssue archiveOCCT:Visualization

Archived issue #0027596

Visualization, StdPrs_WFShape - pack isolines into single group of primitives

Open CASCADEOCCT:Visualizationclosed12 public notes

Search issues

Description

Current implementation of StdPrs_WFShape::Add() adds isolines into dedicated group of primitives for each face. This significantly limits FPS by CPU due to large number of groups for big models.

Steps to reproduce

N/A

Public activity

12 archived notes

Participants are labeled by their role within this record.

01Commenter 2
Branch [archived branch] has been created by Author.

[revision removed]


Detailed log of new commits:

Author: Author
Date: Mon Jun 13 02:28:27 2016 +0300

    0027596: Visualization, StdPrs_WFShape - pack isolines into single group of primitives
    
    StdPrs_ShadedShape, computeFaceBoundaries() now does not create additional temporary buffer for edges.
    StdPrs_Isolines::AddOnTriangulation() now reconstacts polylines from segments projected onto triangulation.
    
    StdPrs_WFShape::Add() now packs isolines into single group in presentation (instead of per-face group).
    Even more - StdPrs_WFShape now groups lines with the same aspects.
    
    Prs3d_Drawer::UIsoAspect(), ::VIsoAspect(), ::VIsoAspect() - default width
    has been changed from 0.5 to 1.0.
02Author
Patch is ready for review.

It improves FPS for wireframe presentation of bleriot model
(114912 faces in 4415 parts - thus it is quite heavy for CPU) on my PC from 1 FPS to 18.

A couple of public methods has been kept for API compatibility.
However it is unlikely that them have been used outside - probably better dropping them.

Prs3d_Drawer::LineArrowDraw() is now ignored by StdPrs_WFShape (before the patch it was semi-broken). I'm not sure if it is useful supporting it here.

03Commenter 3
Branch CR27596 reviewed without remarks, ready for testing.
04Commenter 2
Branch [archived branch] has been updated by Author.

[revision removed]


Detailed log of new commits:

Author: Author
Date: Tue Jun 14 14:01:37 2016 +0300

    fix compilation error on Android

05Commenter 2
Branch [archived branch] has been created by Author.

[revision removed]


Detailed log of new commits:

Author: Author
Date: Tue Jun 14 14:02:27 2016 +0300

    0027596: Visualization, StdPrs_WFShape - pack isolines into single group of primitives
    
    StdPrs_ShadedShape, computeFaceBoundaries() now does not create additional temporary buffer for edges.
    StdPrs_Isolines::AddOnTriangulation() now reconstacts polylines from segments projected onto triangulation.
    
    StdPrs_WFShape::Add() now packs isolines into single group in presentation (instead of per-face group).
    Even more - StdPrs_WFShape now groups lines with the same aspects.
    
    Prs3d_Drawer::UIsoAspect(), ::VIsoAspect(), ::VIsoAspect() - default width
    has been changed from 0.5 to 1.0.
06Author
Patch has been updated to fix compilation error on Android - please use branch CR27596_1 for testing.
07Commenter 7
Dear Commenter 1,
Branch CR27596_1 from occt git-repository (and master from products git-repository) was compiled on Linux, MacOS and Windows platforms and tested on Release mode.
[revision removed]

Number of compiler warnings:

occt component :
Linux: 0 (0 on master)
Windows: 0 (0 on master)
MacOS : 0 (0 on master)

products component :
Linux: 72 (72 on master)
Windows: 0 (4 on master)
MacOS : 1171

Regressions/Differences/Improvements:
No regressions/differences

Testing cases:
Not needed

Testing on Linux:
occt component :
Total MEMORY difference: 88334499 / 88280555 [+0.06%]
Total CPU difference: 19466.180000000008 / 19437.609999999968 [+0.15%]
products component :
Total MEMORY difference: 27438026 / 27641722 [-0.74%]
Total CPU difference: 5184.729999999985 / 5152.139999999989 [+0.63%]

Testing on Windows:
occt component :
Total MEMORY difference: 55761302 / 55981508 [-0.39%]
Total CPU difference: 18254.59741589893 / 19056.083753598912 [-4.21%]
products component :
Total MEMORY difference: 18637762 / 18707971 [-0.38%]
Total CPU difference: 4994.372014999952 / 5089.283023399957 [-1.86%]

There are following differences in images found by testdiff.
http://occt-tests/CR27596-1-master-Products/Debian70-64/diff-Debian70-64.html
http://occt-tests/CR27596-1-master-Products/Windows-64-VC10/diff-Windows-64-VC10.html
IMAGE sat read C4: C4.png differs
IMAGE sat read_parallel_1 E6: E6.png differs
08Commenter 8
Dear kgv,
Branch [archived branch] has been rejected due to:
- differences in images
09Author
Changes in images are OK, please switch to tested.
10Commenter 10
Dear Commenter 1,
Branch CR27596_1 is TESTED.
11Commenter 2
Branch [archived branch] has been deleted by Participant.

[revision removed]
12Commenter 2
Branch [archived branch] has been deleted by Participant.

[revision removed]

Related records