<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
</head>
<body text="#000000" bgcolor="#FFFFFF">
Hi Dalai,<br>
<br>
Awesome! I can't wait to see the changes in a build!<br>
<br>
Triangulation is very important to ensure consistently correct
baking (anyone who says different either doesn't care or doesn't
know any better ;) ) but it is also very important to ensure that it
is as non-destructive as possible to allow the flexibility of having
to go back and adjust geometry without having to convert to quads
which can be error prone and time consuming.<br>
<br>
Quads are not needed for game ready meshes as they are converted to
tris anyway on import but the important thing is that the
triangulation is performed before baking and the same triangulation
is used on the game mesh. As we can't guarantee which method of
triangulation is used in any other program it is down to the artist
to ensure that it remains consistent throughout the pipeline.
However, in Blender triangles restrict the ability of the artist to
edit a mesh in a fast and efficient manner so it isn't really a good
idea to work on a triangulated mesh in this way.<br>
<br>
The method of triangulation doesn't really matter from a rendering
perspective as GPUs can brute force pretty much anything with
relative ease (aside from very long thin triangles) and we don't do
things like tri-stripping any more because it's just not worth the
effort for the extremely minimal impact of performance.<br>
<br>
That said, shortest diagonal is the most consistent way of
applications triangulating a mesh as the mesh will always have the
same results vs other perhaps more involved triangulation
algorithms. So having it as default makes sense I think.<br>
<br>
The ability to rotate edges would be great but not at the expense of
changing the triangulation algorithm from shortest diagonal so
unless there is a way to do this I would prefer to do any edge
rotating after the fact once the modifier has been applied before
export.<br>
<br>
Cheers,<br>
<br>
-Andy<br>
<br>
<div class="moz-cite-prefix">On 01/11/2013 19:27, Dalai Felinto
wrote:<br>
</div>
<blockquote
cite="mid:CAGjvzG2uqPnfv4bhZa5jRhJFPVa5dscwNRkESNx3X3_UuE7ksw@mail.gmail.com"
type="cite">
<div dir="ltr">Hi,
<div><br>
</div>
<div>I recently committed some changes to the Triangulation
Modifier [1]:<br>
<br>
</div>
<div>1) Quads Split Method: Shortest Diagonal (default), Beauty,
Fixed, Fixed Alternate</div>
<div>2) Ngons Split Method: Scanfill, Beauty</div>
<div><br>
There is a remaining issue though. Users seem to care about
non-destructive workflows and at the same time, fine-tuning
control over the triangulation.<br>
<br>
For that the easiest solution would be to have the user
triangulating the quads that need to be tweaked. The downside
of this is that you loose things such as edge-loop/rings
selection.</div>
<div><br>
</div>
<div>Another solution would be changing the code to flag some
edges/quads as 'flip-rotation'. This is complicated to
implement, leads to a messy design for the user, and honestly
it may not be worth the time to do it.</div>
<div><br>
</div>
<div>As a compromise/3rd option one can use an addon to 'rotate'
the vertices indices of a face, and use it with the Fixed or
Fixed Alternate quad methods. </div>
<div>I even implemented that in C, but it should be doable in Py
as well [2]. The downside of this is that it would not work
with the "Shortest Diagonal", which seems to be a popular
method.</div>
<div><br>
I would like to hear from some real-world pipelines how
important it is to have all-quads meshes, and/or if the
current implementation/solutions are enough.</div>
<div><br>
</div>
<div>[1] - <a moz-do-not-send="true"
href="http://wiki.blender.org/index.php/Doc:2.6/Manual/Modifiers/Generate/Triangulate">http://wiki.blender.org/index.php/Doc:2.6/Manual/Modifiers/Generate/Triangulate</a></div>
<div>[2] - <a moz-do-not-send="true"
href="https://github.com/dfelinto/blender-svn/pull/16/files">https://github.com/dfelinto/blender-svn/pull/16/files</a></div>
<div><br>
</div>
<div>Many thanks,<br>
Dalai</div>
<div><br clear="all">
<div>--<br>
<a moz-do-not-send="true"
href="http://blendernetwork.org/dalai-felinto"
target="_blank">blendernetwork.org/dalai-felinto</a><br>
<a moz-do-not-send="true" href="http://www.dalaifelinto.com"
target="_blank">www.dalaifelinto.com</a></div>
</div>
</div>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<br>
<pre wrap="">_______________________________________________
Bf-gamedev mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Bf-gamedev@blender.org">Bf-gamedev@blender.org</a>
<a class="moz-txt-link-freetext" href="http://lists.blender.org/mailman/listinfo/bf-gamedev">http://lists.blender.org/mailman/listinfo/bf-gamedev</a>
</pre>
</blockquote>
<br>
</body>
</html>