美文网首页
OpenGL三角形绘制平滑线

OpenGL三角形绘制平滑线

作者: 许彦峰 | 来源:发表于2022-03-21 17:11 被阅读0次

    整体思路:

    • 根据给定的点P,做插值均分,得到N个P点
    • 将N个P点进行求角平分线(TB)
    • 然后再角平分线(TB)的正反方向进行D距离的拓宽,得到PT,PB,算出T点、B点
    • 将所有的T点、B点进行连接,使用triangle strip进行绘制

    关于插值均分算法,参考:


    上图是将2个输入点之间插入了2个均分点,也就是将一条线段切成了3份。

    仔细观察绘制结果,会发现三角形会相互叠加,顶点比较乱。

    优化方案:

    • 对原始的点P进行二阶贝塞尔,将P2变为贝塞尔曲线t=0.5的位置,这样所可能会让曲线偏离设定的目标点。


    • 优化后,线条的确好了很多,但是转角处还是不够顺滑


    • 同理,对生成的T点、B点进行再次进行贝塞尔曲线t=0.5的优化


    经过上述优化,基本上整体已经非常平滑了,基本满足使用需求,但是当出现大幅度的锐角弯时,还是有点问题,这个只能从制作层面避免啦,暂时没有好的优化方案。

    相关文章

      网友评论

          本文标题:OpenGL三角形绘制平滑线

          本文链接:https://www.haomeiwen.com/subject/sejtjrtx.html