View Issue Details

IDProjectCategoryView StatusLast Update
0022582Open CASCADEOCCT:Visualizationpublic2019-11-22 15:50
ReporteraplAssigned Tobugmaster  
PrioritynormalSeverityfeature 
Status closedResolutionfixed 
OSAll 
Target Version7.1.0Fixed in Version7.1.0 
Summary0022582: Visualization - provide an API for dumping a sub-region of the viewport
DescriptionThe tile printing algorithm has been implemented with the 0022337 patch. This
algorithm prints the scene in high resolution without quality loss.

It looks reasonable to remove printing functionality at all (since it has been implemented only for Windows platform and does not evaluate) and move tiling capabilities to general image dump.
Steps To Reproducetest bugs vis bug22582
TagsNo tags attached.
Test case numberv3d glsl tiles

Attached Files

  • makers_tiles_KO.png (21,052 bytes)
  • trsf_pers_tiles_KO.png (69,214 bytes)

Relationships

related to 0022337 closedbugmaster Community V3d_View::Print crashes in OCCT 6.5.0 
parent of 0027836 closedbugmaster Open CASCADE Visualization, TKOpenGl - gradient background is lost at some camera positions 
parent of 0029127 closedbugmaster Open CASCADE Visualization - V3d_View::ToPixMap() crashes on tiled rendering without FBO 
related to 0022696 closedbugmaster Community Visualization - Image dump of 3D Viewer is limited to Video hardware limits 
related to 0023049 closedbugmaster Open CASCADE Optimize packaging and dependencies of visualization libraries 
related to 0024349 closedbugmaster Community Document name of V3d::View printouts is very long and cannot be changed by the application 
related to 0027763 closedbugmaster Open CASCADE Visualization - remove V3d_View::Print() method 
related to 0027860 closedkgv Open CASCADE Visualization - clean up Transformation Persistence API 
related to 0030982 closedbugmaster Open CASCADE Visualization, OpenGl_View::MinMaxValues() - do not add background quad into depth range 

Activities

git

2015-11-19 14:15

administrator   ~0048375

Branch CR22582 has been created by isz.

SHA-1: 5654a9d78cd294d54b983c56c057290a6bb32b10


Detailed log of new commits:

Author: isz
Date: Thu Nov 19 14:05:51 2015 +0300

    0022582: Visualization - share tile printing algorithm for dumping a 3D scene
    
    Tile algorithm for dumping is implemented. Added new option "-tile" for draw command "vdump". Test case bug22582 was added.

kgv

2015-11-19 15:22

developer   ~0048384

It is suggested to move tiling functionality into the base tool defining projection matrices - Graphic3d_Camera.

Graphic3d_Camera class definition should be extended with tile properties (tile top-left corner, tile width and height, full frame width and height) with tile width and height equal to window size. The methods Graphic3d_Camera::UpdateProjection(), ::OrthoProj(), ::PerspectiveProj(), ::StereoEyeProj() should be extended with the logic based on optional tile definition.

V3d_View::ToPixMap() will be left untouched - application will define tiling configuration beforehand, allocate image of extra size (if needed) and would iterate through tiles defining specific tile within new V3d_View method (passing arguments to Graphic3d_Camera instance) and calling V3d_View::ToPixMap(). Method ToPixMap() will pass dump dimensions to camera as tile dimensions.

Draw Harness should be extended with new command defining tile configuration of active view (e.g. usual rendering into window will draw a tile). Command vdump should be extended with option making usual dump with specified tile size.

New test cases should cover all scenarios:
- Orthographic projection.
- Perspective projection (mono).
- Left/Rigth stereographic projection.
- Ray-Tracing, Path-Tracing, Rasterization.

git

2016-07-20 16:34

administrator   ~0056061

Branch CR22582 has been updated forcibly by osa.

SHA-1: 92e8957036b38a6ba51539c1bc1198e5000824b5

git

2016-08-06 14:11

administrator   ~0056526

Branch CR22582 has been updated forcibly by kgv.

SHA-1: c6f49156d76acbdb8217e0e6a373714f20fa2db9

git

2016-08-06 18:53

administrator   ~0056527

Branch CR22582_1 has been created by kgv.

SHA-1: 9ed74937e33359dad386498d2167aaa5f61677a0


Detailed log of new commits:

Author: kgv
Date: Sat Aug 6 18:53:01 2016 +0300

    0022582: Visualization - share tile printing algorithm for dumping a 3D scene
    
    Graphic3d_Camera class was extended with Tile property.
    The method ::UpdateProjection() takes into account Tile configuration.
    
    V3d_View::ToPixMap() dumps big images during iteration through tiles.

git

2016-08-07 12:30

administrator   ~0056531

Branch CR22582_1 has been updated forcibly by kgv.

SHA-1: 20ec1c676aa7b207a4d371f4f6d3abb4cb9ed30a

git

2016-08-07 12:39

administrator   ~0056532

Branch CR22582_1 has been updated forcibly by kgv.

SHA-1: b1acfb095b090c6d1610f6cc677b1c85cab758a2

kgv

2016-08-07 12:48

developer  

makers_tiles_KO.png (21,052 bytes)

kgv

2016-08-07 12:49

developer  

trsf_pers_tiles_KO.png (69,214 bytes)

kgv

2016-08-07 13:11

developer   ~0056533

The issues of current prototype:
- Grayscale/texture background is rendered incorrectly (it uses normalized coordinates and thus ignores projection matrix at all).
- Big markers might be skipped by hardware if point is outside the volume leading to marker clipping by tile boundaries (see makers_tiles_KO.png - sample markers.tcl dumped to 2560x1440 with tile size 1024x1024).
- Transformation persistence works (osd2d) incorrectly with tiling.
- Text labels are drawn incorrectly with tiling.
- ZBuffer trihedron is drawn for each tile.

Note that some of the issues are reproducible with vprintview.

git

2016-08-07 21:56

administrator   ~0056534

Branch CR22582_1 has been updated by kgv.

SHA-1: e79bdc2b058ef5d59fb0da65b32792b48db12816


Detailed log of new commits:

Author: kgv
Date: Sun Aug 7 21:56:16 2016 +0300

    add command vtile

git

2016-08-21 11:57

administrator   ~0056904

Branch CR22582_2 has been created by kgv.

SHA-1: 35d7863c45752331c7caf6c02b906c36d7c19de9


Detailed log of new commits:

Author: osa
Date: Sun Aug 21 11:53:55 2016 +0300

    0022582: Visualization - share tile printing algorithm for dumping a 3D scene
    
    Graphic3d_Camera class was extended with Tile property.
    The method ::UpdateProjection() takes into account Tile configuration.
    
    V3d_View::ToPixMap() dumps big images during iteration through tiles.

git

2016-08-21 15:41

administrator   ~0056905

Branch CR22582_2 has been updated forcibly by kgv.

SHA-1: 3511c0b241f3e917aacbde357fcbb9e137449adb

git

2016-08-21 22:03

administrator   ~0056908

Branch CR22582_3 has been created by kgv.

SHA-1: 1ead1b23e6c34d788209340c63951a02abd7bbfa


Detailed log of new commits:

Author: osa
Date: Sun Aug 21 21:55:10 2016 +0300

    0022582: Visualization - provide an API for dumping a sub-region of the viewport
    
    Graphic3d_Camera definition has been exended by optional Tile property (Graphic3d_CameraTile structure).
    V3d_View::ToPixMap() now performs tiled dump when image size exceeds hardware limits.
    
    OpenGl_Context now tracks viewport values.
    Draw Harness command vdump has been extended with new argument -tileSize.

git

2016-08-21 22:22

administrator   ~0056910

Branch CR22582_3 has been updated forcibly by kgv.

SHA-1: ee96fb7a2f6d05342349cba0f03d531960fb67ce

git

2016-08-22 23:11

administrator   ~0056945

Branch CR22582_3 has been updated forcibly by kgv.

SHA-1: 3a6259792af8b39a9bdb17646f0833ff8241589a

kgv

2016-08-22 23:15

developer   ~0056946

Please test the patch.

git

2016-08-23 17:16

administrator   ~0056994

Branch CR22582_3 has been updated forcibly by kgv.

SHA-1: dea6f4b527b7dd17d2d946b26db05045d26c5d96

kgv

2016-08-23 17:17

developer   ~0056995

Patch has been rebased onto updated 0027796.

apv

2016-08-24 18:51

tester   ~0057039

Dear BugMaster,

Branch CR22582_3 from occt git-repository (and master from products git-repository) was compiled on Linux, MacOS and Windows platforms and tested.
SHA-1: dea6f4b527b7dd17d2d946b26db05045d26c5d96

Number of compiler warnings:
occt component:
   Linux: 0 (0 on master)
   Windows: 0 (0 on master)
   MasOS: 0 (0 on master)
products component:
   Linux: 64
   Windows: 0
   MacOS: 1138

Regressions/Differences:
http://occt-tests/CR22582_3-master-OCCT/Debian70-64/summary.html
http://occt-tests/CR22582_3-master-OCCT/Windows-64-VC10/summary.html
bugs vis bug26344

Testing cases:
v3d glsl tiles - OK
http://occt-tests/CR22582_3-master-OCCT/Debian70-64/v3d/glsl/tiles.html
http://occt-tests/CR22582_3-master-OCCT/Windows-64-VC10/v3d/glsl/tiles.html

Testing on Linux:
Total MEMORY difference: 90037305 / 89511201 [+0.59%]
Total CPU difference: 19469.86000000012 / 19494.80000000011 [-0.13%]

Testing on Windows:
Total MEMORY difference: 57163992 / 57158685 [+0.01%]
Total CPU difference: 17966.02676609876 / 18084.493925498853 [-0.66%]

There are differences in images found by testdiff:
http://occt-tests/CR22582_3-master-OCCT/Debian70-64/diff-Debian70-64.html
http://occt-tests/CR22582_3-master-OCCT/Windows-64-VC10/diff-Windows-64-VC10-image.html
3rdparty fonts A1
bugs vis bug21747_12
bugs vis bug22819
bugs vis bug26344
bugs vis bug12584
bugs vis bug22632
bugs vis bug26312
bugs vis bug21091_1
bugs vis bug21747_14
bugs vis bug25136
bugs vis bug25027
bugs vis bug21747_10
bugs vis bug21747_16

apv

2016-08-24 18:53

tester   ~0057040

Dear Kirill,

Branch CR22582_3 has been rejected due to:
- regressions/differences/improvements
- differences in images

git

2016-08-24 21:42

administrator   ~0057047

Branch CR22582_3 has been updated forcibly by kgv.

SHA-1: 11339f106f09f2b0246d234955ff673675f0f386

git

2016-08-24 22:59

administrator   ~0057048

Branch CR22582_3 has been updated by kgv.

SHA-1: 5fa5368708df210b3e2a82078e96dafdfc972536


Detailed log of new commits:

Author: kgv
Date: Wed Aug 24 22:59:29 2016 +0300

    OpenGl_BackgroundArray - fix Aspect_GFM_CORNER1 and Aspect_GFM_CORNER3

git

2016-08-24 23:09

administrator   ~0057049

Branch CR22582_3 has been updated by kgv.

SHA-1: d49949e1b3d4196f476a7e3373d201d8ff73972c


Detailed log of new commits:

Author: kgv
Date: Wed Aug 24 23:09:45 2016 +0300

    OpenGl_View::Redraw() - fix dump of immediate Z layers

git

2016-08-24 23:16

administrator   ~0057050

Branch CR22582_4 has been created by kgv.

SHA-1: aa96284db7c7532e6f17c7f6fc60ab5a5f920a14


Detailed log of new commits:

Author: osa
Date: Sun Aug 21 21:55:10 2016 +0300

    0022582: Visualization - provide an API for dumping a sub-region of the viewport
    
    Graphic3d_Camera definition has been exended by optional Tile property (Graphic3d_CameraTile structure).
    V3d_View::ToPixMap() now performs tiled dump when image size exceeds hardware limits.
    
    OpenGl_View::Redraw() - fixed dump of immediate Z layers in no stereo and no MSAA case.
    
    OpenGl_Context now tracks viewport values.
    Draw Harness command vdump has been extended with new argument -tileSize.

kgv

2016-08-24 23:16

developer   ~0057051

Please check updated patch in branch CR22582_4.

git

2016-08-26 13:48

administrator   ~0057090

Branch CR22582_4 has been updated forcibly by apv.

SHA-1: b31fe072d26a86208c7778585f2b72cfa09b6819

apv

2016-08-26 13:49

tester   ~0057091

Branch CR22582_4 has been rebased on the current master.

apv

2016-08-30 11:25

tester   ~0057287

Dear BugMaster,

Branch CR22582_4 from occt git-repository (and master from products git-repository) was compiled on Linux, MacOS and Windows platforms and tested.
SHA-1: b31fe072d26a86208c7778585f2b72cfa09b6819

Number of compiler warnings:
occt component:
   Linux: 0 (0 on master)
   Windows: 0 (0 on master)
   MasOS: 0 (0 on master)
products component:
   Linux: 64
   Windows: 0
   MacOS: 1142

Regressions/Differences:
Not detected

Testing cases:
v3d glsl tiles - OK
http://occt-tests/CR22582_4-master-OCCT/Debian70-64/v3d/glsl/tiles.html
http://occt-tests/CR22582_4-master-OCCT/Windows-64-VC10/v3d/glsl/tiles.html

Testing on Linux:
Total MEMORY difference: 89496900 / 89973920 [-0.53%]
Total CPU difference: 19340.380000000037 / 19309.169999999933 [+0.16%]

Testing on Windows:
Total MEMORY difference: 57089201 / 57104361 [-0.03%]
Total CPU difference: 17938.383388898903 / 18053.48092669886 [-0.64%]

git

2016-10-28 21:48

administrator   ~0059533

Branch CR22582 has been deleted by kgv.

SHA-1: c6f49156d76acbdb8217e0e6a373714f20fa2db9

git

2016-10-28 21:48

administrator   ~0059534

Branch CR22582_1 has been deleted by kgv.

SHA-1: e79bdc2b058ef5d59fb0da65b32792b48db12816

git

2016-10-28 21:48

administrator   ~0059535

Branch CR22582_2 has been deleted by kgv.

SHA-1: 3511c0b241f3e917aacbde357fcbb9e137449adb

git

2016-10-28 21:48

administrator   ~0059536

Branch CR22582_3 has been deleted by kgv.

SHA-1: d49949e1b3d4196f476a7e3373d201d8ff73972c

git

2016-10-28 21:48

administrator   ~0059537

Branch CR22582_4 has been deleted by kgv.

SHA-1: b31fe072d26a86208c7778585f2b72cfa09b6819

Related Changesets

occt: master 3bffef55

2016-08-21 18:55:10

osa


Committer: bugmaster Details Diff
0022582: Visualization - provide an API for dumping a sub-region of the viewport

Graphic3d_Camera definition has been exended by optional Tile property (Graphic3d_CameraTile structure).
V3d_View::ToPixMap() now performs tiled dump when image size exceeds hardware limits.

OpenGl_View::Redraw() - fixed dump of immediate Z layers in no stereo and no MSAA case.

OpenGl_Context now tracks viewport values.
Draw Harness command vdump has been extended with new argument -tileSize.
Affected Issues
0022582
mod - src/Graphic3d/FILES Diff File
mod - src/Graphic3d/Graphic3d_Camera.cxx Diff File
mod - src/Graphic3d/Graphic3d_Camera.hxx Diff File
add - src/Graphic3d/Graphic3d_CameraTile.hxx Diff File
mod - src/Graphic3d/Graphic3d_GraphicDriver.hxx Diff File
mod - src/Graphic3d/Graphic3d_TransformPers.hxx Diff File
mod - src/Graphic3d/Graphic3d_TransformUtils.hxx Diff File
add - src/Graphic3d/Graphic3d_TypeOfLimit.hxx Diff File
mod - src/OpenGl/OpenGl_BackgroundArray.cxx Diff File
mod - src/OpenGl/OpenGl_BackgroundArray.hxx Diff File
mod - src/OpenGl/OpenGl_Context.cxx Diff File
mod - src/OpenGl/OpenGl_Context.hxx Diff File
mod - src/OpenGl/OpenGl_FrameBuffer.cxx Diff File
mod - src/OpenGl/OpenGl_GraduatedTrihedron.cxx Diff File
mod - src/OpenGl/OpenGl_GraphicDriver.cxx Diff File
mod - src/OpenGl/OpenGl_GraphicDriver.hxx Diff File
mod - src/OpenGl/OpenGl_Structure.cxx Diff File
mod - src/OpenGl/OpenGl_Text.cxx Diff File
mod - src/OpenGl/OpenGl_Text.hxx Diff File
mod - src/OpenGl/OpenGl_View_Redraw.cxx Diff File
mod - src/OpenGl/OpenGl_Window.cxx Diff File
mod - src/V3d/FILES Diff File
add - src/V3d/V3d_ImageDumpOptions.hxx Diff File
mod - src/V3d/V3d_View.cxx Diff File
mod - src/V3d/V3d_View.hxx Diff File
mod - src/ViewerTest/ViewerTest.cxx Diff File
mod - src/ViewerTest/ViewerTest_ViewerCommands.cxx Diff File
add - tests/v3d/glsl/tiles Diff File

Issue History

Date Modified Username Field Change
2011-06-07 17:07 apl CC => san
2011-06-07 17:12 apl CC => kgv
2011-08-02 11:24 bugmaster Category OCCT:VIZ => OCCT:Visualization
2011-08-09 13:54 san Relationship added related to 0022337
2012-10-23 10:59 kgv Relationship added related to 0022696
2012-10-23 11:07 abv Fixed in Version EMPTY =>
2012-10-23 11:07 abv Target Version => Unscheduled
2012-10-23 11:07 abv Description Updated
2014-02-13 11:15 kgv Assigned To bugmaster => apl
2014-02-13 11:15 kgv Target Version Unscheduled => 7.0.0
2014-02-13 11:15 kgv Summary Share tile printing algorithm for dumping a 3D scene => Visualization - share tile printing algorithm for dumping a 3D scene
2014-02-13 11:15 kgv Description Updated
2014-02-17 14:56 kgv Relationship added related to 0023049
2014-09-29 22:56 kgv Target Version 7.0.0 => 7.1.0
2015-01-30 08:41 kgv Assigned To apl => isz
2015-01-30 08:41 kgv Status new => assigned
2015-11-19 14:15 git Note Added: 0048375
2015-11-19 14:17 isz Steps to Reproduce Updated
2015-11-19 15:22 kgv Note Added: 0048384
2016-07-08 17:25 kgv Assigned To isz => osa
2016-07-09 18:41 kgv Relationship added related to 0024349
2016-07-20 16:34 git Note Added: 0056061
2016-08-06 14:11 git Note Added: 0056526
2016-08-06 18:53 git Note Added: 0056527
2016-08-07 12:30 git Note Added: 0056531
2016-08-07 12:39 git Note Added: 0056532
2016-08-07 12:48 kgv File Added: makers_tiles_KO.png
2016-08-07 12:49 kgv File Added: trsf_pers_tiles_KO.png
2016-08-07 13:11 kgv Note Added: 0056533
2016-08-07 21:56 git Note Added: 0056534
2016-08-10 22:07 kgv Relationship added related to 0027763
2016-08-21 11:57 git Note Added: 0056904
2016-08-21 15:37 kgv Summary Visualization - share tile printing algorithm for dumping a 3D scene => Visualization - provide an API for dumping a sub-region of the viewport
2016-08-21 15:37 kgv Description Updated
2016-08-21 15:41 git Note Added: 0056905
2016-08-21 22:03 git Note Added: 0056908
2016-08-21 22:22 git Note Added: 0056910
2016-08-22 23:11 git Note Added: 0056945
2016-08-22 23:15 kgv Note Added: 0056946
2016-08-22 23:15 kgv Assigned To osa => bugmaster
2016-08-22 23:15 kgv Status assigned => resolved
2016-08-22 23:15 kgv Status resolved => reviewed
2016-08-23 13:37 apv Assigned To bugmaster => apv
2016-08-23 17:05 kgv Assigned To apv => kgv
2016-08-23 17:05 kgv Status reviewed => assigned
2016-08-23 17:16 git Note Added: 0056994
2016-08-23 17:17 kgv Note Added: 0056995
2016-08-23 17:17 kgv Assigned To kgv => bugmaster
2016-08-23 17:17 kgv Status assigned => resolved
2016-08-23 17:17 kgv Status resolved => reviewed
2016-08-23 17:22 apv Assigned To bugmaster => apv
2016-08-24 13:43 apv Test case number => v3d glsl tiles
2016-08-24 18:51 apv Note Added: 0057039
2016-08-24 18:51 apv Assigned To apv => kgv
2016-08-24 18:51 apv Status reviewed => assigned
2016-08-24 18:53 apv Note Added: 0057040
2016-08-24 21:42 git Note Added: 0057047
2016-08-24 22:59 git Note Added: 0057048
2016-08-24 23:09 git Note Added: 0057049
2016-08-24 23:16 git Note Added: 0057050
2016-08-24 23:16 kgv Note Added: 0057051
2016-08-24 23:16 kgv Assigned To kgv => bugmaster
2016-08-24 23:16 kgv Status assigned => resolved
2016-08-24 23:17 kgv Status resolved => reviewed
2016-08-26 08:42 apv Assigned To bugmaster => apv
2016-08-26 13:48 git Note Added: 0057090
2016-08-26 13:49 apv Note Added: 0057091
2016-08-30 11:25 apv Note Added: 0057287
2016-08-30 11:25 apv Assigned To apv => bugmaster
2016-08-30 11:25 apv Status reviewed => tested
2016-09-02 10:27 bugmaster Changeset attached => occt master 3bffef55
2016-09-02 10:27 bugmaster Status tested => verified
2016-09-02 10:27 bugmaster Resolution open => fixed
2016-09-03 21:06 kgv Relationship added parent of 0027836
2016-09-10 14:37 kgv Relationship added related to 0027860
2016-10-28 21:48 git Note Added: 0059533
2016-10-28 21:48 git Note Added: 0059534
2016-10-28 21:48 git Note Added: 0059535
2016-10-28 21:48 git Note Added: 0059536
2016-10-28 21:48 git Note Added: 0059537
2016-12-09 16:30 aiv Status verified => closed
2016-12-09 16:38 aiv Fixed in Version => 7.1.0
2017-09-20 14:32 kgv Relationship added parent of 0029127
2019-11-22 15:50 kgv Relationship added related to 0030982