<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&nbsp; 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.&nbsp;</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] &nbsp;- <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] -&nbsp;<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>