【问题标题】:How does glsl's texture2d command work with GL_LINEAR texturesglsl 的 texture2d 命令如何处理 GL_LINEAR 纹理
【发布时间】:2016-01-03 21:58:38
【问题描述】:

我不确定 texture2D 命令在带有线性过滤的 GLSL 中是如何工作的。它如何在像素之间进行选择和线性插值。

假设我有一个具有 4 个灰度像素值 {0, 1, 2, 3} 的纹理。我想让 OpenGL 把它画在一条 8 像素宽的线上。 texture2D 将如何填充这 8 个像素?

会不会是这样的:{0, .375(3/8), .75(6/8), 1.125(9/8), 1.5(12/8), 1.875(15/8), 2.25 (18/8), 2.625(21/8), 3}?

【问题讨论】:

    标签: opengl textures glsl texture2d linear-interpolation


    【解决方案1】:

    其实这个问题有2个方面: - 是的,GL_LINEAR 表示它是每个方向的线性插值(所以,双线性)。 - 现在,纹理像素和屏幕像素可能不会完全面对面,这取决于顶点的浮点值是将其投影在中心还是在角落。所以它首先改变,最后改变,实际上是所有中间值。

    请注意,对于这些问题,实验几乎比讨论要快:例如,在shadertoy 等网站上,用 GLSL(ES) 进行快速小型实验非常简单。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多