OpenGl三角插值问题

时间:2017-01-04 16:28:03

标签: opengl math

我需要在左侧插入红色三角形,从白色到黑色,如图所示。我已将其扩展为平行四边形,以便更好地理解我试图实现的插值类型。

enter image description here

通过将1分配给三角形的白色极值并将零分配到底部,我没有得到预期的结果,我认为这个特定的情况不会导致透视坐标问题,因为三角形的事实值仍然映射到平行四边形而不是梯形,但我想我错了。

一个解决方案如右图所示,通过计算向量交集来找到p1,计算frag-p1的长度并将其与长度(v3-v1)进行比较,这对于片段着色器来说太过分了?# 39;使用。

另一种昂贵的解决方案是存储由顶点矢量的点形成的角度,并使用一点三角函数和p2和frag来获得v1-v3中的一个点以与整个段插值,这也是疯狂的低效率

最终目标是绘制一个由三角形构成的凸包,从它的中心到黑色到白色的边缘

修改:此问题被标记为'完全重复'另一个就我的理解而言,与我的要求几乎没有关系。所提供的回复都没有对我的情况有所帮助,我想至少知道它的确切定义为“完全重复”

1 个答案:

答案 0 :(得分:1)

我认为你应该尝试重心坐标系,这就是OpenGL在不同角落之间插入颜色的方式。 (称为重心插值) 在特定情况下,您应该使用这三个值的单个值来设置颜色。

但是你自己去看看......

这是维基百科的链接:https://en.wikipedia.org/wiki/Barycentric_coordinate_system