View Issue Details

IDProjectCategoryView StatusLast Update
0030126Open CASCADEOCCT:Visualizationpublic2023-08-01 15:09
Reporterkgv Assigned Tongavrilo 
PrioritynormalSeverityfeature 
Status assignedResolutionopen 
Target VersionUnscheduled 
Summary0030126: Visualization, Graphic3d_ShaderManager - define standard Lighting & Clipping within custom GLSL programs as template functions
DescriptionCurrently, defining a custom GLSL program requires redefining of all major blocks, including shading (lighting) and clipping.

This limits flexibility of custom programs at application level, since when lighting is required, significant code blocks have to be copied, complicating GLSL source code and its maintenance (considering that application requires a minor customization of shader code).

It is proposed redefining major portions of standard GLSL programs as reusable functions, which custom GLSL program can mark as blocks for template substitution at Shader Manager.

This conception is already used within some custom Shader Managers within OCC Products - the approach can be adapted and improved for OpenGl_ShaderManager, and ideally custom Shader Managers can be further replaced by standard one.

Another issue is optimization of custom GLSL programs depending on number of lights and clipping planes - currently, these optimizations (handful for low-end hardware) are applicable only to built-in GLSL programs, because custom GLSL has only one cached instance within current design.
TagsNo tags attached.
Test case number

Relationships

related to 0032152 closedbugmaster Visualization - move out GLSL program generator from OpenGl_ShaderManager to Graphic3d_ShaderManager 
related to 0030700 closedapn Visualization, TKOpenGl - support PBR Metallic-Roughness shading model 
child of 0024192 closedabv Adding support for shaders to OCCT visualization toolkit 
child of 0025282 closedbugmaster Visualization, OpenGl_PrimitiveArray - provide built-in GLSL programs as alternative to FFP 
child of 0030631 newvpozdyayev Visualization - Vulkan graphic driver prototype 

Activities

There are no notes attached to this issue.

Issue History

Date Modified Username Field Change
2018-09-11 14:12 kgv New Issue
2018-09-11 14:12 kgv Assigned To => kgv
2018-09-11 14:13 kgv Relationship added child of 0024192
2018-09-11 14:14 kgv Description Updated
2018-09-11 14:15 kgv Relationship added child of 0025282
2019-04-17 14:11 kgv Relationship added child of 0030631
2019-05-07 14:27 kgv Relationship added related to 0030700
2019-09-04 15:43 abv Target Version 7.4.0 => 7.5.0
2020-09-21 17:46 kgv Target Version 7.5.0 => 7.6.0
2021-03-02 16:02 kgv Relationship added related to 0032152
2021-03-02 16:02 kgv Summary Visualization, OpenGl_ShaderManager - define standard Lighting & Clipping within custom GLSL programs as template functions => Visualization, Graphic3d_ShaderManager - define standard Lighting & Clipping within custom GLSL programs as template functions
2021-09-09 22:26 kgv Target Version 7.6.0 => 7.7.0
2022-08-01 15:08 kgv Assigned To kgv => ngavrilo
2022-08-01 15:08 kgv Status new => assigned
2022-08-17 11:55 kgv Target Version 7.7.0 => 7.8.0
2023-08-01 15:09 dpasukhi Target Version 7.8.0 => Unscheduled