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 Visualization - 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 aiv Status verified => closed
2016-12-09 16:39 aiv Fixed in Version => 7.1.0


Copyright © 2000 - 2019 MantisBT Team
Powered by Mantis Bugtracker