zoukankan      html  css  js  c++  java
  • OpenGL 三角形颜色插值

    1.最懒的方法——Nearest Neighbor
    对于三角形内的点,离三个顶点谁最近,就赋值为那个顶点对应的颜色。

    2.最天真的方法——Distance
    三角形内一点的值应该来自于三个顶点。

    计算距离:

    定义权重:

    颜色表示为权重的平均:

    总而言之,我们通过三角形每个顶点到点P的距离来混合定点颜色,从而定义点P的插值颜色。

    这个方法简单,易于实现,而且相当直观,在一些应用中表现良好。

    看到上面的例子,我们原本想要用V1和V3的颜色来表示点P的颜色,但是用这种天真的方法,由于V2距离点P最近,所以点P 大部分的颜色值来自于点P,这是我们不想看到的,这就是该方法的一大缺陷。

    3.重心坐标
    重心坐标的技巧就是寻找顶点V1,V2,V3的权重,来平衡下面的式子:

    转化成表示权重的式子:


    值得注意的是,当点P在三角形外部时,w1,w2,w3中至少有一个值是负数。
    实际上,一个常见的三角形绘制算法是查看三角形周围包围框中的每个像素。然后,对于每个像素,计算重心坐标(无论如何,插值深度缓冲区、纹理坐标等都需要重心坐标)。如果其中一个权重是负数,那么该像素将被跳过。这种算法的一个优点是,显卡可以简单地并行化边界框中的每个像素。这使得绘制三角形非常快。
    插值效果如下:

    ————————————————
    版权声明:本文为CSDN博主「efu莜」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/qq_35045096/java/article/details/95446984

  • 相关阅读:
    elasticsearch-5.1.1 安装的问题
    idea 新建New Module时Maven的列表加载不出来
    使用X-Pack插件来进行权限控制
    Groovy学习记录-------Groovy安装/配置
    学习使用Apollo配置中心
    Apollo配置中心介绍
    自定义的GitLab 头像无法正常显示以及URL总是指向localhost
    2020/2/19
    一九八四
    Python 进阶
  • 原文地址:https://www.cnblogs.com/yang131/p/13237353.html
Copyright © 2011-2022 走看看