MantisBT
Mantis Bug Tracker Workflow

View Issue Details Jump to Notes ] Related Changesets ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0027596Open CASCADE[OCCT] OCCT:Visualizationpublic2016-06-13 01:072016-12-09 16:39
Reporterkgv 
Assigned Tobugmaster 
PrioritynormalSeverityminor 
StatusclosedResolutionfixed 
PlatformOSOS Version
Product Version[OCCT] 7.0.0 
Target Version[OCCT] 7.1.0Fixed in Version[OCCT] 7.1.0 
Summary0027596: Visualization, StdPrs_WFShape - pack isolines into single group of primitives
DescriptionCurrent 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 ReproduceN/A
TagsNo tags attached.
Test case numberNot needed
Attached Filespng file icon bleriot_iso_surf_new.png (181,781 bytes) 2016-06-14 14:37
png file icon bleriot_iso_surf_old.png (199,716 bytes) 2016-06-14 14:38

- Relationships
related to 0023519closedbugmaster Community Mixing wireframe and shaded visualization impacts performance 
related to 0025300closedski Open CASCADE Visualization - Build wireframe representation consistent with the shape's triangulation 
related to 0026612closedbugmaster Community High memory footprint displaying model with big amount of solids 
related to 0022618assignedsan Open CASCADE Tool for building generic wireframe representation of a face 

-  Notes
(0054930)
git (administrator)
2016-06-13 02:32

Branch CR27596 has been created by kgv.

SHA-1: 917abf941b76bd60c390ae9813be3774f502e848


Detailed log of new commits:

Author: kgv
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.
(0054931)
kgv (developer)
2016-06-13 02:42
edited on: 2016-06-13 02:42

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.

(0054933)
san (developer)
2016-06-14 00:14

Branch CR27596 reviewed without remarks, ready for testing.
(0054952)
git (administrator)
2016-06-14 14:01

Branch CR27596 has been updated by kgv.

SHA-1: a690127e8573575ef4c6ef602d1e07188fac81c5


Detailed log of new commits:

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

    fix compilation error on Android

(0054953)
git (administrator)
2016-06-14 14:02

Branch CR27596_1 has been created by kgv.

SHA-1: 011a78c3e2f79f6a12b0b5ddba64d3aea209bd15


Detailed log of new commits:

Author: kgv
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.
(0054954)
kgv (developer)
2016-06-14 14:03

Patch has been updated to fix compilation error on Android - please use branch CR27596_1 for testing.
(0055023)
mkv (tester)
2016-06-15 14:36

Dear BugMaster,
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.
SHA-1: 011a78c3e2f79f6a12b0b5ddba64d3aea209bd15

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
(0055024)
mkv (tester)
2016-06-15 14:37

Dear kgv,
Branch CR27596_1 has been rejected due to:
- differences in images
(0055025)
kgv (developer)
2016-06-15 14:58

Changes in images are OK, please switch to tested.
(0055030)
mkv (tester)
2016-06-15 15:26

Dear BugMaster,
Branch CR27596_1 is TESTED.
(0055138)
git (administrator)
2016-06-17 12:13

Branch CR27596_1 has been deleted by inv.

SHA-1: 011a78c3e2f79f6a12b0b5ddba64d3aea209bd15
(0055139)
git (administrator)
2016-06-17 12:13

Branch CR27596 has been deleted by inv.

SHA-1: a690127e8573575ef4c6ef602d1e07188fac81c5

- Related Changesets
occt: master 1b9f5d95
Timestamp: 2016-06-14 11:02:27
Author: kgv
Committer: bugmaster
Details ] Diff ]
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.
mod - src/Aspect/Aspect_AspectLine.hxx Diff ] File ]
mod - src/Graphic3d/Graphic3d_AspectLine3d.hxx Diff ] File ]
mod - src/Prs3d/Prs3d.cxx Diff ] File ]
mod - src/Prs3d/Prs3d.hxx Diff ] File ]
mod - src/Prs3d/Prs3d_Drawer.cxx Diff ] File ]
mod - src/StdPrs/StdPrs_DeflectionCurve.cxx Diff ] File ]
mod - src/StdPrs/StdPrs_Isolines.cxx Diff ] File ]
mod - src/StdPrs/StdPrs_Isolines.hxx Diff ] File ]
mod - src/StdPrs/StdPrs_ShadedShape.cxx Diff ] File ]
mod - src/StdPrs/StdPrs_WFShape.cxx Diff ] File ]
mod - src/StdPrs/StdPrs_WFShape.hxx Diff ] File ]

- Issue History
Date Modified Username Field Change
2016-06-13 01:07 kgv New Issue
2016-06-13 01:07 kgv Assigned To => kgv
2016-06-13 01:07 kgv Relationship added related to 0023519
2016-06-13 02:32 git Note Added: 0054930
2016-06-13 02:42 kgv Note Added: 0054931
2016-06-13 02:42 kgv Assigned To kgv => san
2016-06-13 02:42 kgv Status new => resolved
2016-06-13 02:42 kgv Steps to Reproduce Updated View Revisions
2016-06-13 02:42 kgv Note Edited: 0054931 View Revisions
2016-06-14 00:14 san Note Added: 0054933
2016-06-14 00:14 san Assigned To san => bugmaster
2016-06-14 00:14 san Status resolved => reviewed
2016-06-14 14:01 git Note Added: 0054952
2016-06-14 14:02 git Note Added: 0054953
2016-06-14 14:03 kgv Note Added: 0054954
2016-06-14 14:37 kgv File Added: bleriot_iso_surf_old.png
2016-06-14 14:37 kgv File Added: bleriot_iso_surf_new.png
2016-06-14 14:38 kgv File Deleted: bleriot_iso_surf_old.png
2016-06-14 14:38 kgv File Added: bleriot_iso_surf_old.png
2016-06-14 14:47 mkv Assigned To bugmaster => mkv
2016-06-15 14:36 mkv Note Added: 0055023
2016-06-15 14:37 mkv Note Added: 0055024
2016-06-15 14:37 mkv Assigned To mkv => kgv
2016-06-15 14:37 mkv Status reviewed => feedback
2016-06-15 14:37 mkv Assigned To kgv => mkv
2016-06-15 14:37 mkv Test case number => Not needed
2016-06-15 14:38 mkv Assigned To mkv => kgv
2016-06-15 14:58 kgv Note Added: 0055025
2016-06-15 14:58 kgv Assigned To kgv => mkv
2016-06-15 15:26 mkv Note Added: 0055030
2016-06-15 15:26 mkv Assigned To mkv => bugmaster
2016-06-15 15:26 mkv Status feedback => tested
2016-06-16 20:47 kgv Relationship added related to 0022618
2016-06-16 20:49 kgv Relationship added related to 0025300
2016-06-17 12:04 bugmaster Changeset attached => occt master 1b9f5d95
2016-06-17 12:04 bugmaster Status tested => verified
2016-06-17 12:04 bugmaster Resolution open => fixed
2016-06-17 12:13 git Note Added: 0055138
2016-06-17 12:13 git Note Added: 0055139
2016-06-17 15:07 kgv Relationship added related to 0026612
2016-10-07 18:52 kgv Relationship added related to 0027941
2016-12-06 09:23 kgv Relationship added related to 0027508
2016-12-09 16:30 user533 Status verified => closed
2016-12-09 16:39 user533 Fixed in Version => 7.1.0


Copyright © 2000 - 2018 MantisBT Team
Powered by Mantis Bugtracker