如何进行高卢着色? [关闭]

Posted

技术标签:

【中文标题】如何进行高卢着色? [关闭]【英文标题】:How to do gouraud shading? [closed] 【发布时间】:2014-02-25 01:04:42 【问题描述】:

有人可以向我解释 Gouraud 着色吗?我可以继续谷歌“gouraud shading”,但这对我来说没有多大意义。我有 3 个具有 (x, y) 位置和 int[r,g,b] 颜色的顶点。我想线性插值(不确定这意味着什么)顶点的颜色以在三角形中着色。这样做的逻辑是什么?

【问题讨论】:

如果您想真正体验学习 Gouraud 着色,您可以阅读PC-GPE 的“3D 着色”部分! 这是一个宽泛的问题。 Stack Overflow 的格式不适合详细解释大型概念。您应该查找 linear interpolation 并尝试在 2 种颜色之间实现它。如果您在执行此操作时遇到问题,请针对您遇到的问题提出具体问题(在新问题中),并发布一些您认为应该有效但无效的代码。 【参考方案1】:

您将执行 -线性插值。

按照像素行从上到下扫描三角形。每一行都会沿着两条不同的边与三角形相交两次。

您将首先沿这些边执行两次线性插值,计算顶点处 RGB 分量的混合,并根据到这些顶点的距离加权(颜色为a 的权重a 和颜色bDa/(Da+Db) )。

然后您将扫描交叉点之间的像素,在您刚刚计算的两种颜色之间执行另一个线性插值。

这样,您将使用平滑渐变填充三角形,使其与相邻三角形(如果有)连续。

【讨论】:

以上是关于如何进行高卢着色? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Ruby 将文本输出着色到终端? [关闭]

VS2012 如何关闭编辑器标签着色?

c ++ opengl我如何制作着色器文件并在主cpp中使用它[关闭]

为 iTunes 11 中的歌曲列表着色的算法如何工作? [关闭]

具有 2 种颜色的随机着色图的近似值 [关闭]

在opengl矩形上使用着色器会导致它消失[关闭]