当前位置: 首页 > 知识库问答 >
问题:

OpenGL纹理缩小工件

丘友樵
2023-03-14

这是用于指定图像属性的代码:

  glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
  glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
  glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
  glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST_MIPMAP_NEAREST);

count 5
name grass_top
uv 0.750 0.750 0.81250 0.81250
name grass_side
uv 0.18750 0 0.250 0.06250
name grass_bottom
uv 0.1250 0 0.18750 0.06250
name dirt
uv 0.1250 0 0.18750 0.06250
name stone
uv 0.0625 0 0.125 0.0625A

这里可能有什么问题,我完全被难住了。。。

共有1个答案

徐奇逸
2023-03-14

我建议将mipmap层限制为4,因为磁贴的大小为16x16。请参阅Mipmap范围和glTexParameter

glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_LEVEL, 4);

如果未指定最大mipmap级别,纹理大小为1x1的所有mipmap级别都将用于纹理采样。在4级以上,纹理图集的瓷砖混合在一起。

 类似资料:
  • 我有一个用于OpenGL中模型渲染的纹理数组。此数组包含漫反射和镜面纹理。由于某些网格没有镜面纹理,因此我在每次渲染后简单地将NULL纹理绑定到我的镜面采样器,并且只有当网格具有镜面纹理时,我才绑定一个。但是,我仍然在没有镜面纹理的网格上看到镜面纹理。 这是我的渲染代码 材质索引保存数组中纹理的索引,如果网格没有镜面纹理 索引为-1 纹理单元0用于漫反射 纹理单元2用于镜面

  • 所以最近我开始阅读OpenGL维基文章。这就是我在这里描述OpenGL纹理的方式。不过,有几点尚不清楚。 以下陈述是真的、假的还是视情况而定? 将两个纹理绑定到同一个纹理单元是不可能的。 将两个采样器绑定到同一个纹理单元是不可能的。 将一个纹理绑定到两个不同的纹理单元是不可能的。 将一个采样器绑定到两个不同的纹理单元是不可能的。 应用程序有责任明确将什么采样器类型传递给什么统一变量。 着色器程序有

  • “我在我的申请中发现了一个奇怪的行为,希望你能解释给我听。”。你看,我有两个3D纹理,它们被发送到片段着色器,渲染得非常好。但有一个问题,当我创建另一个纹理(它是1D纹理)时,一个黑屏正在被渲染,而不是正确的前一个结果。 关于这个1D纹理,我甚至没有将其发送到片段着色器。当我调用glTexImage1D(…)时,黑屏就出现了。我评论这句话,它就消失了!!这两种纹理被渲染。 我觉得纹理单位肯定有问题

  • 在andrid上的opengl es中,当我将两个纹理相邻放置时,会有一个轻微的接缝,可以看到它们后面绘制的对象。基本上看起来是一个小差距。我把范围缩小到了地图上 glTexParameteri(GL_纹理_2D、GL_纹理_最小过滤器、GL_线性_MIPMAP_线性);glTexParameteri(GL_纹理_2D、GL_纹理_MAG_过滤器、GL_线性); 如果我将它们都设置为距接缝最近的G

  • 假设我有一个金字塔…我知道如何绘制它,我知道如何为整个金字塔设置纹理,但如何为每面墙设置不同的纹理? 我通过在 我试图通过添加<code>GL11.glBindTexture(GL11.GL_TEXTURE_2D,TEXTURE.getTextureID())来绑定纹理 后,但

  • 好的,所以我需要创建我自己的纹理/图像数据,然后在OpenGL中将它显示到一个四边形上。我让四边形工作,我可以用我自己的纹理加载器在上面显示一个TGA文件,它完美地映射到四边形。 但是我如何创建自己的“自制图像”,即每个像素1000x1000和3个通道(RGB值)?纹理数组的格式是什么,例如如何将像素(100,100)设置为黑色? 这就是我对完全白色的图像/纹理的想象: 编辑:下面的答案是正确的,