0

我有一个简单的 GLSL 纹理渲染器:

顶点着色器:

varying vec2 UV;
void main() {
    UV = gl_MultiTexCoord0.xy;
    gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
}

片段着色器:

varying vec2 UV;
uniform sampler2D diffuseMap;

void main(void) {
    gl_FragColor = texture2D(diffuseMap, UV);
}

我有纯色的纹理。我需要在没有任何插值或抗锯齿的情况下渲染这个纹理(这似乎发生在纯色的边缘)。对我来说,最好只取最近的像素,而不是尝试插值。

我不确定我是否清楚。想象它是这样的:我想用国际象棋图案纹理一个球,我希望结果是纯黑色和白色。但是渲染会在黑白相交的地方产生一点灰色。

4

1 回答 1

1

将 GL_TEXTURE_MIN_FILTER 和 GL_TEXTURE_MAX_FILTER 设置为 GL_NEAREST 并确保您没有 mipmap。

于 2013-07-10T08:45:29.090 回答