我第一次在OpenGL中尝试mip-maps。我遵循了this tutorial,它基于this code。在fragment shader中,我做了以下修改:
Iterator Function()
...翻转y轴值(本教程练习的一部分,以使纹理正确)。 这还将在最后一行设置LOD偏差,以便我可以在纹理中查看较粗的细节。
我还修改了本教程的cpp file:
第29行,关闭了超级采样抗锯齿功能:
Iterator
第87行,创建mip地图:
vec2 uv = UV;
uv.y = 1-UV.y;
color = texture( myTextureSampler, uv, 1 ).rgb;
从183行开始,实现了简单的摄像机移动(以很好地了解其外观):
// glfwWindowHint(GLFW_SAMPLES, 4);
我希望看到input texture的模糊版本,但看起来很糟糕:
“ 1”底部的锯齿状边缘对我完全没有意义。它们出现在纹理中的某些图形上,而不显示在其他图形上。
输入纹理格式为.DDS,这可能是问题的根源吗?这可能是我的驱动程序中的错误吗?我在Ubuntu Linux 16.04上,具有PPA:s中最新的驱动程序。在线搜索,未找到与此主题相关的任何内容。
编辑:我还尝试了一些openGL设置,如下所示:
GLuint Texture = loadDDS("uvtemplate.DDS");
glBindTexture(GL_TEXTURE_2D, Texture);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);
glGenerateMipmap(GL_TEXTURE_2D);
但是它什么也没做。
答案 0 :(得分:0)
问题的根源是旧驱动程序。我正在使用的计算机具有特殊的设置,其中非标准的PPA取代了受ubuntu(规范)支持的PPA。我无法访问某些特殊网络(在客户处)之外的那些。没在sudo apt-get update上读取错误消息。
从我的问题中得到的教训:如果不更新图形驱动程序,可能会引起各种错误,以及如何咬伤您,即使您认为自己已更新它们,也无法预测。和三联检查。感谢@derhass和@ Rabbid76留下有用的评论。