[x3d-public] KHR_materials_emissive_strength, building consensus support, and working towards X3D 4.1

Brutzman, Donald (Don) (CIV) brutzman at nps.edu
Fri Feb 10 08:08:56 PST 2023


[Similarly apologies for delayed response.]

The analysis sounds great and the image looks compelling - thanks for
sharing.  8)

Art of the possible, for all of us:

a. X3D 4.0 supports glTF 2.0 normatively.
b. Extensions are welcome, the X in X3D is Extensible.
c. It benefits authors and end users if browser support for extensions
proceed consistently.
d. This mailing list, X3D Working Group discussions, and Web3D Mantis Issue
Tracker provide a proven path for reaching consensus on X3D modeling
support and specification changes.
e. I will keep going on X3D 4.0 for a while until it ripples through all of
our other related specifications.
f. We do need one or two people to coordinate and lead efforts towards a
future X3D 4.1 - in other words, not me.

Again thanks for considering these excellent possibilities!

all the best, Don
-- 
Don Brutzman  Naval Postgraduate School, Code USW/Br        brutzman at nps.edu
Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA    +1.831.656.2149
X3D graphics, virtual worlds, Navy robotics https://
faculty.nps.edu/brutzman

-----Original Message-----
From: x3d-public <x3d-public-bounces at web3d.org> On Behalf Of Michalis
Kamburelis
Sent: Friday, February 10, 2023 5:03 AM
To: Holger Seelig <holger.seelig at yahoo.de>
Cc: X3D <x3d-public at web3d.org>
Subject: Re: [x3d-public] KHR_materials_emissive_strength

Sorry for delay with answering -- just getting back to my TODOs :)

In short: I agree it would be useful to express this in X3D. It makes sense
for HDR, when the colors you output don't need to fit in 0..1 range. It is
just a simple multiplier for emissive.

Notes:

1. glTF spec prohibits the use of it on unlit materials ("This extension
must not be used on a material that also uses KHR_materials_unlit."). In
your proposal, adding it to X3DOneSidedMaterialNode means that it is
available on X3D UnlitMaterial too.

    And I agree with your approach :) Let's make it simple, make it just
for X3DOneSidedMaterialNode. Adding emissiveStrength only to
PhysicalMaterial, or only to PhysicalMaterial and Material, would actually
make things harder to implement and understand.

2. Note that there's an alternative way of doing this, and this way
actually may work in a lot of existing browsers :) It will work in
CGE/view3dscene. Namely:

    An X3D implementation could support values > 1 in emissiveColor
(SFColor), even though X3D spec says that SFColor values should fit in
0..1. This means that converting glTF emissiveStrength to X3D -> you just
do "x3d.emissiveColor := glTF.emissiveStrength * glTF.emissiveFactor", and
it really achieves the same effect on screen. The equation on
https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com
%2FKhronosGroup%2FglTF%2Ftree%2Fmain%2Fextensions%2F2.0%2FKhronos%2FKHR_mate
rials_emissive_strength%23implementation-
notes&data=05%7C01%7Cbrutzman%40nps.edu%7C0796f57ed2634ec3e2ac08db0b674549%7
C6d936231a51740ea9199f7578963378e%7C0%7C0%7C638116310391535224%7CUnknown%7CT
WFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3
D%7C3000%7C%7C%7C&sdata=V%2Bgt2qDhrKXamHH8B9rdNFzoCWCpU0FpfACejxLU3Ew%3D&res
erved=0
to multiply is simple enough :)

   Though I would say this is a "hack". To support authoring tools,
splitting it into emissiveColor (with SFColor, with components limited to
0..1) and SFFloat emissiveStrength (0..unbounded) is better, having these 2
as independent parameters feels more useful for author.

To cut the log story short, I agree with adding
X3DOneSidedMaterialNode.emissiveStrength exactly as Holger suggests.

Regards,
Michalis

sob., 4 lut 2023 o 02:35 Holger Seelig <holger.seelig at yahoo.de> napisał(a):
>
glTF has an extension KHR_materials_emissive_strength:
https://github.com/KhronosGroup/glTF/tree/main/extensions/2.0/Khronos/KHR_ma
terials_emissive_strength
Test files and screenshot here:
https://github.com/KhronosGroup/glTF-Sample-
Models/tree/master/2.0/EmissiveStrengthTest
To implement this in X3D there is a need for a new field in
X3DOneSidedMaterialNode
X3DOneSidedMaterialNode {
  …
  SFFloat [in,out] emissiveStrength 1 [0, ∞)
}
It would be nice if we could add this.
Best regards,
Holger
>
> _______________________________________________
> x3d-public mailing list
> x3d-public at web3d.org
> http://web3d.org/mailman/listinfo/x3d-public_web3d.org

_______________________________________________
x3d-public mailing list
x3d-public at web3d.org
http://web3d.org/mailman/listinfo/x3d-public_web3d.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 5353 bytes
Desc: not available
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20230210/f414f595/attachment.p7s>


More information about the x3d-public mailing list