View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0027596 | Open CASCADE | OCCT:Visualization | public | 2016-06-13 01:07 | 2016-12-09 16:39 |
Reporter | kgv | Assigned To | bugmaster | ||
Priority | normal | Severity | minor | ||
Status | closed | Resolution | fixed | ||
Product Version | 7.0.0 | ||||
Target Version | 7.1.0 | Fixed in Version | 7.1.0 | ||
Summary | 0027596: Visualization, StdPrs_WFShape - pack isolines into single group of primitives | ||||
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 | ||||
Tags | No tags attached. | ||||
Test case number | Not needed | ||||
related to | 0023519 | closed | bugmaster | Community | Mixing wireframe and shaded visualization impacts performance |
related to | 0025300 | closed | Open CASCADE | Visualization - Build wireframe representation consistent with the shape's triangulation | |
related to | 0026612 | closed | bugmaster | Community | High memory footprint displaying model with big amount of solids |
related to | 0022618 | assigned | Open CASCADE | Visualization - Tool for building generic wireframe representation of a face |
|
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. |
|
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. |
|
Branch CR27596 reviewed without remarks, ready for testing. |
|
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 |
|
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. |
|
Patch has been updated to fix compilation error on Android - please use branch CR27596_1 for testing. |
|
bleriot_iso_surf_new.png (181,781 bytes) |
|
bleriot_iso_surf_old.png (199,716 bytes) |
|
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 |
|
Dear kgv, Branch CR27596_1 has been rejected due to: - differences in images |
|
Changes in images are OK, please switch to tested. |
|
Dear BugMaster, Branch CR27596_1 is TESTED. |
|
Branch CR27596_1 has been deleted by inv. SHA-1: 011a78c3e2f79f6a12b0b5ddba64d3aea209bd15 |
|
Branch CR27596 has been deleted by inv. SHA-1: a690127e8573575ef4c6ef602d1e07188fac81c5 |
occt: master 1b9f5d95 2016-06-14 11:02:27 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. |
Affected Issues 0027596 |
|
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 |
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 | |
2016-06-13 02:42 | kgv | Note Edited: 0054931 | |
2016-06-14 00:14 |
|
Note Added: 0054933 | |
2016-06-14 00:14 |
|
Assigned To | san => bugmaster |
2016-06-14 00:14 |
|
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 |
|
Assigned To | bugmaster => mkv |
2016-06-15 14:36 |
|
Note Added: 0055023 | |
2016-06-15 14:37 |
|
Note Added: 0055024 | |
2016-06-15 14:37 |
|
Assigned To | mkv => kgv |
2016-06-15 14:37 |
|
Status | reviewed => feedback |
2016-06-15 14:37 |
|
Assigned To | kgv => mkv |
2016-06-15 14:37 |
|
Test case number | => Not needed |
2016-06-15 14:38 |
|
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 |
|
Note Added: 0055030 | |
2016-06-15 15:26 |
|
Assigned To | mkv => bugmaster |
2016-06-15 15:26 |
|
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-12-09 16:30 |
|
Status | verified => closed |
2016-12-09 16:39 |
|
Fixed in Version | => 7.1.0 |