MantisBT
Mantis Bug Tracker Workflow

View Issue Details Jump to Notes ] Related Changesets ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0027925Open CASCADE[OCCT] OCCT:Visualizationpublic2016-10-03 13:582018-11-14 15:26
Reporterkgv 
Assigned Tobugmaster 
PrioritynormalSeverityfeature 
StatusclosedResolutionfixed 
PlatformOSOS Version
Product Version 
Target Version[OCCT] 7.2.0Fixed in Version[OCCT] 7.2.0 
Summary0027925: Visualization - implement order-independent transparency algorithm within rasterization rendering
DescriptionFor the moment, only Ray-Tracing rendering core handles material transparency in order-independent way.

Traditional rasterization approach is not able to provide correct transparency in complex cases, because this is possible only by manual sorting of transparent objects.

It is proposed implementing one or several order-independent rendering techniques using traditional rasterization pipeline and GLSL programs, which should be compatible with and fast enough for desktop and mobile (OpenGL ES) platforms (and thus would be less expensive than RayTracing).

References to the known algorithms:
- Order-Independent Transparency using Linked Lists.
  https://habrahabr.ru/post/224003/ [^]
  http://on-demand.gputechconf.com/gtc/2014/presentations/S4385-order-independent-transparency-opengl.pdf [^]
- Depth Peeling / Reverse Depth Peeling / Dual Depth Peeling.
- Stencil Routed A-Buffer.
- Weighted Blended Order-Independent Transparency.
  http://jcgt.org/published/0002/02/09/ [^]
Steps To Reproducev3d transparency blend
v3d transparency highlight
TagsNo tags attached.
Test case numberv3d transparency blend, highlight
Attached Filespng file icon cpu_cooler_regular_order_msaa.png (77,126 bytes) 2017-01-25 15:29
png file icon cpu_cooler_oit_msaa.png (80,748 bytes) 2017-01-25 15:29
png file icon blend_blend_artifacts_unordered.png (50,493 bytes) 2017-04-25 13:14
png file icon blend_blend_artifacts_oit.png (52,977 bytes) 2017-04-25 13:14
png file icon blend_occlusion_unordered.png (47,598 bytes) 2017-04-25 13:14
png file icon blend_occlusion_oit_nodepth.png (55,120 bytes) 2017-04-25 13:15
png file icon blend_occlusion_oit.png (63,410 bytes) 2017-04-25 13:15
jpg file icon cadass_transp_normal.jpg (209,200 bytes) 2017-05-10 11:40
jpg file icon cadass_transp_oit_weight.jpg (207,447 bytes) 2017-05-10 11:41
jpg file icon cadass_transp_raytrace.jpg (201,514 bytes) 2017-05-10 11:41

- Relationships
parent of 0028760closedkgv Open CASCADE Visualization, TKOpenGl - avoid excessive frustum culling traverse within extra OIT rendering pass 
parent of 0028826closedmkv Open CASCADE Visualization, TKOpenGl - fix compatibility with strict OpenGL ES drivers 
parent of 0029051closedbugmaster Open CASCADE Visualization, TKOpenGl - wrong color of transparent dynamic highlight with OIT tuned ON 
parent of 0029477closedapn Open CASCADE Visualization, TKOpenGl - MSAA FBO initialization failure on OpenGL ES 3.2 device 
parent of 0029507closedapn Open CASCADE Visualization, TKOpenGl - uninitialized class field OpenGl_FrameBuffer::myIsOwnDepth 
parent of 0029509closedapn Open CASCADE Visualization, TKOpenGl - Weighted OIT + MSAA shader compilation errors 
parent of 0030374verifiedapn Open CASCADE Visualization, TKOpenGl - activate texture unit Graphic3d_TextureUnit_1 after OpenGl_LayerList::renderTransparent() 
has duplicate 0027716closedbugmaster Community Visualization - incorrect treatment of multiple transparent objects in 3D view 
has duplicate 0028155closedbugmaster Community Visual artefacts when setting transparency 
has duplicate 0028253closedbugmaster Community Incorrect treatment of transparency if a spline face overlaps itself in 3D view 
related to 0026062closedbugmaster Open CASCADE Visualization - implicitly increase priority of MeshVS_Mesh while setting transparency 
related to 0028400closedapn Open CASCADE Visualization, Graphic3d_MaterialAspect - remove undocumented and unsupported flag EnvReflexion() 
related to 0027527closedbugmaster Community Visualization - can't highlight polyline presentation of Wire after setting transparency 
related to 0029508closedapn Open CASCADE Visualization, TKOpenGl - visual artifacts on Adreno 305/308 

-  Notes
(0062468)
git (administrator)
2017-01-10 19:18

Branch CR27925 has been created by apl.

SHA-1: 34b39aa481c6a6d594eb372c0580eeae2f6d5417


Detailed log of new commits:

Author: apl
Date: Tue Jan 10 19:17:53 2017 +0300

    Prototype development and test: necessary code to enable Weighted-OIT algorithm
(0062490)
git (administrator)
2017-01-11 14:26

Branch CR27925 has been updated by apl.

SHA-1: 017ffecdf45c95553ee42c996054dd6cfe29f392


Detailed log of new commits:

Author: apl
Date: Wed Jan 11 14:26:46 2017 +0300

    Weighted OIT

(0062932)
git (administrator)
2017-01-24 11:53

Branch CR27925 has been updated by apl.

SHA-1: 1fbc9e3111e8ca2c1f1e0c902af48d84d33fcbcb


Detailed log of new commits:

Author: apl
Date: Tue Jan 24 11:52:47 2017 +0300

    Implemented processing of OIT layers

Author: apl
Date: Fri Jan 20 20:01:18 2017 +0300

    Deeper integration into TKOpenGl

Author: apl
Date: Thu Jan 19 19:18:26 2017 +0300

    Intermediate commit

(0062938)
git (administrator)
2017-01-24 13:10

Branch CR27925 has been updated by apl.

SHA-1: 4b8ce1bafd956178b880dbffbb324696074540c2


Detailed log of new commits:

Author: apl
Date: Tue Jan 24 13:09:50 2017 +0300

    Use same code-path for regular and OIT transparency draw

(0062941)
git (administrator)
2017-01-24 13:54

Branch CR27925 has been updated by apl.

SHA-1: 56bd15761a7efa8c4dc7d891a273d1309412baac


Detailed log of new commits:

Author: apl
Date: Tue Jan 24 13:54:02 2017 +0300

    Framebuffer color formats

(0062942)
git (administrator)
2017-01-24 14:05

Branch CR27925 has been updated by apl.

SHA-1: 3baed84a400abe2c03de960d5361a53ab8d00130


Detailed log of new commits:

Author: apl
Date: Tue Jan 24 14:04:51 2017 +0300

    FBO for vdump

(0062951)
git (administrator)
2017-01-24 15:51

Branch CR27925 has been updated by apl.

SHA-1: 98f8dbe7504d611c0a2b5673f6bab380b2648e3e


Detailed log of new commits:

Author: apl
Date: Tue Jan 24 15:51:47 2017 +0300

    Capping algorithm with OIT blending; Rewrite implementation of MRT OpenGl_Framebuffer.

(0062954)
git (administrator)
2017-01-24 16:10

Branch CR27925_1 has been created by apl.

SHA-1: b0aec3cebd2ce11224cf7bd48a71b9c8b8daf9b5


Detailed log of new commits:

Author: apl
Date: Tue Jan 24 16:09:52 2017 +0300

    Weighted, blended order-independent transparency
(0062962)
git (administrator)
2017-01-24 16:55

Branch CR27925_OCCT710 has been created by apl.

SHA-1: 6a0cd38c124a3b2b8f9fcf4c44ad82f9de5de84f


Detailed log of new commits:

Author: apl
Date: Tue Jan 24 16:54:40 2017 +0300

    Weighted, blended order-independent transparency
(0062977)
git (administrator)
2017-01-24 18:17

Branch CR27925_OCCT710 has been updated by apl.

SHA-1: 8b042e7ac631788a8d227e9125997f4005c9ca34


Detailed log of new commits:

Author: apl
Date: Tue Jan 24 18:17:09 2017 +0300

    Minor fix for regular transparency

(0062978)
git (administrator)
2017-01-24 18:51

Branch CR27925_1 has been updated by apl.

SHA-1: c80678d5e1aa5c46f253ce10b2a35f06a3618f6b


Detailed log of new commits:

Author: apl
Date: Tue Jan 24 18:17:09 2017 +0300

    Minor fix for regular transparency

(0063054)
git (administrator)
2017-01-25 19:48

Branch CR27925_1 has been updated by apl.

SHA-1: 12d186df8a6a383442d33a03e61f53503daf8dc5


Detailed log of new commits:

Author: apl
Date: Wed Jan 25 19:47:40 2017 +0300

    MSAA support

(0063108)
git (administrator)
2017-01-26 19:45

Branch CR27925_1 has been updated by apl.

SHA-1: d92913d1db31ab135749f7a7e50aff775139a429


Detailed log of new commits:

Author: apl
Date: Thu Jan 26 19:45:44 2017 +0300

    OIT variables for custom shaders

Author: apl
Date: Thu Jan 26 15:40:46 2017 +0300

    - Transparency does not change priority
    - Controlling OIT enable flag from DRAW

(0063152)
git (administrator)
2017-01-27 18:30

Branch CR27925_1 has been updated by apl.

SHA-1: 9d2de06cac9f7ffd495bb5e6df6f4337e4cc5aa9


Detailed log of new commits:

Author: apl
Date: Fri Jan 27 17:40:29 2017 +0300

    Fixed problem with use of environment texture

(0063469)
git (administrator)
2017-02-06 20:20

Branch CR27925_1 has been updated by apl.

SHA-1: 840b4e9799305c43c199fa7c19466d3113f49a8b


Detailed log of new commits:

Author: apl
Date: Mon Feb 6 20:20:44 2017 +0300

    OpenGL ES 2.0/3.0 support

(0063742)
git (administrator)
2017-02-09 19:35

Branch CR27925_1 has been updated forcibly by apl.

SHA-1: 00f28c7975379e7d98c26f267952fffde2b543dc
(0063751)
git (administrator)
2017-02-10 17:29

Branch CR27925_1 has been updated forcibly by apl.

SHA-1: cb43c533756945f0f2da45f4770e7c651a74d7fa
(0063779)
kgv (developer)
2017-02-13 19:18

--- a/src/AIS/AIS_Shape.cxx
+++ b/src/AIS/AIS_Shape.cxx
-    aPrs->SetDisplayPriority (10); // force highest priority for translucent objects

Prbably worth mentioning in upgrade guide...

+  Standard_ASSERT_RETURN (Functions()->glDrawBuffers != NULL,

Better using myFuncs instead of Functions().

+    else if (aDrawBuffer != GL_NONE)
+    {
+      myDrawBuffers.SetValue (anI, aDrawBuffer);
+    }

What will be the meaning of GL_NONE in-between?
Should loop beeing broken on GL_NONE occurrence?

+  Functions()->glDrawBuffers (theNb, (const GLenum*)theDrawBuffers);

At least static assert should be added to ensure that types match size.

+  const Standard_Boolean hasDrawBuffersExt = (IsGlGreaterEqual (3, 0) || CheckExtension ("GL_EXT_draw_buffers"))

+                                          && FindProc ("glDrawBuffersEXT", myFuncs->glDrawBuffers);


It is possible that driver supports 3.0 but not extension - the function will not exist in this case.

+  bool                   myIsOwnDepth;          //!< flag indicating that FBO should be deallocated 
by this class

Incorrect description.

+    static const Standard_Integer aDrawBuffers[3] = { GL_COLOR_ATTACHMENT0, GL_COLOR_ATTACHMENT1 };


It is better initializing 3rd value explicitly.

+Standard_Boolean OpenGl_LayerList::OpenGl_OpaqueFilter::ShouldRender
...
+  {
+    const OpenGl_AspectFace* anAspect = theWorkspace->ApplyAspectFace();

Is it really expected to apply aspect here?

+      if (myStackSpace)

Please use IsNull() explicitly.

+    NCollection_Handle<NCollection_Array1<const OpenGl_Layer*> > myStackSpace;

NCollection_Shared is preferred, when applicable.

+        while (true) // seemly responding to driver limitation (GL_FRAMEBUFFER_UNSUPPORTED)

Please use "for (;;)" instead (there will be warnings on some compilers).

+  "  #if (GL_ES && GL_EXT_draw_buffers) || (GL_ARB_draw_buffers)\n"

Is it valid GLSL preprocessor syntax to not check if macros was defined?

+OpenGl_LayerList::renderTransparent()
+  theWorkspace->SetRenderFilter (myRenderTranspFilter);

Within current state, the transparent objects are processed twice - within opaque objects (skipped) and then within transparent objects (actually rendered).
This logic is managed by element filters - this implies some additional penalty for processing structures multiple times even within skipping pass for computing matrix and clipping states.
It might be better extending filter interface to skip entire OpenGl_Structure, when possible.
(0063859)
git (administrator)
2017-02-17 00:05

Branch CR27925_OCCT710 has been updated forcibly by apl.

SHA-1: ace6916cafef6b9601631ac7bfae45edbbe3d8be
(0065268)
git (administrator)
2017-04-17 18:02

Branch CR27925_2 has been created by apl.

SHA-1: b07c6a59f91d78acf1b87266a6bea44f4aa5d373


Detailed log of new commits:

Author: apl
Date: Mon Apr 17 18:01:28 2017 +0300

    0027925: Visualization - implement order-independent transparency algorithm within rasterization rendering
    
    The weighted, blended order-independent transparency algorithm has been added rasterization pipeline.
    It requires shaders, multiple render targets extension and floating point texture format.
    Patch does not modify API and does not require porting - it adds new rendering options (vrenderparams):
    - OIT-enabling flag and,
    - Scalar factor [0-1] controlling influence of a fragment's depth to its visibility.
    The feature supports MSAA, OpenGL ES 2.0, ES 3.0 and ANGLE.
    
    The usage rules for default transparency algorithm become simpler - rendering priority of transparent graphical
    structures is managed automatically, therefore no need to change it application side.
(0065499)
git (administrator)
2017-04-25 13:09

Branch CR27925_2 has been updated forcibly by apl.

SHA-1: bde728c64d74f61678b1830d7207ec97abe5d58b
(0065500)
git (administrator)
2017-04-25 13:12

Branch CR27925_2 has been updated forcibly by apl.

SHA-1: 1aff380167df72d41ef60df6040224c6c38480cd
(0065501)
apl (developer)
2017-04-25 13:12

Dear Kirill,

Patch is ready for review in "CR27925_2" branch.
(0065512)
git (administrator)
2017-04-25 15:10

Branch CR27925_2 has been updated forcibly by apl.

SHA-1: 023e579597139e47b02f64224107b20cc6db2056
(0065521)
git (administrator)
2017-04-25 18:18

Branch CR27925_2 has been updated by kgv.

SHA-1: 041e5b7330b2b7232d24523002d5f3a701b07a4e


Detailed log of new commits:

Author: kgv
Date: Tue Apr 25 18:18:45 2017 +0300

    cosmetics

(0065522)
kgv (developer)
2017-04-25 18:20
edited on: 2017-04-25 18:20

Could you please check that changes in src/Shaders/Declarations.glsl has been pushed to branch?

(0065531)
kgv (developer)
2017-04-26 10:38
edited on: 2017-04-26 10:40

+#if defined(GL_ES_VERSION_2_0)
+  if (CheckExtension ("GL_ARB_color_buffer_float"))
+#else
+  if (IsGlGreaterEqual (3, 0) || CheckExtension ("GL_ARB_color_buffer_float"))
+#endif
+  {
+    hasFloatBuffer     = Standard_True;
+    hasHalfFloatBuffer = Standard_True;
+  }
+  else
+  {
+    hasFloatBuffer     = CheckExtension ("GL_EXT_color_buffer_float");
+    hasHalfFloatBuffer = CheckExtension ("GL_EXT_color_buffer_half_float");
+  }

GL_ARB_color_buffer_float is not defined for OpenGL ES and there are no known implementations pretending to support it.
In contrast to - GL_EXT_color_buffer_float and GL_EXT_color_buffer_half_float are defined only for OpenGL ES, no use to check them on desktop.

Please also add check for OpenGL ES 3.2, introduces renderable float formats in core
(but only 16-bit float formats are required to support texture filtering - it might be need to be protected from using within Graphic3d_RenderingParams::RenderResolutionScale != 1.0f
relying on linear texture filtering).

(0065532)
kgv (developer)
2017-04-26 10:47

+Standard_Boolean OpenGl_View::checkOitCompatibility (const Handle(OpenGl_Context)& theGlContext,

+                                                     const Standard_Boolean theMSAA)

Please add new query items for OpenGl_GraphicDriver::InquireLimit(), so that application will be check in advance if OIT can be enabled or not on hardware.
(0065534)
git (administrator)
2017-04-26 11:13

Branch CR27925_2 has been updated by apl.

SHA-1: eb8c32fedc8c9a8a89c576a9ba802ea79918bb5a


Detailed log of new commits:

Author: apl
Date: Wed Apr 26 10:32:21 2017 +0300

    remarks from kgv

(0065542)
git (administrator)
2017-04-26 12:15

Branch CR27925_2 has been updated by apl.

SHA-1: 537168094caaea237ebdb5367505ab088dac1bf2


Detailed log of new commits:

Author: apl
Date: Wed Apr 26 12:15:20 2017 +0300

    Extended status of Gl feature availability

(0065547)
git (administrator)
2017-04-26 14:00

Branch CR27925_2 has been updated forcibly by apl.

SHA-1: bcebce3cf06fd19b2243d9068437fd36a0337f90
(0065550)
kgv (developer)
2017-04-26 14:03

Please test the patch.
(0065589)
mkv (tester)
2017-04-27 11:35

Dear BugMaster,
Branch CR27925_2 from occt git-repository (and master from products git-repository) was compiled on Linux, MacOS and Windows platforms on Release mode.
SHA-1: bcebce3cf06fd19b2243d9068437fd36a0337f90

There are compilation errors on Windows platform:
http://jenkins-test-07.nnov.opencascade.com:8080/view/CR27925_2-master/job/CR27925_2-master-OCCT-Windows-64-VC10-opt-compile/1/parsed_console/ [^]

34> RWStepShape_RWSolidReplica.cxx
44>..\..\..\src\D3DHost\D3DHost_FrameBuffer.cxx(197): error C2065: 'myColorTexture' : undeclared identifier
44>..\..\..\src\D3DHost\D3DHost_FrameBuffer.cxx(197): error C2227: left of '->Release' must point to class/struct/union/generic type
44> type is ''unknown-type''

.....

1> D3DHost_FrameBuffer.cxx
1>..\..\..\src\D3DHost\D3DHost_FrameBuffer.cxx(197): error C2065: 'myColorTexture' : undeclared identifier
1>..\..\..\src\D3DHost\D3DHost_FrameBuffer.cxx(197): error C2227: left of '->Release' must point to class/struct/union/generic type
1> type is ''unknown-type''
(0065624)
kgv (developer)
2017-04-27 17:37

Within the following test case the shaded dynamic highlighting does not work correctly:
pload MODELING VISUALIZATION
psphere s 1
vclear
vinit View1
vdisplay -dispMode 1 s
vfit
vsettransp s 0.5
vrenderparams -oit 0
vselprops dynHighlight -dispMode -1
vmoveto 250 250
(0065632)
git (administrator)
2017-04-28 10:12

Branch CR27925_2 has been updated by apl.

SHA-1: 6542f694b788dd93f348d948ce742906f762f1e0


Detailed log of new commits:

Author: apl
Date: Fri Apr 28 10:12:00 2017 +0300

    Handle HighlightStyle in transparency

(0065633)
git (administrator)
2017-04-28 10:16

Branch CR27925_2 has been updated by apl.

SHA-1: 493ef47743b0b84f709e28a20c4ff552cca114a9


Detailed log of new commits:

Author: apl
Date: Fri Apr 28 10:15:51 2017 +0300

    remarks

(0065657)
git (administrator)
2017-05-01 20:04

Branch CR27925_2 has been updated forcibly by apl.

SHA-1: ae47f6bfc2bfe9c87f21bdc186863e8fd2dac25f
(0065673)
git (administrator)
2017-05-02 11:44

Branch CR27925_2 has been updated forcibly by apl.

SHA-1: 8d841b963d4681fb69ebf2e116c214d98221d093
(0065674)
apl (developer)
2017-05-02 11:45

1) D3D compilation fixed
2) Shading highlight issue fixed

Please review branch CR27925_2
(0065675)
kgv (developer)
2017-05-02 11:47

Please test the patch.
(0065687)
mkv (tester)
2017-05-02 19:49

Dear BugMaster,
Branch CR27925_2 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: 8d841b963d4681fb69ebf2e116c214d98221d093

Number of compiler warnings:

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

products component :
Linux: 64 (64 on master)
Windows: 0 (0 on master)
MacOS : 1203

Regressions/Differences/Improvements:
No regressions/differences

Testing cases:
http://occt-tests/CR27925_2-master-OCCT/Debian70-64/v3d/transparency/blend.html [^]
http://occt-tests/CR27925_2-master-OCCT/Windows-64-VC10/v3d/transparency/blend.html [^]
v3d transparency blend: OK
http://occt-tests/CR27925_2-master-OCCT/Debian70-64/v3d/transparency/highlight.html [^]
http://occt-tests/CR27925_2-master-OCCT/Windows-64-VC10/v3d/transparency/highlight.html [^]
v3d transparency highlight: OK

Testing on Linux:
occt component :
Total MEMORY difference: 91972214 / 91154015 [+0.90%]
Total CPU difference: 19116.420000000406 / 18823.770000000273 [+1.55%]
products component :
Total MEMORY difference: 30035367 / 30192494 [-0.52%]
Total CPU difference: 5199.859999999974 / 5085.359999999965 [+2.25%]
Testing on Windows:
occt component :
Total MEMORY difference: 58417846 / 58212722 [+0.35%]
Total CPU difference: 17792.27285229875 / 17248.7497681988 [+3.15%]
products component :
Total MEMORY difference: 22693794 / 22640194 [+0.24%]
Total CPU difference: 5304.002799799965 / 5324.158128999971 [-0.38%]

There are following differences in images found by testdiff.
http://occt-tests/CR27925_2-master-OCCT/Debian70-64/diff-Debian70-64.html [^]
http://occt-tests/CR27925_2-master-OCCT/Windows-64-VC10/diff-Windows-64-VC10-image.html [^]
IMAGE v3d materials bug24872_1: bug24872_1.png differs
(0065688)
git (administrator)
2017-05-02 19:49

Branch CR27925_2 has been updated by mkv.

SHA-1: b913bcdb2893b6ae891aefed04c10f3a6c555311


Detailed log of new commits:

Author: mkv
Date: Tue May 2 19:42:08 2017 +0300

    // Small correction of test case for issue CR27925

(0065689)
mkv (tester)
2017-05-02 19:50

Dear apl,
Branch CR27925_2 has been rejected due to:
- differences in images
(0065690)
kgv (developer)
2017-05-02 19:55

The image difference is OK.
(0065706)
mkv (tester)
2017-05-03 14:53

Dear BugMaster,
Branch CR27925_2 is TESTED.
(0065884)
git (administrator)
2017-05-12 11:35

Branch CR27925 has been deleted by kgv.

SHA-1: 98f8dbe7504d611c0a2b5673f6bab380b2648e3e
(0065885)
git (administrator)
2017-05-12 11:35

Branch CR27925_1 has been deleted by kgv.

SHA-1: cb43c533756945f0f2da45f4770e7c651a74d7fa
(0065886)
git (administrator)
2017-05-12 11:35

Branch CR27925_2 has been deleted by kgv.

SHA-1: b913bcdb2893b6ae891aefed04c10f3a6c555311

- Related Changesets
occt: master a1073ae2
Timestamp: 2017-04-25 12:10:15
Author: apl
Committer: bugmaster
Details ] Diff ]
0027925: Visualization - implement order-independent transparency algorithm within rasterization rendering

Weighted, Blended Order-Independent Transparency algorithm has been added rasterization pipeline.
In contrast to classical blending transparency it makes transparent objects look independent
from point of view. It also gives better depth occlusion when being used together with a weight factor
based on value of a GL depth buffer. The feature supports desktop OpenGL, OpenGL ES 3.0, ANGLE
and can be used together with MSAA on desktop GL.

To be used it require availability of:
1) Shaders pipeline.
2) Floating point color format for framebuffer (GL_ARB_color_buffer_float).
3) Multiple render targets (GL_ARB_draw_buffers).

Patch does not modify API and does not require application porting.
It adds new rendering options to Graphic3d_RenderingParams structure:
a) Transparency method from enumeration.
b) Scalar factor [0-1] controlling influence of a fragment's depth to its visibility.

Patch also simplifies processing of transparent objects for standard method:
rendering priority of transparent graphical structures is managed automatically,
therefore there is no need to care about it at application's side.
mod - src/AIS/AIS_Shape.cxx Diff ] File ]
mod - src/AIS/AIS_Triangulation.cxx Diff ] File ]
mod - src/D3DHost/D3DHost_FrameBuffer.cxx Diff ] File ]
mod - src/Graphic3d/FILES Diff ] File ]
mod - src/Graphic3d/Graphic3d_RenderingParams.hxx Diff ] File ]
add - src/Graphic3d/Graphic3d_RenderTransparentMethod.hxx Diff ] File ]
mod - src/Graphic3d/Graphic3d_TypeOfLimit.hxx Diff ] File ]
mod - src/OpenGl/OpenGl_CappingAlgo.cxx Diff ] File ]
mod - src/OpenGl/OpenGl_CappingAlgo.hxx Diff ] File ]
mod - src/OpenGl/OpenGl_Context.cxx Diff ] File ]
mod - src/OpenGl/OpenGl_Context.hxx Diff ] File ]
mod - src/OpenGl/OpenGl_Element.hxx Diff ] File ]
mod - src/OpenGl/OpenGl_FrameBuffer.cxx Diff ] File ]
mod - src/OpenGl/OpenGl_FrameBuffer.hxx Diff ] File ]
mod - src/OpenGl/OpenGl_GlFunctions.hxx Diff ] File ]
mod - src/OpenGl/OpenGl_GraphicDriver.cxx Diff ] File ]
mod - src/OpenGl/OpenGl_Layer.cxx Diff ] File ]
mod - src/OpenGl/OpenGl_LayerList.cxx Diff ] File ]
mod - src/OpenGl/OpenGl_LayerList.hxx Diff ] File ]
mod - src/OpenGl/OpenGl_PrimitiveArray.hxx Diff ] File ]
mod - src/OpenGl/OpenGl_RenderFilter.hxx Diff ] File ]
mod - src/OpenGl/OpenGl_SetOfShaderPrograms.hxx Diff ] File ]
mod - src/OpenGl/OpenGl_ShaderManager.cxx Diff ] File ]
mod - src/OpenGl/OpenGl_ShaderManager.hxx Diff ] File ]
mod - src/OpenGl/OpenGl_ShaderProgram.cxx Diff ] File ]
mod - src/OpenGl/OpenGl_ShaderProgram.hxx Diff ] File ]
mod - src/OpenGl/OpenGl_ShaderStates.hxx Diff ] File ]
mod - src/OpenGl/OpenGl_Texture.cxx Diff ] File ]
mod - src/OpenGl/OpenGl_View.cxx Diff ] File ]
mod - src/OpenGl/OpenGl_View.hxx Diff ] File ]
mod - src/OpenGl/OpenGl_View_Redraw.cxx Diff ] File ]
mod - src/OpenGl/OpenGl_Workspace.cxx Diff ] File ]
mod - src/OpenGl/OpenGl_Workspace.hxx Diff ] File ]
mod - src/Shaders/Declarations.glsl Diff ] File ]
mod - src/Shaders/PhongShading.fs Diff ] File ]
mod - src/Shaders/Shaders_Declarations_glsl.pxx Diff ] File ]
mod - src/ViewerTest/ViewerTest_ViewerCommands.cxx Diff ] File ]
add - tests/v3d/transparency/begin Diff ] File ]
add - tests/v3d/transparency/blend Diff ] File ]
add - tests/v3d/transparency/highlight Diff ] File ]

- Issue History
Date Modified Username Field Change
2016-10-03 13:58 kgv New Issue
2016-10-03 13:58 kgv Assigned To => kgv
2016-10-03 14:06 kgv File Added: transp_raster_rand_KO.png
2016-10-03 14:07 kgv File Added: transp_raytrace_OK.png
2016-10-03 14:07 kgv File Deleted: transp_raytrace_OK.png
2016-10-03 14:07 kgv File Added: transp_raster_sorted.png
2016-10-03 14:07 kgv File Added: transp_raytrace_OK.png
2016-10-03 14:08 kgv Relationship added related to 0027716
2016-10-03 14:10 kgv Description Updated View Revisions
2016-10-03 14:13 kgv Description Updated View Revisions
2016-10-03 15:50 san Description Updated View Revisions
2016-10-13 12:44 kgv Relationship added related to 0026062
2016-10-25 09:25 kgv Target Version 7.1.0 => 7.2.0
2016-11-25 16:56 kgv Relationship added has duplicate 0028155
2016-12-20 16:32 kgv Relationship added has duplicate 0028253
2017-01-09 11:48 kgv Assigned To kgv => apl
2017-01-09 11:48 kgv Status new => assigned
2017-01-10 19:18 git Note Added: 0062468
2017-01-11 14:26 git Note Added: 0062490
2017-01-24 11:53 git Note Added: 0062932
2017-01-24 13:10 git Note Added: 0062938
2017-01-24 13:54 git Note Added: 0062941
2017-01-24 14:05 git Note Added: 0062942
2017-01-24 15:51 git Note Added: 0062951
2017-01-24 16:10 git Note Added: 0062954
2017-01-24 16:55 git Note Added: 0062962
2017-01-24 18:17 git Note Added: 0062977
2017-01-24 18:51 git Note Added: 0062978
2017-01-25 15:29 apl File Added: cpu_cooler_regular_order_msaa.png
2017-01-25 15:29 apl File Added: cpu_cooler_oit_msaa.png
2017-01-25 19:48 git Note Added: 0063054
2017-01-26 19:45 git Note Added: 0063108
2017-01-27 18:17 kgv Relationship added related to 0028400
2017-01-27 18:30 git Note Added: 0063152
2017-02-06 20:20 git Note Added: 0063469
2017-02-07 11:20 kgv Relationship added related to 0027527
2017-02-09 19:35 git Note Added: 0063742
2017-02-10 17:29 git Note Added: 0063751
2017-02-13 19:18 kgv Note Added: 0063779
2017-02-17 00:05 git Note Added: 0063859
2017-04-17 18:02 git Note Added: 0065268
2017-04-25 13:09 git Note Added: 0065499
2017-04-25 13:12 git Note Added: 0065500
2017-04-25 13:12 apl Note Added: 0065501
2017-04-25 13:12 apl Assigned To apl => kgv
2017-04-25 13:12 apl Status assigned => resolved
2017-04-25 13:12 apl Steps to Reproduce Updated View Revisions
2017-04-25 13:14 apl File Added: blend_blend_artifacts_unordered.png
2017-04-25 13:14 apl File Added: blend_blend_artifacts_oit.png
2017-04-25 13:14 apl File Added: blend_occlusion_unordered.png
2017-04-25 13:15 apl File Added: blend_occlusion_oit_nodepth.png
2017-04-25 13:15 apl File Added: blend_occlusion_oit.png
2017-04-25 15:10 git Note Added: 0065512
2017-04-25 18:18 git Note Added: 0065521
2017-04-25 18:20 kgv Note Added: 0065522
2017-04-25 18:20 kgv Assigned To kgv => apl
2017-04-25 18:20 kgv Status resolved => assigned
2017-04-25 18:20 kgv Note Edited: 0065522 View Revisions
2017-04-26 10:38 kgv Note Added: 0065531
2017-04-26 10:39 kgv Note Edited: 0065531 View Revisions
2017-04-26 10:40 kgv Note Edited: 0065531 View Revisions
2017-04-26 10:40 kgv Note Edited: 0065531 View Revisions
2017-04-26 10:40 kgv Note Edited: 0065531 View Revisions
2017-04-26 10:47 kgv Note Added: 0065532
2017-04-26 11:13 git Note Added: 0065534
2017-04-26 12:15 git Note Added: 0065542
2017-04-26 14:00 git Note Added: 0065547
2017-04-26 14:03 kgv Note Added: 0065550
2017-04-26 14:03 kgv Assigned To apl => bugmaster
2017-04-26 14:03 kgv Status assigned => resolved
2017-04-26 14:03 kgv Status resolved => reviewed
2017-04-26 14:45 mkv Assigned To bugmaster => mkv
2017-04-27 11:35 mkv Note Added: 0065589
2017-04-27 11:35 mkv Assigned To mkv => apl
2017-04-27 11:35 mkv Status reviewed => assigned
2017-04-27 17:37 kgv Note Added: 0065624
2017-04-28 10:12 git Note Added: 0065632
2017-04-28 10:16 git Note Added: 0065633
2017-05-01 20:04 git Note Added: 0065657
2017-05-02 11:44 git Note Added: 0065673
2017-05-02 11:45 apl Note Added: 0065674
2017-05-02 11:45 apl Assigned To apl => kgv
2017-05-02 11:45 apl Status assigned => resolved
2017-05-02 11:45 apl Steps to Reproduce Updated View Revisions
2017-05-02 11:47 kgv Note Added: 0065675
2017-05-02 11:47 kgv Assigned To kgv => bugmaster
2017-05-02 11:47 kgv Status resolved => reviewed
2017-05-02 12:10 mkv Assigned To bugmaster => mkv
2017-05-02 19:49 mkv Note Added: 0065687
2017-05-02 19:49 git Note Added: 0065688
2017-05-02 19:50 mkv Note Added: 0065689
2017-05-02 19:50 mkv Assigned To mkv => apl
2017-05-02 19:50 mkv Status reviewed => feedback
2017-05-02 19:50 mkv Test case number => v3d transparency blend, highlight
2017-05-02 19:55 kgv Note Added: 0065690
2017-05-02 19:55 kgv Assigned To apl => bugmaster
2017-05-03 14:53 mkv Note Added: 0065706
2017-05-03 14:53 mkv Status feedback => tested
2017-05-05 13:34 bugmaster Changeset attached => occt master a1073ae2
2017-05-05 13:34 bugmaster Status tested => verified
2017-05-05 13:34 bugmaster Resolution open => fixed
2017-05-10 11:40 kgv File Added: cadass_transp_normal.jpg
2017-05-10 11:41 kgv File Added: cadass_transp_oit_weight.jpg
2017-05-10 11:41 kgv File Added: cadass_transp_raytrace.jpg
2017-05-12 11:35 git Note Added: 0065884
2017-05-12 11:35 git Note Added: 0065885
2017-05-12 11:35 git Note Added: 0065886
2017-05-19 11:04 kgv Relationship added parent of 0028760
2017-06-08 10:22 kgv Relationship added parent of 0028826
2017-08-16 08:55 kgv File Deleted: transp_raster_rand_KO.png
2017-08-16 08:55 kgv File Deleted: transp_raster_sorted.png
2017-08-16 08:56 kgv File Deleted: transp_raytrace_OK.png
2017-08-16 09:48 bugmaster Project Internal => Open CASCADE
2017-08-25 15:42 kgv Relationship added parent of 0029051
2017-09-29 16:17 user533 Fixed in Version => 7.2.0
2017-09-29 16:29 user533 Status verified => closed
2018-02-02 20:36 kgv Relationship added parent of 0029477
2018-02-14 12:43 kgv Relationship added parent of 0029507
2018-02-14 15:03 kgv Relationship added related to 0029508
2018-02-14 23:05 kgv Relationship added parent of 0029509
2018-03-13 14:41 kgv Relationship replaced has duplicate 0027716
2018-06-15 19:41 kgv Relationship added parent of 0029874
2018-11-14 15:26 kgv Relationship added parent of 0030374


Copyright © 2000 - 2018 MantisBT Team
Powered by Mantis Bugtracker