【发布时间】:2018-10-29 09:16:33
【问题描述】:
我创建了一个纹理并用它们填充:
size_t size = width * height * 4;
float *pixels = new float[size];
for (size_t i = 0; i < size; ++i) {
pixels[i] = 1.0f;
}
glTextureStorage2D(texture_id, 1, GL_RGBA16F, width,
height);
glTextureSubImage2D(texture_id, 0, 0, 0, width, height, GL_RGBA,
GL_FLOAT, pixels);
我使用线性过滤 (GL_LINEAR) 并钳制到边框。
但是当我绘制图像时:
color = texture(atlas, uv);
最后一行的 alpha 值看起来小于 1。如果在着色器中我将 alpha 设置为 1:
color.a = 1.0f;
它正确地绘制它。这可能是什么原因?
【问题讨论】:
标签: c++ opengl textures shader