Re: CSG operations on textured meshes -- something better than CGAL?

Jon Watte <[email protected]> Tue, 27 May 2014 09:20:35 -0700
Newsgroups gmane.games.devel.algorithms
Message-ID <CAJgyHGNzLe1AYL5HapcpBaEK9yDqXCXDEUb7j_Spc7DL7ayw=g@mail.gmail.com>
--===============7898807522951611877==
Content-Type: multipart/alternative; boundary=001a11c211165a553604fa6413d7

--001a11c211165a553604fa6413d7
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

That's actually quite helpful! Thanks.





Sincerely,

Jon Watte


--
"I find that the harder I work, the more luck I seem to have." -- Thomas
Jefferson


On Wed, May 21, 2014 at 12:53 PM, Graham Rhodes ARA/SED <[email protected]>wr=
ote:

>  Components of the IntegrityWare SOLIDS++ commercial middleware may be
> useful. For example:
>
>
>
> http://www.integrityware.com/meshlib.html
>
>
>
> Not sure how they handle interpolating vertex attributes, though. They
> might support a user-provided function for that.
>
>
>
> Beyond that, we use Spatial=E2=80=99s ACIS library for some quite complex=
 CSG
> work. This adds another level of cost and complexity through, being
> primarily used in the CAD industry. It does support non-manifold topology=
,
> regularized and non-regularized solids, provides built-in functions to do
> operations such as extruding or offsetting a sheet into a thickened solid=
,
> geometry healing, etc. ACIS is extremely flexible in the way you can
> attribute intermediate surfaces and edge lists that arise during the
> evaluation of CSG ops. And there are the ACIS competitors=E2=80=A6Parasol=
id,
> Granite, Open Cascade (assuming these others still exist=E2=80=A6my knowl=
edge of
> solid modeling kernels is slightly stale now).
>
>
>
> Graham
>
>
>
> *From:* Eric Haines [mailto:[email protected]]
> *Sent:* Wednesday, May 21, 2014 11:39 AM
> *To:* Game Development Algorithms
> *Subject:* Re: [Algorithms] CSG operations on textured meshes --
> something better than CGAL?
>
>
>
> I'd certainly like to know, too. MeshLab might have one hiding in its
> bowels, but I haven't looked hard enough yet. MeshMixer looks super-cool,
> but appears to be just an application, not a library.
>
>
>
> On Wed, May 21, 2014 at 11:05 AM, Jon Watte <[email protected]> wrote:
>
> > You are going to be distorting triangles in different ways depending on
> the overall shape of the mesh at any given point though.
>
> > If you just retain existing UV coordinates for the new vertices, the
> results will be...  strange.
>
>
>
> I do this operation with some frequency in 3ds Max, and it works the way =
I
> expect there.
>
>
>
> The 3ds Max boolean (and proboolean) modifier behavior would be good
> enough for my purposes, although they do have some edge cases and
> limitaitons (a k a "bugs" :-)
>
> But I don't want to buy a copy of 3ds Max per server that will be running
> this code, not to mention I want to run the servers on Linux.
>
>
>
> So, does anyone know of any textured-triangle-mesh CSG library out there,
> free or paid for, that would work?
>
>
>
> Sincerely,
>
>
>
> jw
>
>
>
>
>
>
>
>
>
> Sincerely,
>
> Jon Watte
>
>
> --
> "I find that the harder I work, the more luck I seem to have." -- Thomas
> Jefferson
>
>
>
> On Tue, May 13, 2014 at 10:07 PM, James Robertson <[email protected]>
> wrote:
>
> You are going to be distorting triangles in different ways depending on
> the overall shape of the mesh at any given point though.  If you just
> retain existing UV coordinates for the new vertices, the results will
> be...  strange.
>
> Consider the case where a convex region meets a concave one.  One side of
> the triangle will be slightly expanded, while the other side will be
> contracted.  Of course you know your input data better than us, so maybe
> such distortions are acceptable or won't be noticeable, but they will be
> there.
>
>
>
>  On 14/05/2014 01:41, Jon Watte wrote:
>
>   I don=E2=80=99t believe you will be able to use your existing uv values=
 with
> the mesh that results from this csg operation
>
>
>
> The operations I want to do are rigid and well conditioned and do not
> stretch or generate new surfaces compared to the input meshes. They may
> invert the winding of triangles, though (so normal maps would have to be
> flipped) in the case of a cut-out.
>
> I also need to preserve vertex bone weighting, too... something that can
> preserve UV should be able to preserve that, too. Worst case, I put in a
> vertex ID value in the UV channel and loop up the other parameters based =
on
> that.
>
>
>
> So... no general purpose parameterized trimesh CSG library available?
>
>
>
> Sincerely,
>
>
>
> jw
>
>
>
>
>
>
>
> Sincerely,
>
> Jon Watte
>
>
> --
> "I find that the harder I work, the more luck I seem to have." -- Thomas
> Jefferson
>
>
>
> On Thu, May 8, 2014 at 12:28 PM, Chris Green <[email protected]>
> wrote:
>
> I don=E2=80=99t believe you will be able to use your existing uv values w=
ith the
> mesh that results from this csg operation =E2=80=93 it has a different to=
pology,
> and there will be changes in the ratios of the areas of different parts o=
f
> the model, with really bumpy areas of the mesh being smoothed out, etc.
> You=E2=80=99ll even have brand new areas emerge that don=E2=80=99t have c=
orresponding areas
> on the original model, as holes are filled in, etc.
>
>
>
> What might work better is to just do the csg operation and generate a uv
> atlas for the resultant mesh. You can then generate a new texture map for
> this uv parametization by sampling from the original one, in a similar
> manner to the way in which people produce bumpmaps mapping the normals of
> highly tessellated models onto low-detail models.
>
>
>
>
>
>
>
> *From:* Jon Watte [mailto:[email protected]]
> *Sent:* Thursday, May 08, 2014 11:08 AM
> *To:* Game Development Algorithms
> *Subject:* [Algorithms] CSG operations on textured meshes -- something
> better than CGAL?
>
>
>
> I have a triangle mesh composed of many submeshes with different
> textures/materials. This mesh may not be a 2-manifold -- it may have open
> edges. Typical game art.
>
>
>
> I now want to create a 3mm thick shell of this mesh. As an approximation,
> taking each triangle, and extrude it back along the normal of each vertex=
,
> and union all of those generated chopped pyramids would be an approximati=
on
> of what I want. If I do literally that, and self-union the result, then
> that should resolve the self-intersection problems I'll run into along
> narrow sharp creases etc.
>
>
>
> I can't find any library to do this, though. CGAL has some fairly robust
> functions on NEF polyhedra, but those polyhedra don't seem to allow
> parameterization (which is academic speak for texture coordinates that ma=
y
> have discontinuities across edges.)
>
>
>
> So, what are some robust CSG libraries available that work on such
> game-style meshes, preserving texture coordinates?
>
>
>
> (And actually, I don't have one such mesh; I have > 120 million such
> meshes, so a by-hand or even script-the-Max-shell-modifier solution is
> unlikely to work. I do have hundreds of Linux servers at my disposal,
> though.)
>
>
>
> Sincerely,
>
> Jon Watte
>
>
>
>
> -------------------------------------------------------------------------=
-----
> "Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE
> Instantly run your Selenium tests across 300+ browser/OS combos.
> Get unparalleled scalability from the best Selenium testing platform
> available
> Simple to use. Nothing to install. Get started now for free."
> http://p.sf.net/sfu/SauceLabs
> _______________________________________________
> GDAlgorithms-list mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/gdalgorithms-list
> Archives:
> http://sourceforge.net/mailarchive/forum.php?forum_name=3Dgdalgorithms-li=
st
>

--001a11c211165a553604fa6413d7
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">That&#39;s actually quite helpful! Thanks.<div><br></div><=
/div><div class=3D"gmail_extra"><br clear=3D"all"><div><div dir=3D"ltr"><fo=
nt face=3D"courier new, monospace"><br><br><br><font>Sincerely,</font><br><=
br><font>Jon Watte</font><br>
<br><br>--<br>&quot;<span style=3D"color:rgb(0,0,0)">I find that the harder=
 I work, the more luck I seem to have.&quot; -- Thomas Jefferson</span></fo=
nt></div></div>
<br><br><div class=3D"gmail_quote">On Wed, May 21, 2014 at 12:53 PM, Graham=
 Rhodes ARA/SED <span dir=3D"ltr">&lt;<a href=3D"mailto:[email protected]" ta=
rget=3D"_blank">[email protected]</a>&gt;</span> wrote:<br><blockquote class=
=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padd=
ing-left:1ex">






<div lang=3D"EN-US" link=3D"blue" vlink=3D"purple">
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1f497d">Components of the Integri=
tyWare SOLIDS++ commercial middleware may be useful. For example:<u></u><u>=
</u></span></p>

<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1f497d"><u></u>=C2=A0<u></u></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1f497d"><a href=3D"http://www.int=
egrityware.com/meshlib.html" target=3D"_blank">http://www.integrityware.com=
/meshlib.html</a><u></u><u></u></span></p>

<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1f497d"><u></u>=C2=A0<u></u></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1f497d">Not sure how they handle =
interpolating vertex attributes, though. They might support a user-provided=
 function for that.<u></u><u></u></span></p>

<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1f497d"><u></u>=C2=A0<u></u></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1f497d">Beyond that, we use Spati=
al=E2=80=99s ACIS library for some quite complex CSG work. This adds anothe=
r level of cost and complexity through, being primarily used in
 the CAD industry. It does support non-manifold topology, regularized and n=
on-regularized solids, provides built-in functions to do operations such as=
 extruding or offsetting a sheet into a thickened solid, geometry healing, =
etc. ACIS is extremely flexible
 in the way you can attribute intermediate surfaces and edge lists that ari=
se during the evaluation of CSG ops. And there are the ACIS competitors=E2=
=80=A6Parasolid, Granite, Open Cascade (assuming these others still exist=
=E2=80=A6my knowledge of solid modeling kernels is
 slightly stale now).<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1f497d"><u></u>=C2=A0<u></u></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1f497d">Graham<u></u><u></u></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1f497d"><u></u>=C2=A0<u></u></spa=
n></p>
<p class=3D"MsoNormal"><b><span style=3D"font-size:10.0pt;font-family:&quot=
;Tahoma&quot;,&quot;sans-serif&quot;">From:</span></b><span style=3D"font-s=
ize:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;"> Eric Hai=
nes [mailto:<a href=3D"mailto:[email protected]" target=3D"_blank">eric=
[email protected]</a>]
<br>
<b>Sent:</b> Wednesday, May 21, 2014 11:39 AM<br>
<b>To:</b> Game Development Algorithms<br>
<b>Subject:</b> Re: [Algorithms] CSG operations on textured meshes -- somet=
hing better than CGAL?<u></u><u></u></span></p><div><div class=3D"h5">
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
<div>
<p class=3D"MsoNormal">I&#39;d certainly like to know, too. MeshLab might h=
ave one hiding in its bowels, but I haven&#39;t looked hard enough yet. Mes=
hMixer looks super-cool, but appears to be just an application, not a libra=
ry.<u></u><u></u></p>

</div>
<div>
<p class=3D"MsoNormal" style=3D"margin-bottom:12.0pt"><u></u>=C2=A0<u></u><=
/p>
<div>
<p class=3D"MsoNormal">On Wed, May 21, 2014 at 11:05 AM, Jon Watte &lt;<a h=
ref=3D"mailto:[email protected]" target=3D"_blank">[email protected]</a>&gt; =
wrote:<u></u><u></u></p>
<div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:12.5pt;font-family:&quot;Ar=
ial&quot;,&quot;sans-serif&quot;">&gt; You are going to be distorting trian=
gles in different ways depending on the overall shape of the mesh at any gi=
ven point though.=C2=A0</span><u></u><u></u></p>

</div>
<div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:12.5pt;font-family:&quot;Ar=
ial&quot;,&quot;sans-serif&quot;">&gt; If you just retain existing UV coord=
inates for the new vertices, the results will be...=C2=A0 strange.</span><u=
></u><u></u></p>

<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:12.5pt;font-family:&quot;Ar=
ial&quot;,&quot;sans-serif&quot;">I do this operation with some frequency i=
n 3ds Max, and it works the way I expect there.</span><u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:12.5pt;font-family:&quot;Ar=
ial&quot;,&quot;sans-serif&quot;">The 3ds Max boolean (and proboolean) modi=
fier behavior would be good enough for my purposes, although they do have s=
ome edge cases and limitaitons (a k a &quot;bugs&quot; :-)</span><u></u><u>=
</u></p>

</div>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:12.5pt;font-family:&quot;Ar=
ial&quot;,&quot;sans-serif&quot;">But I don&#39;t want to buy a copy of 3ds=
 Max per server that will be running this code, not to mention I want to ru=
n the servers on Linux.</span><u></u><u></u></p>

</div>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:12.5pt;font-family:&quot;Ar=
ial&quot;,&quot;sans-serif&quot;">So, does anyone know of any textured-tria=
ngle-mesh CSG library out there, free or paid for, that would work?</span><=
u></u><u></u></p>

</div>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:12.5pt;font-family:&quot;Ar=
ial&quot;,&quot;sans-serif&quot;">Sincerely,</span><u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:12.5pt;font-family:&quot;Ar=
ial&quot;,&quot;sans-serif&quot;">jw</span><u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal"><br clear=3D"all">
<u></u><u></u></p>
<div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Courier New&quot;">=
<br>
<br>
<br>
Sincerely,<br>
<br>
Jon Watte<br>
<br>
<br>
--<br>
&quot;<span style=3D"color:black">I find that the harder I work, the more l=
uck I seem to have.&quot; -- Thomas Jefferson</span></span><u></u><u></u></=
p>
</div>
</div>
<p class=3D"MsoNormal" style=3D"margin-bottom:12.0pt"><u></u>=C2=A0<u></u><=
/p>
</div>
<div>
<div>
<div>
<p class=3D"MsoNormal">On Tue, May 13, 2014 at 10:07 PM, James Robertson &l=
t;<a href=3D"mailto:[email protected]" target=3D"_blank">[email protected]<=
/a>&gt; wrote:<u></u><u></u></p>
<div>
<p class=3D"MsoNormal">You are going to be distorting triangles in differen=
t ways depending on the overall shape of the mesh at any given point though=
.=C2=A0 If you just retain existing UV coordinates for the new vertices, th=
e results will be...=C2=A0 strange.<br>

<br>
Consider the case where a convex region meets a concave one.=C2=A0 One side=
 of the triangle will be slightly expanded, while the other side will be co=
ntracted.=C2=A0 Of course you know your input data better than us, so maybe=
 such distortions are acceptable or won&#39;t
 be noticeable, but they will be there.<u></u><u></u></p>
<div>
<div>
<p class=3D"MsoNormal" style=3D"margin-bottom:12.0pt"><br>
<br>
<u></u><u></u></p>
<div>
<p class=3D"MsoNormal">On 14/05/2014 01:41, Jon Watte wrote:<u></u><u></u><=
/p>
</div>
</div>
</div>
<blockquote style=3D"margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<div>
<div>
<blockquote style=3D"border:none;border-left:solid #cccccc 1.0pt;padding:0i=
n 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in">
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1f497d">I don=E2=80=99t believe y=
ou will be able to use your existing uv values with the mesh that results f=
rom this csg operation</span><u></u><u></u></p>

</blockquote>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<div>
<p class=3D"MsoNormal">The operations I want to do are rigid and well condi=
tioned and do not stretch or generate new surfaces compared to the input me=
shes. They may invert the winding of triangles, though (so normal maps woul=
d have to be flipped) in the case
 of a cut-out.<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal">I also need to preserve vertex bone weighting, too..=
. something that can preserve UV should be able to preserve that, too. Wors=
t case, I put in a vertex ID value in the UV channel and loop up the other =
parameters based on that.<u></u><u></u></p>

</div>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<div>
<p class=3D"MsoNormal">So... no general purpose parameterized trimesh CSG l=
ibrary available?=C2=A0<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<div>
<p class=3D"MsoNormal">Sincerely,<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<div>
<p class=3D"MsoNormal">jw<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
</div>
<div>
<p class=3D"MsoNormal"><br clear=3D"all">
<u></u><u></u></p>
<div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Courier New&quot;">=
<br>
<br>
<br>
Sincerely,<br>
<br>
Jon Watte<br>
<br>
<br>
--<br>
&quot;<span style=3D"color:black">I find that the harder I work, the more l=
uck I seem to have.&quot; -- Thomas Jefferson</span></span><u></u><u></u></=
p>
</div>
</div>
<p class=3D"MsoNormal" style=3D"margin-bottom:12.0pt"><u></u>=C2=A0<u></u><=
/p>
<div>
<p class=3D"MsoNormal">On Thu, May 8, 2014 at 12:28 PM, Chris Green &lt;<a =
href=3D"mailto:[email protected]" target=3D"_blank">cgreen@valvesoft=
ware.com</a>&gt; wrote:<u></u><u></u></p>
<div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1f497d">I don=E2=80=99t believe y=
ou will be able to use your existing uv values with the mesh that results f=
rom this
 csg operation =E2=80=93 it has a different topology, and there will be cha=
nges in the ratios of the areas of different parts of the model, with reall=
y bumpy areas of the mesh being smoothed out, etc. You=E2=80=99ll even have=
 brand new areas emerge that don=E2=80=99t have corresponding
 areas on the original model, as holes are filled in, etc.</span><u></u><u>=
</u></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1f497d">=C2=A0</span><u></u><u></=
u></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1f497d">What might work better is=
 to just do the csg operation and generate a uv atlas for the resultant
 mesh. You can then generate a new texture map for this uv parametization b=
y sampling from the original one, in a similar manner to the way in which p=
eople produce bumpmaps mapping the normals of highly tessellated models ont=
o low-detail models.
</span><u></u><u></u></p>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1f497d">=C2=A0</span><u></u><u></=
u></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1f497d">=C2=A0</span><u></u><u></=
u></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1f497d">=C2=A0</span><u></u><u></=
u></p>
<p class=3D"MsoNormal"><b><span style=3D"font-size:10.0pt;font-family:&quot=
;Tahoma&quot;,&quot;sans-serif&quot;">From:</span></b><span style=3D"font-s=
ize:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;"> Jon Watt=
e [mailto:<a href=3D"mailto:[email protected]" target=3D"_blank">jwatte@gmai=
l.com</a>]
<br>
<b>Sent:</b> Thursday, May 08, 2014 11:08 AM<br>
<b>To:</b> Game Development Algorithms<br>
<b>Subject:</b> [Algorithms] CSG operations on textured meshes -- something=
 better than CGAL?</span><u></u><u></u></p>
<p class=3D"MsoNormal">=C2=A0<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal">I have a triangle mesh composed of many submeshes wi=
th different textures/materials. This mesh may not be a 2-manifold -- it ma=
y have open edges. Typical game art.<u></u><u></u></p>
<div>
<div>
<div>
<p class=3D"MsoNormal">=C2=A0<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal">I now want to create a 3mm thick shell of this mesh.=
 As an approximation, taking each triangle, and extrude it back along the n=
ormal of each vertex, and union all of those generated
 chopped pyramids would be an approximation of what I want. If I do literal=
ly that, and self-union the result, then that should resolve the self-inter=
section problems I&#39;ll run into along narrow sharp creases etc.<u></u><u=
></u></p>

</div>
<div>
<p class=3D"MsoNormal">=C2=A0<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal">I can&#39;t find any library to do this, though. CGA=
L has some fairly robust functions on NEF polyhedra, but those polyhedra do=
n&#39;t seem to allow parameterization (which is academic
 speak for texture coordinates that may have discontinuities across edges.)=
<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal">=C2=A0<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal">So, what are some robust CSG libraries available tha=
t work on such game-style meshes, preserving texture coordinates?<u></u><u>=
</u></p>
</div>
<div>
<p class=3D"MsoNormal">=C2=A0<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal">(And actually, I don&#39;t have one such mesh; I hav=
e &gt; 120 million such meshes, so a by-hand or even script-the-Max-shell-m=
odifier solution is unlikely to work. I do have hundreds
 of Linux servers at my disposal, though.)<br clear=3D"all">
<u></u><u></u></p>
<div>
<div>
<p class=3D"MsoNormal" style=3D"margin-right:.5in;margin-left:.5in">
<br>
<br>
Sincerely,<br>
<br>
Jon Watte<br>
<br>
<u></u><u></u></p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</blockquote>
</div>
</div>
</div>
</div>
</div>
</div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
</div></div></div>
</div>

<br>-----------------------------------------------------------------------=
-------<br>
&quot;Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE=
<br>
Instantly run your Selenium tests across 300+ browser/OS combos.<br>
Get unparalleled scalability from the best Selenium testing platform availa=
ble<br>
Simple to use. Nothing to install. Get started now for free.&quot;<br>
<a href=3D"http://p.sf.net/sfu/SauceLabs" target=3D"_blank">http://p.sf.net=
/sfu/SauceLabs</a><br>_______________________________________________<br>
GDAlgorithms-list mailing list<br>
<a href=3D"mailto:[email protected]">GDAlgorithms-lis=
[email protected]</a><br>
<a href=3D"https://lists.sourceforge.net/lists/listinfo/gdalgorithms-list" =
target=3D"_blank">https://lists.sourceforge.net/lists/listinfo/gdalgorithms=
-list</a><br>
Archives:<br>
<a href=3D"http://sourceforge.net/mailarchive/forum.php?forum_name=3Dgdalgo=
rithms-list" target=3D"_blank">http://sourceforge.net/mailarchive/forum.php=
?forum_name=3Dgdalgorithms-list</a><br></blockquote></div><br></div>

--001a11c211165a553604fa6413d7--


--===============7898807522951611877==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

------------------------------------------------------------------------------
The best possible search technologies are now affordable for all companies.
Download your FREE open source Enterprise Search Engine today!
Our experts will assist you in its installation for $59/mo, no commitment.
Test it for FREE on our Cloud platform anytime!
http://pubads.g.doubleclick.net/gampad/clk?id=145328191&iu=/4140/ostg.clktrk
--===============7898807522951611877==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
GDAlgorithms-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/gdalgorithms-list
Archives:
http://sourceforge.net/mailarchive/forum.php?forum_name=gdalgorithms-list
--===============7898807522951611877==--