<div dir="ltr">I never said I disagree with "cutOffAngle > beamWidth" :) The "cutOffAngle > beamWidth" is a completely valid state. It means you have a smooth falloff at the edge of spot light. Makes sense.<br><br>I said I disagree with your statement that "Thus default values need to have cutOffAngle > beamWidth."<br><br>Because, to be clear, both "cutOffAngle > beamWidth" and "cutOffAngle < beamWidth" (and equal too) are valid states. X3D specification, all versions, explicitly allows that. The equation for calculating "multiplier" at SpotLight was made to work in all cases, and the SpotLight text has even explicit prose to explain that: "If the beamWidth is greater than the cutOffAngle....".<br><br>What I'm saying is that the defaults in VRML 97 / X3D 3.0-3.2 were better than defaults in X3D 3.3-4.0draft. The new defaults specify a very wide spot light, 180 degrees total (lights half of 3D space), which is not consistent with any other software / format (glTF or Blender or Unity). Everyone has smaller default cutOffAngle (whatever it is called).<br><br>The old defaults were not "forever broken". On the contrary, they were correct, working, and more natural than the defaults after change in X3D 3.3. And the diagram at SpotLight was (and still is) correct too, no need to change that.<br><br>To be clear, neither situation (VRML 97 / X3D 3.0-3.2 or X3D 3.3-4.0) is equivalent at all to glTF. To be consistent with glTF, the closest thing would be<br><br>- cutOffAngle pi/4<br>- beamWidth 0<br><br>... except it does not work as nicely in X3D, because X3D SpotLight falloff is linear, while glTF punctual lights have more interesting smooth equation.<br><br>So I do not push to make X3D SpotLight precisely equal to glTF SpotLight defaults. This would require even more changes. I'm just arguing for a simpler change, to return to the (correct and more reasonable IMHO) SpotLight defaults we had in VRML 97 / X3D 3.0-3.2.<br><div><br></div><div>Indeed it seems we're going in circles, not reaching full understanding :) I'm happy to explain better at the call, I can join this Friday. I would appreciate if you can send me a calendar invite, so that I will not mixup the timezones/dst etc. :) I don't see Friday meetings in <a href="https://www.web3d.org/calendar">https://www.web3d.org/calendar</a> .</div><div><br></div><div>Regards,</div><div>Michalis<br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">pon., 14 lut 2022 o 16:14 Brutzman, Donald (Don) (CIV) <<a href="mailto:brutzman@nps.edu">brutzman@nps.edu</a>> napisał(a):<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div style="overflow-wrap: break-word;" lang="EN-US"><div class="gmail-m_-6202839973258419120WordSection1"><p class="gmail-m_-6202839973258419120MsoPlainText">Thanks for continued analysis.<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText"><u></u> <u></u></p><div style="border-color:currentcolor currentcolor windowtext;border-style:none none solid;border-width:medium medium 1.5pt;padding:0in 0in 1pt"><p class="gmail-m_-6202839973258419120MsoPlainText" style="border:medium none;padding:0in">I like the clearer field names in glTF reference that you provided:<u></u><u></u></p></div><table style="background:white none repeat scroll 0% 0%;border-collapse:collapse" cellspacing="0" cellpadding="0" border="0"><thead><tr><td style="padding:4.5pt 9.75pt"><p class="MsoNormal" style="margin-bottom:12pt"><b><span style="font-size:12pt;font-family:"Segoe UI",sans-serif;color:rgb(36,41,47)">Property<u></u><u></u></span></b></p></td><td style="padding:4.5pt 9.75pt"><p class="MsoNormal" style="margin-bottom:12pt"><b><span style="font-size:12pt;font-family:"Segoe UI",sans-serif;color:rgb(36,41,47)">Description<u></u><u></u></span></b></p></td><td style="padding:4.5pt 9.75pt"><p class="MsoNormal" style="margin-bottom:12pt"><b><span style="font-size:12pt;font-family:"Segoe UI",sans-serif;color:rgb(36,41,47)">Required<u></u><u></u></span></b></p></td></tr></thead><tbody><tr><td style="padding:4.5pt 9.75pt"><p class="MsoNormal"><span style="font-size:10pt;font-family:Consolas;color:rgb(36,41,47)">innerConeAngle</span><span style="font-size:12pt;font-family:"Segoe UI",sans-serif;color:rgb(36,41,47)"><u></u><u></u></span></p></td><td style="padding:4.5pt 9.75pt"><p class="MsoNormal"><span style="font-size:12pt;font-family:"Segoe UI",sans-serif;color:rgb(36,41,47)">Angle, in radians, from centre of spotlight where falloff begins. Must be greater than or equal to </span><span style="font-size:10pt;font-family:Consolas;color:rgb(36,41,47)">0</span><span style="font-size:12pt;font-family:"Segoe UI",sans-serif;color:rgb(36,41,47)"> and less than </span><span style="font-size:10pt;font-family:Consolas;color:rgb(36,41,47)">outerConeAngle</span><span style="font-size:12pt;font-family:"Segoe UI",sans-serif;color:rgb(36,41,47)">.<u></u><u></u></span></p></td><td style="padding:4.5pt 9.75pt"><p class="MsoNormal"><span style="font-size:12pt;font-family:"Segoe UI",sans-serif;color:rgb(36,41,47)">No, Default: </span><span style="font-size:10pt;font-family:Consolas;color:rgb(36,41,47)">0</span><span style="font-size:12pt;font-family:"Segoe UI",sans-serif;color:rgb(36,41,47)"><u></u><u></u></span></p></td></tr><tr><td style="padding:4.5pt 9.75pt"><p class="MsoNormal"><span style="font-size:10pt;font-family:Consolas;color:rgb(36,41,47)">outerConeAngle</span><span style="font-size:12pt;font-family:"Segoe UI",sans-serif;color:rgb(36,41,47)"><u></u><u></u></span></p></td><td style="padding:4.5pt 9.75pt"><p class="MsoNormal"><span style="font-size:12pt;font-family:"Segoe UI",sans-serif;color:rgb(36,41,47)">Angle, in radians, from centre of spotlight where falloff ends. Must be greater than </span><span style="font-size:10pt;font-family:Consolas;color:rgb(36,41,47)">innerConeAngle</span><span style="font-size:12pt;font-family:"Segoe UI",sans-serif;color:rgb(36,41,47)"> and less than or equal to </span><span style="font-size:10pt;font-family:Consolas;color:rgb(36,41,47)">PI / 2.0</span><span style="font-size:12pt;font-family:"Segoe UI",sans-serif;color:rgb(36,41,47)">.<u></u><u></u></span></p></td><td style="padding:4.5pt 9.75pt"><p class="MsoNormal"><span style="font-size:12pt;font-family:"Segoe UI",sans-serif;color:rgb(36,41,47)">No, Default: </span><span style="font-size:10pt;font-family:Consolas;color:rgb(36,41,47)">PI / 4.0</span><span style="font-size:12pt;font-family:"Segoe UI",sans-serif;color:rgb(36,41,47)"><u></u><u></u></span></p></td></tr></tbody></table><div style="border-color:currentcolor currentcolor windowtext;border-style:none none solid;border-width:medium medium 1.5pt;padding:0in 0in 1pt"><p class="gmail-m_-6202839973258419120MsoPlainText" style="border:medium none;padding:0in"><u></u> <u></u></p></div><p class="gmail-m_-6202839973258419120MsoPlainText"><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">It seems clear to me that innerConeAngle corresponds to beamWidth, and outerConeAngle corresponds to cutOffAngle.<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText"><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">If you disagree with “cutOffAngle > beamWidth” (perhaps greater than or equals) relationship, then you think the opposite and thus would need a new diagram, correct?  Similarly, that is a functional change to the (possibly still incorrect?) X3D Spotlight.<u></u><u></u></p><ul style="margin-top:0in" type="disc"><li class="gmail-m_-6202839973258419120MsoPlainText">X3D4 Architecture, Figure 17.1 — SpotLight node<u></u><u></u></li><li class="gmail-m_-6202839973258419120MsoPlainText"><a href="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/lighting.html#f-SpotLightnode" target="_blank">https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/lighting.html#f-SpotLightnode</a><u></u><u></u></li></ul><p class="gmail-m_-6202839973258419120MsoPlainText"><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">If these parameters have been forever broken, then we need to unambiguously define and illustrate the correct approach.  I am open to possibility of alignment with glTF to ensure that no misunderstandings are carried forward.<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText"><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">If a simpler adjustment of default values might work, that is possible… in general though, defaults are chosen to be somewhat forgiving so that authors can tell something is going on (directionality is sometimes difficult) and then tune values accordingly.<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText"><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">Taking a step back: this all seems fundamental yet we are circling… suggest we get together on Web3D teleconference this week.  Hoping that Friday’s regular X3D weekly meeting might work for you?  Several people can be in attendance then.<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText"><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">all the best, Don<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">-- <u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">Don Brutzman  Naval Postgraduate School, Code USW/Br        <a href="mailto:brutzman@nps.edu" target="_blank">brutzman@nps.edu</a><u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA    +1.831.656.2149<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">X3D graphics, virtual worlds, Navy robotics https:// <a href="http://faculty.nps.edu/brutzman" target="_blank">faculty.nps.edu/brutzman</a><u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText"><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText"><span>-----Original Message-----<br>From: Michalis Kamburelis <<a href="mailto:michalis.kambi@gmail.com" target="_blank">michalis.kambi@gmail.com</a>> <br>Sent: Monday, February 14, 2022 3:50 AM<br>To: Brutzman, Donald (Don) (CIV) <<a href="mailto:brutzman@nps.edu" target="_blank">brutzman@nps.edu</a>><br>Cc: X3D Graphics public mailing list <<a href="mailto:x3d-public@web3d.org" target="_blank">x3d-public@web3d.org</a>><br>Subject: Re: [x3d-public] Defaults of SpotLight.cutOffAngle, beamWidth changed (maybe by mistake) in X3D 3.3</span></p><p class="gmail-m_-6202839973258419120MsoPlainText">I have to say<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText"><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">1. I don't agree that "Thus default values need to have cutOffAngle > beamWidth."<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText"><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">2. And I don't agree that cutOffAngle = pi/2 is good default. It's surprisingly wide, all other software/formats I checked (see below) have smaller cutOffAngle (aka outerConeAngle).<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText"><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">AD 1 - The specification explicitly allows "If the beamWidth is greater than the cutOffAngle, beamWidth is defined to be equal to the cutOffAngle and the light source emits full intensity within the entire solid angle defined by cutOffAngle...." And the equations in spec reflect that, everything works OK when beamWidth > cutOffAngle.<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">You don't have a smooth falloff in this case, but it looks reasonable.<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText"><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">AD 2 - This is my main pain point. I really think that cutOffAngle =<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">pi/2 is too wide, it means that whole spot angle is 180 degrees, so SpotLight is at "maximally wide" state shining on half of 3D space. I looked at defaults in other formats/application, and noone has so wide<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">default:<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText"><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">- glTF punctual lights (<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText"><a href="https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FKhronosGroup%2FglTF%2Ftree%2Fmain%2Fextensions%2F2.0%2FKhronos%2FKHR_lights_punctual&amp;data=04%7C01%7Cbrutzman%40nps.edu%7C5493278ab60b46b9951e08d9efb03649%7C6d936231a51740ea9199f7578963378e%7C0%7C0%7C637804363573077429%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=d3IA54ENWoYel6mMl6mRHOy9QEdJ7qX%2FERHqNIDVXno%3D&amp;reserved=0" target="_blank"><span style="color:windowtext;text-decoration:none">https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FKhronosGroup%2FglTF%2Ftree%2Fmain%2Fextensions%2F2.0%2FKhronos%2FKHR_lights_punctual&amp;data=04%7C01%7Cbrutzman%40nps.edu%7C5493278ab60b46b9951e08d9efb03649%7C6d936231a51740ea9199f7578963378e%7C0%7C0%7C637804363573077429%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=d3IA54ENWoYel6mMl6mRHOy9QEdJ7qX%2FERHqNIDVXno%3D&amp;reserved=0</span></a><u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">) have by default outerConeAngle = pi/4<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText"><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">- Blender Spot light has by default size = 45 degrees, but this expresses 2*outerConeAngle. So Blender default is like outerConeAngle = 22.5 degrees = pi/8, even smaller<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText"><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">- Unity Spot has by default size = 30 degrees, but this is also 2*outerConeAngle. So again it is even smaller, like outerConeAngle =<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">15 degrees = pi/12<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText"><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">So really noone has so large default cutOffAngle = pi/2, everyone I see has smaller. I believe that VRML 97 and X3D 3.0, 3.1, 3.2 did it right, no change was necessary. And we should revert to that. So defaults at<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText"><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">  - beamWidth pi/2<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">  - cutOffAngle pi/4<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText"><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">If you really want to make beamWidth by default smaller, then change only beamWidth. Make beamWidth by default pi/4 or even pi/8. But don't change the cutOffAngle to pi/2. This is so large (and compatibility-breaking for no good reason, IMHO) that I'm really reluctant to follow X3D 3.3 defaults in Castle Game Engine / view3dscene, and I'm tempted to just stay with older defaults.<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText"><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">Regards,<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">Michalis<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText"><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">pon., 14 lut 2022 o 09:32 Brutzman, Donald (Don) (CIV) <<a href="mailto:brutzman@nps.edu" target="_blank"><span style="color:windowtext;text-decoration:none">brutzman@nps.edu</span></a>> napisał(a):<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">> Thanks for looking at this Michalis.  Further detail is available at<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">> Mantis 441: 17.4.3 SpotLight -- Default Values<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">> <a href="https://www.web3d.org/member-only/mantis/view.php?id=441" target="_blank"><span style="color:windowtext;text-decoration:none">https://www.web3d.org/member-only/mantis/view.php?id=441</span></a><u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">> Essential point: beamWidth is the inner angle of full intensity, cutOffAngle is the outer angle of zero intensity. Thus default values need to have cutOffAngle > beamWidth.<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">> So I think that this change, performed in 2009, fixed a prior problem in the specification.  Brightest area needs to be the inside cone, with intensity gradually fading until reaching the outside cone.<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">> Hopefully that now looks better to you.  Thanks for all scrutiny.<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">> *  <u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">> <a href="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/P" target="_blank"><span style="color:windowtext;text-decoration:none">https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/P</span></a><u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">> art01/components/lighting.html#SpotLight<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">> 17.4.4 SpotLight<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">> SpotLight : X3DLightNode {<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">>   SFFloat [in,out] ambientIntensity 0        [0,1]<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">>   SFVec3f [in,out] attenuation      1 0 0    [0,∞)<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">>   SFFloat [in,out] beamWidth        π/4      (0,π/2]<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">>   SFColor [in,out] color            1 1 1    [0,1]<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">>   SFFloat [in,out] cutOffAngle      π/2      (0,π/2]<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">>   SFVec3f [in,out] direction        0 0 -1   (-∞,∞)<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">>   SFBool  [in,out] global           TRUE<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">>   SFFloat [in,out] intensity        1        [0,∞)<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">>   SFVec3f [in,out] location         0 0 0    (-∞,∞)<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">>   SFNode  [in,out] metadata         NULL     [X3DMetadataObject]<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">>   SFBool  [in,out] on               TRUE<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">>   SFFloat [in,out] radius           100      [0,∞)<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">>   SFBool  [in,out] shadows          FALSE<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">>   SFFloat [in,out] shadowIntensity  1        [0,1]<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">> }<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">> p.s. I just confirmed correctly matching values in X3D XML Schema and DTD.<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">> all the best, Don<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">> --<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">> Don Brutzman  Naval Postgraduate School, Code USW/Br        <a href="mailto:brutzman@nps.edu" target="_blank"><span style="color:windowtext;text-decoration:none">brutzman@nps.edu</span></a><u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">> Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA    +1.831.656.2149<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">> X3D graphics, virtual worlds, Navy robotics https:// <u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">> <a href="http://faculty.nps.edu/brutzman" target="_blank">faculty.nps.edu/brutzman</a><u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">> From: x3d-public <<a href="mailto:x3d-public-bounces@web3d.org" target="_blank"><span style="color:windowtext;text-decoration:none">x3d-public-bounces@web3d.org</span></a>> On Behalf Of Michalis <u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">> Kamburelis<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">> Sent: Sunday, February 13, 2022 8:42 PM<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">> To: X3D Graphics public mailing list <<a href="mailto:x3d-public@web3d.org" target="_blank"><span style="color:windowtext;text-decoration:none">x3d-public@web3d.org</span></a>><u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">> Subject: Re: [x3d-public] Defaults of SpotLight.cutOffAngle, beamWidth <u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">> changed (maybe by mistake) in X3D 3.3<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">> Note: I have a hypothesis why this happened.<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">> The drawing presented at SpotLight description (it is the same in all X3D versions) shows a situation when beamWidth < cutOffAngle. The drawing shows a situation when these is smooth falloff between beamWidth and cutOffAngle. Maybe someone thought that defaults do not match this drawing, ans thus reversed the defaults.<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">> I would say that the drawing just doesn't, and never meant to, show the default state. It just shows an example state that is possible.<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">> Regards,<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">> Michalis<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">> W dniu pon., 14.02.2022 o 05:10 Michalis Kamburelis <<a href="mailto:michalis.kambi@gmail.com" target="_blank"><span style="color:windowtext;text-decoration:none">michalis.kambi@gmail.com</span></a>> napisał(a):<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">> Hi,<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">> I just noticed an alarming regression at SpotLight definition across <u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">> X3D versions.<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">> 1. In VRML 97, X3D 3.0, 3.1 and 3.2 the default values are:<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">>   - beamWidth pi/2<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">>   - cutOffAngle pi/4<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">>   This means that there is no smooth falloff from beamWidth to <u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">> cutOffAngle. Spot light has multiplier = 1 in range 0...pi/4, and then <u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">> it's zero outside of pi/4.<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">>   I think this is the good definition. It makes sense as default.<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">>   See:<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">>   - VRML 97: <u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">> <a href="https://nam10.safelinks.protection.outlook.com/?url=http%3A%2F%2Ftecfa" target="_blank"><span style="color:windowtext;text-decoration:none">https://nam10.safelinks.protection.outlook.com/?url=http%3A%2F%2Ftecfa</span></a><u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">> .<a href="http://unige.ch" target="_blank">unige.ch</a>%2Fguides%2Fvrml%2Fvrml97%2Fspec%2Fpart1%2FnodesRef.html%23Sp<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">> otLight&amp;data=04%7C01%7Cbrutzman%<a href="http://40nps.edu" target="_blank">40nps.edu</a>%7C5493278ab60b46b9951e08<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">> d9efb03649%7C6d936231a51740ea9199f7578963378e%7C0%7C0%7C63780436357307<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">> 7429%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBT<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">> iI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=DR7HBogG27XNmzipDNWEXGHtHw0<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">> HQyJgaT%2BSPqIcKWY%3D&amp;reserved=0<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">>   - X3D 3.0: <u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">> <a href="https://www.web3d.org/documents/specifications/19775-1/V3.0/Part01/com" target="_blank"><span style="color:windowtext;text-decoration:none">https://www.web3d.org/documents/specifications/19775-1/V3.0/Part01/com</span></a><u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">> ponents/lighting.html#SpotLight<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">>   - X3D 3.1: this version seems to be published only as "diff from X3D <u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">> 3.0", and it has no change regarding SpotLight, see <u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">> <a href="https://www.web3d.org/documents/specifications/19775-1/V3.1/Part01/com" target="_blank"><span style="color:windowtext;text-decoration:none">https://www.web3d.org/documents/specifications/19775-1/V3.1/Part01/com</span></a><u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">> ponents/lighting.html<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">>   - X3D 3.2: <u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">> <a href="https://www.web3d.org/documents/specifications/19775-1/V3.2/Part01/com" target="_blank"><span style="color:windowtext;text-decoration:none">https://www.web3d.org/documents/specifications/19775-1/V3.2/Part01/com</span></a><u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">> ponents/lighting.html#SpotLight<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">> 2. In X3D 3.3 and 4.0 however, the defaults are reversed:<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">>   - beamWidth pi/4<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">>   - cutOffAngle pi/2<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">>   This makes a different behavior, and one that is IMHO less expected.<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">> cutOffAngle pi/2 means that "total angle of spotlight" is pi, 180 <u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">> degrees. This is possible, but unexpected as default for a spot light.<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">> It's a very wide light, effectively shining on half of 3D space.<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">>   See:<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">>   - X3D 3.3: <u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">> <a href="https://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/com" target="_blank"><span style="color:windowtext;text-decoration:none">https://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/com</span></a><u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">> ponents/lighting.html#SpotLight<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">>   - X3D 4.0 draft:<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">> <a href="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/P" target="_blank"><span style="color:windowtext;text-decoration:none">https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/P</span></a><u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">> art01/components/lighting.html#SpotLight<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">> What others do?<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">> - Castle Game Engine and view3dscene always followed AD 1. I didn't <u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">> even know that there was a change to this in X3D 3.3.<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">> - InstantReality (at least docs) also follows AD 1, looking at<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">> <a href="https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdoc" target="_blank"><span style="color:windowtext;text-decoration:none">https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdoc</span></a>.<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">> <a href="http://instantreality.org" target="_blank">instantreality.org</a>%2Fdocumentation%2Fnodetype%2FSpotLight%2F&amp;data=<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">> 04%7C01%7Cbrutzman%<a href="http://40nps.edu" target="_blank">40nps.edu</a>%7C5493278ab60b46b9951e08d9efb03649%7C6d93<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">> 6231a51740ea9199f7578963378e%7C0%7C0%7C637804363573077429%7CUnknown%7C<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">> TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVC<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">> I6Mn0%3D%7C3000&amp;sdata=n1Vnxg6FcwwzV54VjD0hAvPq3X25SCrYvmP%2FFSNtrc<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">> k%3D&amp;reserved=0<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">> - X3DOM (at least docs) is confused, judging from<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">> <a href="https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdoc" target="_blank"><span style="color:windowtext;text-decoration:none">https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdoc</span></a>.<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">> <a href="http://x3dom.org" target="_blank">x3dom.org</a>%2Fauthor%2FLighting%2FSpotLight.html&amp;data=04%7C01%7Cbrut<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">> zman%<a href="http://40nps.edu" target="_blank">40nps.edu</a>%7C5493278ab60b46b9951e08d9efb03649%7C6d936231a51740ea9199f7578963378e%7C0%7C0%7C637804363573077429%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=payjbNAnAV%2B2lc8N7Ku0EGt7K6sJdWMyV%2FTJtAsds4Q%3D&amp;reserved=0 . They say that both cutOffAngle and beamWidth are both pi/2 by default, which is not consistent with any X3D version.<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">> I didn't test InstantReality or X3DOM in practice, only looked at docs now.<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">> Proposal: let's fix X3D 4.0. Revert the defaults to what was in X3D 3.2:<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">>   - beamWidth pi/2<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">>   - cutOffAngle pi/4<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">> Unless someone knows a good reason for change in X3D 3.3, I'm tempted <u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">> to call this just a simple human mistake when someone was editing X3D <u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">> 3.3.<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">><u></u> <u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">> Regards,<u></u><u></u></p><p class="gmail-m_-6202839973258419120MsoPlainText">> Michalis<u></u><u></u></p></div></div></blockquote></div>