我需要在左侧插入红色三角形,从白色到黑色,如图所示。我已将其扩展为平行四边形,以便更好地理解我试图实现的插值类型。
通过将1分配给三角形的白色极值并将零分配到底部,我没有得到预期的结果,我认为这个特定的情况不会导致透视坐标问题,因为三角形的事实值仍然映射到平行四边形而不是梯形,但我想我错了。
一个解决方案如右图所示,通过计算向量交集来找到p1,计算frag-p1的长度并将其与长度(v3-v1)进行比较,这对于片段着色器来说太过分了?# 39;使用。
另一种昂贵的解决方案是存储由顶点矢量的点形成的角度,并使用一点三角函数和p2和frag来获得v1-v3中的一个点以与整个段插值,这也是疯狂的低效率
最终目标是绘制一个由三角形构成的凸包,从它的中心到黑色到白色的边缘
修改:此问题被标记为'完全重复'另一个就我的理解而言,与我的要求几乎没有关系。所提供的回复都没有对我的情况有所帮助,我想至少知道它的确切定义为“完全重复”
答案 0 :(得分:1)
我认为你应该尝试重心坐标系,这就是OpenGL在不同角落之间插入颜色的方式。 (称为重心插值) 在特定情况下,您应该使用这三个值的单个值来设置颜色。
但是你自己去看看......
这是维基百科的链接:https://en.wikipedia.org/wiki/Barycentric_coordinate_system