it seems you are looking at developing your own graphics format "v3d",
since none of the existing offers necessary features.
X3D looks like "3D PDF done wright" - public format, free tools,
including editors, web integration via WebGL-based viewers, support
for NURBS,
but has the same principal limitations: no vertex colors for bezier
patches and AFAIK viewers pre-tessellate NURBS.
The newly released 2.63 version of Asymptote now generates sphere, disk, cylinder, and tube primitives that are rendered within the AsyGL library.
Thank you for the excellent suggestion.
These primitives provide a foundation for the upcoming v3d vector graphics file format we are proposing.
you wrote two years ago:
We are also looking for a good 3D format that supports vector graphics. Perhaps X3D is a candidate to consider.
but I replied:
X3D has NURBS, but that is an exotic feature unlikely to be heavily tested by viewer developers. There is no way to get vertex-colored Bezier patches in X3D but to simulate vertex color with textures. Since creating a 2x2 texture for any patch may result in hitting max texture number, viability of this approach requires future evaluation.
it looks the use case would be lots of small nurbs with colored
corners ? It would be probably really helpful to see an example use
case.
Viewer capabilities and conformance are important but secondary to
design and spec. decisions.
The technical problems with "vertex" colors for control points are
that a control point location is not necessarily a vertex location
(perhaps it is along the borders but not elsewhere), and that it is
unclear how to map from a control point color to a vertex color of
the final tessellated surface. Do you have something in mind on how to
determine the color of vertex of the triangle mesh given control point
colors ?
Here is a thought experiment. Presumably, one could evaluate the Nurbs
in color space given the control point color coordinates, eg. compute
a parametric color surface. I think that means while tesselating the
geometric surface, compute also the point on the color surface for
each uv. It might work but I am not sure if it leads to expected
results. For example, one would have to clip the computed colors at
minimum and maximum saturation since the evaluation can generate
colors outside that range.
So, again, please join (for a time) x3d-public mailing list to make
your point on the usefulness of vertex colors for NURBS and how it is
to work.
Sincerely, Michail
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Dear John,
it seems you are looking at developing your own graphics format "v3d",
since none of the existing offers necessary features.
X3D looks like "3D PDF done wright" - public format, free tools,
including editors, web integration via WebGL-based viewers, support
for NURBS,
but has the same principal limitations: no vertex colors for bezier
patches and AFAIK viewers pre-tessellate NURBS.
But now X3D format is now being updated to a new version and it may be
worth your time to join the discussion (
http://web3d.org/pipermail/x3d-public_web3d.org/2020-April/thread.html
) and try to talk X3D people into extending its NURBS component with
"vertex colors".
More detail:
you wrote recently:
you wrote two years ago:
but I replied:
What changed since then:
1.
NURBS support in WebGL based X3D viewers got implemented:
https://www.web3d.org/x3d/content/examples/Basic/NURBS/FredTheBunnyIndex.html
and more at
https://www.web3d.org/x3d/content/examples/Basic/NURBS/ .
Likely those viewers can be extended with your adaptive Bezier patch
tessellator.
2.
X3D is being updated, but when vertex-colors for NURBS are discussed
http://web3d.org/pipermail/x3d-public_web3d.org/2020-April/thread.html
and test implementations made
http://andreasplesch.github.io/x3dom/test/functional/uvGenCOORD.html
I get questions I am not the appropriate person to answer
it looks the use case would be lots of small nurbs with colored
corners ? It would be probably really helpful to see an example use
case.
Viewer capabilities and conformance are important but secondary to
design and spec. decisions.
The technical problems with "vertex" colors for control points are
that a control point location is not necessarily a vertex location
(perhaps it is along the borders but not elsewhere), and that it is
unclear how to map from a control point color to a vertex color of
the final tessellated surface. Do you have something in mind on how to
determine the color of vertex of the triangle mesh given control point
colors ?
Here is a thought experiment. Presumably, one could evaluate the Nurbs
in color space given the control point color coordinates, eg. compute
a parametric color surface. I think that means while tesselating the
geometric surface, compute also the point on the color surface for
each uv. It might work but I am not sure if it leads to expected
results. For example, one would have to clip the computed colors at
minimum and maximum saturation since the evaluation can generate
colors outside that range.
So, again, please join (for a time) x3d-public mailing list to make
your point on the usefulness of vertex colors for NURBS and how it is
to work.
Sincerely, Michail