通过示例了解小规模 Gouraud 着色

Posted

技术标签:

【中文标题】通过示例了解小规模 Gouraud 着色【英文标题】:Understanding small-scale Gouraud Shading with an example 【发布时间】:2014-02-20 14:04:19 【问题描述】:

我正在上计算机图形学课程,刚刚通过了关于 Phong 和 Gouraud 着色的讲座。我真的不明白在说什么,所以我转向教科书进行澄清,并找到了一个可能对我有所帮助的可行示例。我想和大家讨论这个例子。

例子说:

During triangle rasterization we are using Gouraud interpolation 
of colors across a triangle to determine the colors of pixels.The triangle we are 
rendering has vertices A, B, and C, with screen-space coordinates A = (30,10), 
B = (30,50), and C = (60, 30).

顶点具有以下 RGB 颜色:

Ac = (25, 160, 30)
Bc = (25, 110, 30)
Cc = (25, 115, 30)

点 (a.) (30,30) 和点 (b.) (45, 30) 的 RGB 颜色是什么?

对于(a)

我假设 A 和 B 的 R 和 B 值 - 它们是相同的,然后,因为 30 正好在 10 和 50 之间...取 A 和 B 的 G 的颜色值的平均值。

所以 (25, 135, 30) 是点的颜色值。我将在下一个问题中使用这个值 - 所以我们称之为 M 点。

对于 (b)

我们唯一的 y 坐标为 30 的点是 C。点 M 位于 (30,30)。所以,因为 (30,30) 和 (60,30) 具有相同的 R 和 B 值......我假设它们对于 (45, 30) 是相同的。同样,我们只是平均 G 值,因为 45 正好在 30 和 60 之间。

所以答案是 (25, 125, 30)。

所以我的问题是 - 这是正确的吗?如果是这样 - 这就是插值的意思吗 - 这种......平均? Phong 着色与此有何不同?

【问题讨论】:

【参考方案1】:

Gouraud 正在更快地在强度之间进行插值。 Phong 正在法线之间进行插值,这更昂贵,但您可以获得更好的质量,更平滑。你没有间断。为了达到相同的质量,Gouraud 需要更大的采样率。

【讨论】:

以上是关于通过示例了解小规模 Gouraud 着色的主要内容,如果未能解决你的问题,请参考以下文章

Phong 和 Gouraud 着色 WebGL

使用 gouraud 着色处理不输出任何内容

WebGL三维模型实现Phong着色(WebGL进阶05)

为 OpenGL Gouraud 着色提供带有三角形条和扇形的法线

DirectX学习笔记:利用平面着色和Gouraud着色模式绘制具有颜色的三角形

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