Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionLast revisionBoth sides next revision | ||
transparency [2020/01/09 09:35] – [Transparency] admin | transparency [2020/06/02 14:51] – [Order-Independent Rendering] admin | ||
---|---|---|---|
Line 12: | Line 12: | ||
[[https:// | [[https:// | ||
- | 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. | + | 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 |
+ | |||
+ | Many other methods also have their difficulties in incorrectness, | ||
+ | * Depth Peeling by A-Buffer | ||
+ | * Depth Peeling by linked lists | ||
+ | * Moment-Based OIT | ||
===== Order-Independent Rendering ===== | ===== Order-Independent Rendering ===== | ||
Line 26: | Line 31: | ||
FMX already provides the " | FMX already provides the " | ||
+ | {{youtube> | ||
==== Usage ==== | ==== Usage ==== | ||
Line 38: | Line 44: | ||
=== Transparency-Limit === | === Transparency-Limit === | ||
- | Weighted Blended Order-Independent Transparency do not know zero transparency colors. This means, if you expect a nearly not-transparent object to be renderedm, it may lead to overlay problems. Declare an object as " | + | Weighted Blended Order-Independent Transparency do not know zero transparency colors. This means, if you expect a nearly not-transparent object to be rendered, it may lead to overlay problems. Declare an object as " |
=== OpenGL Version === | === OpenGL Version === | ||
Line 50: | 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 |
=== Inheritance === | === Inheritance === | ||
Line 81: | Line 87: | ||
</ | </ | ||
+ | === Alternatives === | ||
+ | |||
+ | For many 3D FMX components we provide alternatives, | ||
+ | |||
+ | * TGorillaCube | ||
+ | * TGorillaSphere | ||
+ | * TGorillaCylinder | ||
+ | * TGorillaPlane | ||
+ | * TGorillaTextLayer3D (also optimized for android platform) | ||
+ | |||
+ | ==== Materials ==== | ||
+ | Besides component' | ||
+ | |||
+ | 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]] |