<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
{font-family:Wingdings;
panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0in;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:#954F72;
text-decoration:underline;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
{mso-style-priority:34;
margin-top:0in;
margin-right:0in;
margin-bottom:0in;
margin-left:.5in;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri",sans-serif;}
.MsoChpDefault
{mso-style-type:export-only;}
@page WordSection1
{size:8.5in 11.0in;
margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
{page:WordSection1;}
/* List Definitions */
@list l0
{mso-list-id:569849833;
mso-list-type:hybrid;
mso-list-template-ids:1299196030 -1 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l0:level1
{mso-level-start-at:4;
mso-level-number-format:bullet;
mso-level-text:\F0D8;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:Wingdings;
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Times New Roman";}
@list l0:level2
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:"Courier New";}
@list l0:level3
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:Wingdings;}
@list l0:level4
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:Symbol;}
@list l0:level5
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:"Courier New";}
@list l0:level6
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:Wingdings;}
@list l0:level7
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:Symbol;}
@list l0:level8
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:"Courier New";}
@list l0:level9
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:Wingdings;}
@list l1
{mso-list-id:1362776597;
mso-list-type:hybrid;
mso-list-template-ids:1185867944 -1 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l1:level1
{mso-level-start-at:4;
mso-level-number-format:bullet;
mso-level-text:\F0D8;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:Wingdings;
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Times New Roman";}
@list l1:level2
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:"Courier New";}
@list l1:level3
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:Wingdings;}
@list l1:level4
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:Symbol;}
@list l1:level5
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:"Courier New";}
@list l1:level6
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:Wingdings;}
@list l1:level7
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:Symbol;}
@list l1:level8
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:"Courier New";}
@list l1:level9
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:Wingdings;}
ol
{margin-bottom:0in;}
ul
{margin-bottom:0in;}
--></style></head><body lang=EN-US link=blue vlink="#954F72"><div class=WordSection1><ul style='margin-top:0in' type=disc><li class=MsoListParagraph style='margin-left:0in;mso-list:l0 level1 lfo2'> I was thinking 'OK, but where's that other stuff?'.<o:p></o:p></li></ul><ul style='margin-top:0in' type=disc><li class=MsoListParagraph style='margin-left:0in;mso-list:l1 level1 lfo1'><o:p> </o:p></li></ul><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>I must say is we can’t learn about the most important NURBS features and capabilities by reading the x3d NURBS standard at the link in the previous message, then please ask about the specific vocabulary or concept x3d is missing or somehow wrong or misleading. </p><p class=MsoNormal><o:p> </o:p></p><ul style='margin-top:0in' type=disc><li class=MsoListParagraph style='margin-left:0in;mso-list:l1 level1 lfo1'>Q. is x3d missing a type of smooth-surface component?</li></ul><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>To present a ‘smooth-surface’ please recall that the apparent ‘smoothness’ of an object is determined by many author choices. One is the density, or how close together the vertices of the geometry are with respect to the viewing distance. so it may be possible to make a continuous surface with a vertex at every pixel and that would be the smoothest thing you could see. Thus, the prudent author uses only the number of triangles needed to work with rendering parameters and lighting to have it as smooth as it needs to appear in the scene. </p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>There are two ways to define geometry, Absolutely, where you explicitly define a specific coordinate for each vertex of the geometry, and, Parametrically, where you supply parameters to an equation then a routine of the application produces the vertex coordinates used for rendering the geometry. </p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>X3DGeometryNode</p><p class=MsoNormal> . ordinary geometries</p><p class=MsoNormal> .. types 1D and 2D and 3D parametric grids</p><p class=MsoNormal> . X3DComposedGeometryNode</p><p class=MsoNormal> .. more types of animatable 3D geometry </p><p class=MsoNormal> . X3DParametricGeometryNode</p><p class=MsoNormal> .. animatable types of computed lines and surfaces </p><p class=MsoNormal>X3DNurbsControlCurveNode </p><p class=MsoNormal> . ContourPolyline2D and NurbsCurve2D</p><p class=MsoNormal> .. enablers </p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>So, in ordinary geometry, it is the author's responsibility to define the geometry to achieve the desired smoothness, while for this NURBS parametric geometry, and I quote form the standard: </p><p class=MsoNormal>"... the implementation shall render the NURBS such that the approximation produces a rendered image in which the edges of the tessellation can not be perceived.” </p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>This means that in addition to computing the geometry according to your supplied set of control points, weights, and knots, the number of points (samples) is determined by the application so it is supposed to look smooth. For 2D, maybe think of SVG. </p><p class=MsoNormal> </p><p class=MsoNormal>So, if author wished to maintain smoothest appearance according to the user’s view, for what I am calling absolute geometry, you might use x3d tools to store different resolution copies of the geometry. Or, with computed geometry, you might not worry because the application may actually change the sampling parameter according to viewing distance. </p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Again, the objective is complete documentation for generation of active parametric objects in a realtime x3d scene. VRML and x3d have always tried to specify support for NURBS and much effort has gone into development and proof of the current v3 specification. As always, really, probably the best and easiest way to learn NURBS is using an x3d browser that does x3d NURBS. I think I would recommend free stuff, probably the free stuff from bitmanagement. </p><p class=MsoNormal><o:p> </o:p></p><ul style='margin-top:0in' type=disc><li class=MsoListParagraph style='margin-left:0in;mso-list:l1 level1 lfo1'>thinking 'OK, but where's that other stuff?'.</li></ul><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Don’t know. What stuff? NURBS is not useful for everything geometric. For example, I don’t now how to use NURBS for hanim deformable skin because in x3d hanim, I need to know the joint-skin bindings at authortime and they can’t be dynamic without added smarts. </p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Thanks and Best, </p><p class=MsoNormal>Joe</p><p class=MsoNormal><o:p> </o:p></p><div style='mso-element:para-border-div;border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal style='border:none;padding:0in'><b>From: </b><a href="mailto:gpugroup@gmail.com">GPU Group</a><br><b>Sent: </b>Thursday, September 6, 2018 5:38 AM<br><b>To: </b><a href="mailto:x3d-public@web3d.org">X3D Graphics public mailing list</a><br><b>Subject: </b>Re: [x3d-public] Nurbs for x3dom</p></div><p class=MsoNormal><o:p> </o:p></p><div><p class=MsoNormal>Q. is x3d missing a type of smooth-surface component? I have a text book on my shelf "Curves and Surfaces for CAGD" (Computer Aided Geometric Design) Gerald Farin, 3rd Edition. In there are some ways to drag layers of control points that 'influence' points on the surface. Any one surface point is a function of a number of control points. So if you move one control point, you don't get a rough bump because its influence is scattered / diffused a bit.</p><div><p class=MsoNormal>Flipping through I see 'de Castleau Algorithm' and 'B-Spline' and I see color plates with smooth car hoods. When working on the Nurbs Component, I was thinking 'OK, but where's that other stuff?'.</p></div><div><p class=MsoNormal>=Doug</p></div></div><p class=MsoNormal><o:p> </o:p></p><div><div><p class=MsoNormal>On Wed, Sep 5, 2018 at 12:22 PM Joseph D Williams <<a href="mailto:joedwil@earthlink.net">joedwil@earthlink.net</a>> wrote:</p></div><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in'><div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><a href="http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/nurbs.html#t-supportlevels" target="_blank">http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/nurbs.html#t-supportlevels</a></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Or maybe the existing support levels somehow line up.</p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Thanks, </p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Joe</p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p></div></div></blockquote></div><p class=MsoNormal style='margin-left:4.8pt'>_______________________________________________<br>x3d-public mailing list<br><a href="mailto:x3d-public@web3d.org" target="_blank">x3d-public@web3d.org</a><br><a href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org" target="_blank">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a></p><p class=MsoNormal><o:p> </o:p></p></div></body></html>