View Issue Details

IDProjectCategoryView StatusLast Update
0029568CommunityOCCT:Visualizationpublic2018-03-14 17:42
Reporteruhammoud Assigned Tokgv  
PrioritynormalSeveritymajor 
Status closedResolutionno change required 
PlatformWindowsOSWindows 7 64-bit 
Product Version7.2.0 
Summary0029568: Rotation and Translation performance
DescriptionLoading a large number of objects (~2K) slows down the applications and makes it not responsive especially when translation or rotation is performed. Are there options to optimize the performance of translation and rotation under heavy load?
TagsNo tags attached.
Test case number

Activities

kgv

2018-03-12 23:06

developer   ~0074409

Last edited: 2018-03-12 23:08

Slow down on big number of presentations is expected behavior, though 2k presentations should not be that bad on modern desktop CPUs.
Draw Harness comes with a sample spheres.tcl displaying about 1k spheres with some of them animated - this sample can be used to evaluate performance of your computer, and also can be investigated for basic optimization approaches available in OCCT.

In case if presentations are simple, the rendering frame-rate becomes limited by CPU performance. And due to design issues of OpenGL library, the payload is not distributed well across CPU cores.

The following approaches are usually considered for solving rendering performance issues:
- Offloading 3D Viewer rendering into dedicated thread on application level (so that application and GUI framework logic releases more CPU resources for rendering thread).
- Grouping big amounts of small objects into larger Presentation(s).
- Separating static and dynamic objects across Z-Layers.
- Avoiding redundant (duplicating) Viewer updates (redraws).
- Implementing application-specific optimizations considering deep knowledge of used data structures, models and usage scenarios.
- Hiding objects, which cannot been distinguished by eye due to large distances.
- Optimizing presentations (including pre-processing of input models; decimation).
Usually, this is enough for achieving reasonable performance for most OCCT-based applications.

At OCCT level, substantial performance improvements for large number of objects can be expected from moving towards Vulkan. Lesser CPU overhead and multi-threading optimizations (at application level) are key features of this new interface. Such transition, however, implies considerable amounts of work.

kgv

2018-03-13 07:36

developer   ~0074410

Last edited: 2018-03-13 07:37

Please provide more meaningful description (e.g. if there is a regression, unexpected performance issue within specific use case that can be clearly fixed, or you are going to provide patches).
Otherwise, I'm going to close the issue as expected behavior.

uhammoud

2018-03-14 16:54

reporter   ~0074482

I will write a sample app to demonstrate the behavior. You may close the issue for now. Thanks

kgv

2018-03-14 16:57

developer   ~0074483

Dear bugmaster,

please close the bug.

Issue History

Date Modified Username Field Change
2018-03-12 21:38 uhammoud New Issue
2018-03-12 21:38 uhammoud Assigned To => kgv
2018-03-12 23:06 kgv Note Added: 0074409
2018-03-12 23:07 kgv Note Edited: 0074409
2018-03-12 23:08 kgv Note Edited: 0074409
2018-03-13 07:36 kgv Note Added: 0074410
2018-03-13 07:36 kgv Assigned To kgv => uhammoud
2018-03-13 07:36 kgv Status new => feedback
2018-03-13 07:36 kgv Resolution open => no change required
2018-03-13 07:37 kgv Note Edited: 0074410
2018-03-14 16:54 uhammoud Note Added: 0074482
2018-03-14 16:57 kgv Note Added: 0074483
2018-03-14 16:57 kgv Assigned To uhammoud => bugmaster
2018-03-14 17:41 bugmaster Assigned To bugmaster => kgv
2018-03-14 17:41 bugmaster Status feedback => assigned
2018-03-14 17:42 bugmaster Status assigned => closed