D3D pipeline possible inconsistencies
Nir Lisker
nlisker at gmail.com
Tue Apr 26 18:41:59 UTC 2022
I found a comment [1] on JBS stating that specular and self-Illumination
alphas should be ignored, so it seems like there's at least 2 bugs here
already.
https://bugs.openjdk.java.net/browse/JDK-8090548?focusedCommentId=13771150&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-13771150
On Tue, Apr 26, 2022 at 4:25 AM Nir Lisker <nlisker at gmail.com> wrote:
> Hi,
>
> Using the updated lighting test sample [1], I found some odd behavior with
> regards to PhongMaterial:
>
> 1. The effect of the opacity (alpha channel) of a self-illumination map is
> not documented, but lowering its value makes the object darker. I looked at
> the pixel shader [2] and only the rgb components are sampled, so I'm a bit
> confused here. What is the intended behavior?
>
> 2. The opacity of the object is controlled in the shader by both the
> diffuse color and diffuse map. This is also not documented (although it
> might be obvious for some). In the shader, the pixel (fragment) is
> discarded only if the map is fully transparent (line 55), but not the
> color. This leads to a situation where the object completely disappears
> when the map is transparent, but not when the color is. In the shader, the
> pixel should be transparent because of the multiplication of the alpha, but
> it's not, so this is also confusing. Should they both have the same
> contribution? Shouldn't it be valid to have a transparent diffuse but still
> have specular reflections?
>
> 3. The specular map and color behave differently in regards to the
> opacity. There is no documented behavior here. The alpha on the color is
> ignored (it's used for the specular power), but not on the map - it
> controls the reflection's strength, probably by making its color darker. In
> the shader, lines 76-84 indeed ignore the alpha of the color, but take the
> alpha of the map, although later in line 93 it's not used, so again I'm
> confused. What's the intended behavior?
>
> 4. The specular map and color also behave differently in regards to the
> reflection's strength. In the shader, this happens in line 78: the specular
> power is corrected with NTSC_Gray if there is a map (with or without
> color), but not if there's only a color. Shouldn't the contributions be the
> same? Is the NTSC_Gray correction correct in this case?
>
> Thanks,
> Nir
>
> [1] https://github.com/openjdk/jfx/pull/787
> [2]
> https://github.com/openjdk/jfx/blob/master/modules/javafx.graphics/src/main/native-prism-d3d/hlsl/Mtl1PS.hlsl
>
More information about the openjfx-dev
mailing list