<html aria-label="message body"><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body style="overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;"><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">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">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>
<meta charset="UTF-8"><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></body></html>