<div style="font-family: Arial, sans-serif; font-size: 14px;">Kudos, I think it's a great idea.</div><div style="font-family: Arial, sans-serif; font-size: 14px;"><br></div><div style="font-family: Arial, sans-serif; font-size: 14px;">I understand that both linear and exponential equations for fog look basically the same, just instead of previous "distance from the viewer" we put "distance from the viewer - visibilityStart" (if distance from the viewer >= visibilityStart, otherwise fog amount is 0).</div>
<div style="font-family: Arial, sans-serif; font-size: 14px;" class="protonmail_signature_block protonmail_signature_block-empty">
    <div class="protonmail_signature_block-user protonmail_signature_block-empty">
        
            </div>
    
            <div class="protonmail_signature_block-proton protonmail_signature_block-empty">
        
            </div>
</div>
<div style="font-family: Arial, sans-serif; font-size: 14px;"><br></div><div style="font-family: Arial, sans-serif; font-size: 14px;">Note: Your email title and some description mixes up "<span>startVisibility" and "<span>visibilityStart</span>".</span></div><div style="font-family: Arial, sans-serif; font-size: 14px;"><span><br></span></div><div style="font-family: Arial, sans-serif; font-size: 14px;"><ul style="margin-top: 0px; margin-bottom: 0px;" data-editing-info="{"orderedStyleType":1,"unorderedStyleType":2}"><li style="list-style-type: "- ";"><span><span>I understand <span>"visibilityStart"</span> is the right one and the "<span>startVisibility"</span> was just an obvious mistake? :)</span></span></li></ul><div><br></div><ul style="margin-top: 0px; margin-bottom: 0px;" data-editing-info="{"orderedStyleType":1,"unorderedStyleType":2}"><li style="list-style-type: "- ";"><span>I see example on <span><a target="_blank" rel="noreferrer nofollow noopener" href="https://create3000.github.io/x_ite/playground/?url=https://create3000.github.io/media/examples/EnvironmentalEffects/Fog/Fog.x3d">https://create3000.github.io/x_ite/playground/?url=https://create3000.github.io/media/examples/EnvironmentalEffects/Fog/Fog.x3d</a></span> is using <span><span><span>"visibilityStart"</span></span></span> .</span></li></ul><div><br></div><ul style="margin-top: 0px; margin-bottom: 0px;" data-editing-info="{"orderedStyleType":1,"unorderedStyleType":2}"><li style="list-style-type: "- ";"><span>My preference would also be for <span><span><span>"visibilityStart"</span></span></span>, looks consistent with <span><span><span>"visibilityRange"</span></span></span>.</span></li></ul><div><br></div><div>Added to TODO to support this also in CGE :)</div><div><br></div><div>Regards,</div><div>Michalis</div><div><br></div></div><div class="protonmail_quote">
        On Monday, November 17th, 2025 at 19:13, Holger Seelig via x3d-public <x3d-public@web3d.org> wrote:<br>
        <blockquote class="protonmail_quote" type="cite">
            <div>All X3DFogObject nodes in X_ITE have a new field startVisibility.</div><div><br></div><div>X3DFogObject {</div><div>  SFFloat [in, out] visibilityStart 0 [0, infinity]</div><div>  ...</div><div>}</div><div><br></div><div>The motivation is to finely control fog more than it was possible before.</div><div><br></div><div>The <font color="#000000">startVisibility field defines the distance where the fog starts to fade the objects. The visibilityRange defines the range from zero fog to full fog. That means fog now start at </font><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);">startVisibility and ends at </span><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);">startVisibility + </span><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);">visibilityRange. Because </span><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);">startVisibility has a default value of 0 it will not break any existing X3D files.</span></div><div><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"><br></span></div><div><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);">An implementation of this behaviour should be trivial when shaders are used to render the scene.</span></div><div><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"><br></span></div><div><font color="#000000"><span style="caret-color: rgb(0, 0, 0);">The advantage of this new field is that the author can decide when fog fading starts and can have objects in the near environment not affected by the fog. It is also possible to create a fog wall, when </span></font><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);">visibilityRange very small.</span></div><div><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"><br></span></div><div><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);">There exist example files with use of </span><font color="#000000">startVisibility field to explore the exact behaviour. </font></div><div><font color="#000000"><br></font></div><div><font color="#000000">At first a very simple file where you can adjust </font><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);">startVisibility and </span><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);">visibilityRange and see what </span><font color="#000000"><span style="caret-color: rgb(0, 0, 0);">happens.</span></font></div><div><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"><br></span></div><div><a href="https://create3000.github.io/x_ite/playground/?url=https://create3000.github.io/media/examples/EnvironmentalEffects/Fog/Fog.x3d" target="_blank" rel="noreferrer nofollow noopener">https://create3000.github.io/x_ite/playground/?url=https://create3000.github.io/media/examples/EnvironmentalEffects/Fog/Fog.x3d</a></div><div><br></div>Another file exists which shows an object near to the viewpoint, which is clear and sharp, but look at the horizon, the transition between the floor and the the clouds is very smooth because of the fog.<div><br></div><div><a href="https://create3000.github.io/x_ite/playground/?url=https://create3000.github.io/media/examples/Navigation/Viewpoint/Viewpoint.x3d" target="_blank" rel="noreferrer nofollow noopener">https://create3000.github.io/x_ite/playground/?url=https://create3000.github.io/media/examples/Navigation/Viewpoint/Viewpoint.x3d</a></div><div><br></div><div>Best regards,</div><div>Holger</div><div><br><div>
<div dir="auto" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;"><div dir="auto" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;"><div dir="auto" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;"><div dir="auto" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;"><div dir="auto" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;"><div dir="auto" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;"><div dir="auto" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;"><div dir="auto" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;"><div dir="auto" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;"><div dir="auto" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;"><div dir="auto" style="text-align: start; text-indent: 0px; overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;"><div style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); letter-spacing: normal; text-transform: none; white-space: normal; word-spacing: 0px; text-decoration: none; -webkit-text-stroke-width: 0px;">—</div><div style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); letter-spacing: normal; text-transform: none; white-space: normal; word-spacing: 0px; text-decoration: none; -webkit-text-stroke-width: 0px;">Holger Seelig<br>holger.seelig@yahoo.de<br><br></div></div></div></div></div></div></div></div></div></div></div></div>
</div>

<br></div>
        </blockquote><br>
    </div>