Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
transparency [2020/01/09 11:54] – [Components] admintransparency [2020/06/02 14:51] – [Order-Independent Rendering] admin
Line 12: Line 12:
 [[https://www.khronos.org/opengl/wiki/Transparency_Sorting]] [[https://www.khronos.org/opengl/wiki/Transparency_Sorting]]
  
-The result sometimes is correct, but in more complex scenery mostly incorrect, which some of you already found out by using multiple components of a TTextLayer3D. FMX renders artifacts if elements order is not correct, especially for intersected elements.+The result sometimes is correct, but in more complex scenery mostly incorrect, which some of you already found out by using multiple components of a TTextLayer3D. FMX renders artifacts or even hidden objects, if elements order is not correct, especially for intersected elements.
  
 Many other methods also have their difficulties in incorrectness, performance-costs, memory-usage or complexicity: Many other methods also have their difficulties in incorrectness, performance-costs, memory-usage or complexicity:
Line 31: Line 31:
 FMX already provides the "Opaque" property, but was not really used until now. FMX already provides the "Opaque" property, but was not really used until now.
  
 +{{youtube>5zXlZLWZeVk?medium}}
 ==== Usage ==== ==== Usage ====
  
Line 55: Line 56:
 Gorilla3D components are all able to handle the weighted blended order-independent transparency rendering, **but Delphi FMX objects are not**! Gorilla3D components are all able to handle the weighted blended order-independent transparency rendering, **but Delphi FMX objects are not**!
  
-Because there is no general way of intersecting FMX 3D components in rendering, we have to add to some code to **each translucent 3D component** used.+Because there is no general way of intersecting FMX 3D components in rendering, we have to add to some code to **each translucent FMX 3D component** used.
  
 === Inheritance === === Inheritance ===
Line 95: Line 96:
   * TGorillaPlane   * TGorillaPlane
   * TGorillaTextLayer3D (also optimized for android platform)   * TGorillaTextLayer3D (also optimized for android platform)
 +
 +==== Materials ====
 +Besides component's setting you'll need a material that outputs all necessary image information for compositing.
 +
 +Any extended material of TGorillaDefaultMaterial is able to write that data to the bound framebuffer object.
 +
 +You can of course write your own shader. But you'll need to write the compressed fragment color (RGBA) and the alpha 
 +value (R8) to separated Render targets.
 +
 +Next step: [[layer3d|2D FMX components]]