MantisBT - Open CASCADE
View Issue Details
0028912Open CASCADE[OCCT] OCCT:Visualizationpublic2017-07-12 09:582019-11-29 20:15
kgv 
bugmaster 
normalfeature 
closedfixed 
 
[OCCT] 7.2.0[OCCT] 7.2.0 
v3d glsl texture_multi1
0028912: Visualization, TKOpenGl - multi-texture support
It is desired to allow custom GLSL programs using more then a one texture input.
No tags attached.
parent of 0029503closed apn Open CASCADE Visualization, TKOpenGl - fix access violation due to misprint in OpenGl_AspectMarker 
parent of 0030963closed bugmaster Open CASCADE Visualization, TKOpenGl - texture unit error during FFP global texture's parameters processing 
parent of 0031096closed bugmaster Open CASCADE Visualization, TKOpenGl - support metallic-roughness texture mapping 
related to 0030337closed bugmaster Open CASCADE Draw Harness, ViewerTest - do not restrict vtexture to AIS_Shape 
Issue History
2017-07-12 09:58kgvNew Issue
2017-07-12 09:58kgvAssigned To => kgv
2017-07-12 17:32gitNote Added: 0068223
2017-07-12 18:50gitNote Added: 0068227
2017-07-13 08:42gitNote Added: 0068235
2017-07-13 09:54gitNote Added: 0068238
2017-07-13 09:55gitNote Added: 0068239
2017-07-13 09:56kgvNote Added: 0068240
2017-07-13 09:56kgvAssigned Tokgv => apl
2017-07-13 09:56kgvStatusnew => resolved
2017-07-13 09:57gitNote Added: 0068241
2017-07-13 14:38gitNote Added: 0068257
2017-07-17 09:57gitNote Added: 0068329
2017-07-18 10:54gitNote Added: 0068397
2017-07-18 19:11kgvNote Added: 0068417
2017-07-19 16:52aplNote Added: 0068435
2017-07-19 16:52aplAssigned Toapl => bugmaster
2017-07-19 16:52aplStatusresolved => reviewed
2017-07-19 19:22mkvAssigned Tobugmaster => mkv
2017-07-20 08:43bugmasterNote Added: 0068462
2017-07-20 08:43bugmasterStatusreviewed => feedback
2017-07-20 08:54kgvNote Added: 0068463
2017-07-20 09:10bugmasterNote Added: 0068465
2017-07-20 09:10bugmasterStatusfeedback => tested
2017-07-20 09:11bugmasterTest case number => v3d glsl texture_multi1
2017-07-20 09:13bugmasterNote Edited: 0068465bug_revision_view_page.php?bugnote_id=68465#r17125
2017-07-20 09:57bugmasterAssigned Tomkv => bugmaster
2017-07-21 16:08bugmasterChangeset attached => occt master cc8cbabe
2017-07-21 16:08bugmasterStatustested => verified
2017-07-21 16:08bugmasterResolutionopen => fixed
2017-07-21 16:15gitNote Added: 0068571
2017-07-21 16:15gitNote Added: 0068572
2017-07-21 16:15gitNote Added: 0068573
2017-08-24 15:09kgvRelationship addedparent of 0029047
2017-09-29 16:17aivFixed in Version => 7.2.0
2017-09-29 16:29aivStatusverified => closed
2018-02-14 00:01kgvRelationship addedrelated to 0029503
2018-02-14 00:02kgvRelationship replacedparent of 0029503
2018-11-02 18:44kgvRelationship addedrelated to 0030337
2019-09-12 16:20kgvRelationship addedparent of 0030963
2019-11-29 20:15kgvRelationship addedparent of 0031096

Notes
(0068223)
git   
2017-07-12 17:32   
Branch CR28912 has been created by kgv.

SHA-1: b86f756ac87920650866f97e80e40e9b7d36dbf4


Detailed log of new commits:

Author: kgv
Date: Mon Jul 10 15:43:25 2017 +0300

    0028912: Visualization, TKOpenGl - multi-texture support
    
    Graphic3d_AspectFillArea3d now stores array of textures.
    Graphic3d_TextureParams stores texture unit for mapping texture.
    
    OpenGl_Context::BindTextures() - context now manages the set of active textures.
    Related code has been removed from OpenGl_Workspace.
    
    OpenGl_Sampler has been extended to hold texture parameters structure.
    OpenGl_Texture now holds OpenGl_Sampler instance as class field.
    OpenGl_Texture inherits new class OpenGl_NamedResource and holds
    texture identifier used for sharing resource in OpenGl_Context.
    
    OpenGl_RaytraceGeometry now creates bindless textures taking
    Sampler object directly from OpenGl_Texture.
    OpenGl_Context::BindTextures() automatically recreates immutable
    Sampler Object on texture parameters change.
    
    Declared new structure OpenGl_ArbSamplerObject for platform-neutral
    usage of related functionality.
    Related functions are now loaded within OpenGL ES 3.0+.
    
    Declarations.glsl - occActiveSampler has been renamed to occSampler0
    with aliases occSamplerBaseColor (main) and occActiveSampler (for compatibility).
    Additional texture samplers should be declared explicitly
    within specific GLSL program as occSampler1, occSampler2, etc.
    
    AIS_Shape and AIS_ColoredShape now computes Shaded presentation
    with UV coordinates if texture mapping is enabled in Drawer.
    
    vaspects - added new parameter "-settexture".
    vshaderprog now accepts Shader source code as parameter.
(0068227)
git   
2017-07-12 18:50   
Branch CR28912 has been updated forcibly by kgv.

SHA-1: 7844843e74f1b90cc01110ee7839a1ea1ac3dbb6
(0068235)
git   
2017-07-13 08:42   
Branch CR28912 has been updated forcibly by kgv.

SHA-1: 2ecd6455b6472d207fa1ab159d5d6b1119ddbc15
(0068238)
git   
2017-07-13 09:54   
Branch CR28912_1 has been created by kgv.

SHA-1: 5ccad424b012b1359f68959dbc00e75cb536f276


Detailed log of new commits:

Author: kgv
Date: Mon Jul 10 15:43:25 2017 +0300

    0028912: Visualization, TKOpenGl - multi-texture support
    
    Graphic3d_AspectFillArea3d now stores array of textures.
    Graphic3d_TextureParams stores texture unit for mapping texture.
    
    OpenGl_Context::BindTextures() - context now manages the set of active textures.
    Related code has been removed from OpenGl_Workspace.
    
    OpenGl_Sampler has been extended to hold texture parameters structure.
    OpenGl_Texture now holds OpenGl_Sampler instance as class field.
    OpenGl_Texture inherits new class OpenGl_NamedResource and holds
    texture identifier used for sharing resource in OpenGl_Context.
    
    OpenGl_RaytraceGeometry now creates bindless textures taking
    Sampler object directly from OpenGl_Texture.
    OpenGl_Context::BindTextures() automatically recreates immutable
    Sampler Object on texture parameters change.
    
    Declared new structure OpenGl_ArbSamplerObject for platform-neutral
    usage of related functionality.
    Related functions are now loaded within OpenGL ES 3.0+.
    
    Declarations.glsl - occActiveSampler has been renamed to occSampler0
    with aliases occSamplerBaseColor (main) and occActiveSampler (for compatibility).
    Additional texture samplers should be declared explicitly
    within specific GLSL program as occSampler1, occSampler2, etc.
    
    AIS_Shape and AIS_ColoredShape now computes Shaded presentation
    with UV coordinates if texture mapping is enabled in Drawer.
    
    vaspects - added new parameter "-settexture".
    vshaderprog now accepts Shader source code as parameter.
(0068239)
git   
2017-07-13 09:55   
Branch CR28912_1 has been updated forcibly by kgv.

SHA-1: 9d124126c449cf4cbb43f97c7bdfcc42ac71c305
(0068240)
kgv   
2017-07-13 09:56   
Patch is ready for review.
(0068241)
git   
2017-07-13 09:57   
Branch CR28912_1 has been updated forcibly by kgv.

SHA-1: 40ad3818e87e4b534c97d4fc64eff1281efea9f0
(0068257)
git   
2017-07-13 14:38   
Branch CR28912_1 has been updated forcibly by kgv.

SHA-1: e1b952f2e0e0aedd4624f84e113faa5212720e71
(0068329)
git   
2017-07-17 09:57   
Branch CR28912_1 has been updated forcibly by kgv.

SHA-1: 7e15b446b21745f16cd1fa98d75f040190b20b8a
(0068397)
git   
2017-07-18 10:54   
Branch CR28912_2 has been created by kgv.

SHA-1: 2ad0bc5f718a79a51f6f3decebc78801f8c8022c


Detailed log of new commits:

Author: kgv
Date: Mon Jul 10 15:43:25 2017 +0300

    0028912: Visualization, TKOpenGl - multi-texture support
    
    Graphic3d_AspectFillArea3d now stores array of textures.
    Graphic3d_TextureParams stores texture unit for mapping texture.
    
    OpenGl_Context::BindTextures() - context now manages the set of active textures.
    Related code has been removed from OpenGl_Workspace.
    
    OpenGl_Sampler has been extended to hold texture parameters structure.
    OpenGl_Texture now holds OpenGl_Sampler instance as class field.
    OpenGl_Texture inherits new class OpenGl_NamedResource and holds
    texture identifier used for sharing resource in OpenGl_Context.
    
    OpenGl_RaytraceGeometry now creates bindless textures taking
    Sampler object directly from OpenGl_Texture.
    OpenGl_Context::BindTextures() automatically recreates immutable
    Sampler Object on texture parameters change.
    
    Declared new structure OpenGl_ArbSamplerObject for platform-neutral
    usage of related functionality.
    Related functions are now loaded within OpenGL ES 3.0+.
    
    Declarations.glsl - occActiveSampler has been renamed to occSampler0
    with aliases occSamplerBaseColor (main) and occActiveSampler (for compatibility).
    Additional texture samplers should be declared explicitly
    within specific GLSL program as occSampler1, occSampler2, etc.
    
    AIS_Shape and AIS_ColoredShape now computes Shaded presentation
    with UV coordinates if texture mapping is enabled in Drawer.
    
    vshaderprog now accepts Shader source code as parameter.
(0068417)
kgv   
2017-07-18 19:11   
CR28912_2-CR28912-KGV-Products-Debian70-64-opt-tests-compare-linux - Build # 1 - Successful:
Check console output at http://jenkins-test-10.nnov.opencascade.com:8080/job/CR28912_2-CR28912-KGV-Products-Debian70-64-opt-tests-compare-linux/1/ [^] to view the results.

CR28912_2-CR28912-KGV-Products-Windows-64-VC10-opt-tests-compare-windows - Build # 1 - Successful:
Check console output at http://jenkins-test-10.nnov.opencascade.com:8080/job/CR28912_2-CR28912-KGV-Products-Windows-64-VC10-opt-tests-compare-windows/1/ [^] to view the results.
(0068435)
apl   
2017-07-19 16:52   
Dear bugmaster,

The patch is reviewed.
(0068462)
bugmaster   
2017-07-20 08:43   
Kirill,
Diff images:
http://occt-tests/CR28912_2-CR28912-KGV-OCCT/Debian70-64/diff-Debian70-64-image.html [^]
http://occt-tests/CR28912_2-CR28912-KGV-OCCT/Windows-64-VC10/diff-Windows-64-VC10-image.html [^]

Linux and Windows:
Improvement
IMAGE bugs vis bug23385: bug23385.png differs

Windows:
The text on image became poorly readable.
IMAGE demo samples cpu: cpu.png differs
(0068463)
kgv   
2017-07-20 08:54   
> The text on image became poorly readable.
> IMAGE demo samples cpu: cpu.png differs
This is unrelated to this patch - I've seen this difference randomly occurred on this test case while testing other patches for a long time.
(0068465)
bugmaster   
2017-07-20 09:10   
(edited on: 2017-07-20 09:13)
Branch CR28912_2 from occt git-repository and CR28912 from products git-repository was compiled on Linux, MacOS and Windows platforms and tested on Release mode.
OCCT SHA-1: 2ad0bc5f718a79a51f6f3decebc78801f8c8022c
Products SHA-1: febcd5194f88bc3922206dc3d5186f4cfef34672
Number of compiler warnings:

occt component :
Linux: 0 (0 on master)
Windows: 0 (0 on master)
MacOS : 0 (0 on master)

products component :
Linux: 10 (10 on master)
Windows: 0 (0 on master)
MacOS : 28 (28 on master)

Regressions/Differences/Improvements:
No regressions/differences

Testing cases:
v3d glsl texture_multi1

Testing on Linux:
occt component :
Total CPU difference: 19279.920000000177 / 19401.700000000146 [-0.63%]
Total MEMORY difference: 92466631 / 92413321 [+0.06%]
products component :
Total CPU difference: 6488.360000000054 / 6548.950000000075 [-0.93%]
Total MEMORY difference: 38168914 / 38040477 [+0.34%]
Testing on Windows:
occt component :
Total CPU difference: 18113.432110998503 / 17787.48362159872 [+1.83%]
Total MEMORY difference: 59104753 / 59107100 [-0.00%]
products component :
Total CPU difference: 6815.418488300055 / 6684.861251400067 [+1.95%]
Total MEMORY difference: 28934014 / 28820451 [+0.39%]

There are differences in images found by testdiff.
Improvement
IMAGE bugs vis bug23385: bug23385.png differs
The text on image became poorly readable.
IMAGE demo samples cpu: cpu.png differs
Differences were agreed by KGV

(0068571)
git   
2017-07-21 16:15   
Branch CR28912 has been deleted by kgv.

SHA-1: 2ecd6455b6472d207fa1ab159d5d6b1119ddbc15
(0068572)
git   
2017-07-21 16:15   
Branch CR28912_1 has been deleted by kgv.

SHA-1: 7e15b446b21745f16cd1fa98d75f040190b20b8a
(0068573)
git   
2017-07-21 16:15   
Branch CR28912_2 has been deleted by kgv.

SHA-1: 2ad0bc5f718a79a51f6f3decebc78801f8c8022c