Emissive component for PhongMaterial

Kevin Rushforth kevin.rushforth at oracle.com
Mon Apr 15 12:36:45 UTC 2019

A doubling of the number of shaders was what I was hoping you could 
avoid (else I question the value proposition of doing this). I haven't 
looked at the logic recently, but my thought when I initially replied 
was that you could use the "self-illum" shaders if either the self-illum 
map was non-null or the new emissive component was non-zero. You would 
probably need to pass in a pre-computed map of all 0s in the case where 
emissive is used, but self-illum map is not.

-- Kevin

On 4/13/2019 10:07 AM, Nir Lisker wrote:
> This might not be as simple as I thought. Even though adding the 
> self-illumination color naively works, I suspect I need to add new 
> blend modes for the combinations of the self-illumination color and 
> the map. That is, in D3DPhongShader.h, 'SelfIlllumTotal = 2' should be 
> replaced with an enum and get the same treatment the specular 
> component gets. This means the number of pixelShaders doubles and many 
> blending combinations (the ShaderFunction functions) are added, which 
> need to be generated via the build.gradle file.
> Is this correct?
> On Wed, Apr 10, 2019 at 1:54 PM Kevin Rushforth 
> <kevin.rushforth at oracle.com <mailto:kevin.rushforth at oracle.com>> wrote:
>     Hi Nir,
>     It seems like a straight-forward addition. On the one hand, an
>     application can use the self-illumination map to accomplish the same
>     thing. However, a separate emissive color does allow changing it
>     without
>     creating a new 1x1 image each time, and makes it possible to
>     combine a
>     self-illumination map with a modulating emissive color without
>     combining
>     the two in the application, so I can see it being a nice convenience.
>     Presuming there is no measurable performance hit, this seems fine
>     to me.
>     -- Kevin
>     On 4/10/2019 3:01 AM, Nir Lisker wrote:
>     > Hi Johan/Kevin,
>     >
>     > Iv'e submitted an issue for adding an emissive component to
>     PhongMaterial
>     > [1].
>     > This component is the single-color counterpart of the
>     self-illumination
>     > map. It functions the same way as diffuse color is to diffuse
>     map and
>     > specular color is to specular map.
>     > Emissive colors are used to simulate an object giving off light
>     since they
>     > do not interact with external lighting.
>     >
>     > Implementation will consist of simple changes to both 3D rendering
>     > pipelines.
>     >
>     > Please evaluate,
>     > Nir
>     >
>     > [1] https://bugs.openjdk.java.net/browse/JDK-8221720

More information about the openjfx-discuss mailing list