问题标签 [mipmaps]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
5309 浏览

opengl - 在 GLSL 片段着色器中,如何访问特定 mipmap 级别的纹素?

我正在使用 OpenGL 通过一个顶点着色器和一个片段着色器的组合来进行一些 GPGPU 计算。我需要对不同比例的图像进行计算。我想使用 mipmap,因为它们的生成可以是自动的和硬件加速的。但是我无法访问片段着色器中的 mipmap 纹理。

我启用了自动 mipmap 生成:glTexParameteri(GL_TEXTURE_2D, GL_GENERATE_MIPMAP, GL_TRUE);

我尝试在着色器中使用texture2DLod,但没有成功,它只是保持正常纹理。我还尝试在主程序中使用 glTextureParameteri(GL_BASE_LEVEL, X) 并没有改变任何东西。

你会怎么做?

我正在使用 Linux。我的显卡是相当老的 Nvidia Quadro。是我的 glxinfo 输出,包含所有受支持的扩展。

0 投票
1 回答
2332 浏览

opengl - 如何使用 Mipmapping 将 CUDA 生成的 PBO 复制到纹理

我正在尝试将 PBO 复制到启用了 automipmapping 的纹理中,但似乎只生成了顶级纹理(换句话说,没有发生 mipmapping)。

我正在使用

我正在使用

后来在内核中,我使用以下内容修改了 PBO:

现在,在我使用上面生成的纹理绘制到屏幕之前,我调用:(注意上面的 rtMipmapTex = *textureID 和上面的 rtResultPBO = *pbo)

这一切都可以正常工作并正确显示纹理。但是,如果我将最后一行更改为

据我了解,它应该向我显示纹理金字塔中的第一级而不是第零级纹理,我只得到一个空白的白色纹理。

如何以触发自动 mipmapping 的方式从 PBO 复制纹理?

谢谢。

0 投票
2 回答
2578 浏览

opengl - 是否可以使用自定义 mipmap 大小?

我目前正在研究某种虚拟纹理实现。mipmap 级别用作细节级别控制结构。(虚拟纹理中的每个纹素都与“真实”纹理中的数据块相关。)

数据存在于多个细节级别中,这导致虚拟纹理中的块数不同。

例子:

我的想法是为虚拟纹理中的每个细节级别调用 glTexImage 以创建不同的 mipmap 级别。

问题是尽管创建或更新/加载时没有错误,但我无法从纹理中获取任何数据。仅创建基本级别并调用 glGenerateMipmap 可以正常工作,但会导致某些基本尺寸的尺寸错误。(从技术上讲,它们是正确的,但在我的情况下不是)

我在某处读到 mipmap 级别大小必须是除以二(或除以二和地板)。

问题:

  • 是否可以加载“自定义”mipmap 级别?
  • 是否有任何限制 mipmap 级别大小?
0 投票
2 回答
614 浏览

opengl - OpenGL:精确的纹理可能吗?

这适用于使用 OpenGL 的 2D 游戏:

使用 OpenGL 是否可以显示绝对未过滤、未拉伸或模糊的纹理?

所以当我有一个 BMP 并将其转换为 OpenGL 纹理,然后检索该纹理并将其转换回来时,我没有修改或质量/数据丢失?

0 投票
1 回答
504 浏览

direct3d - D3D 无法在某些卡上自动生成 mipmap!

在大多数计算机上,我的程序运行良好。但在一台计算机上,它无法生成 mipmap。

我用 D3DUSAGE_AUTOGENERATEMIPMAP 创建了一个纹理,

D3DCAPS2_CANAUTOGENMIPMAP 说是,CheckDeviceFormat 也说 D3D_OK(not D3DOK_NOAUTOGEN)。

然后我使用 LoadSurfaceFromMemory 填充纹理。

但是在那台特定的计算机上,不会生成任何 mipmap。更糟糕的是,电脑是我领导的!!

0 投票
2 回答
835 浏览

opengl - OpenGL中的MipMapping问题

我正在将 3D 对象(obj 或 3ds 或 collada 文件)加载到我的 openGL 应用程序中。3 环境相当大(全轴几百米)。我的问题是较小的 3D 对象(即按 ~< 1-2m 的顺序)似乎没有正确地进行深度测试。根据相机的变焦,我有时可以看到物体的背面(我一直在使用简单的立方体进行测试)或其他面变得可见/不可见/撕裂。请参阅附图以获得更好的解释。我被引导相信问题是由于启用了 mipmapping。我想禁用 mipmapping(有人可以建议一种简单、快速的方法来执行此操作)或将 mipmapped 对象的分辨率设置为更大。还是我完全找错了树?

替代文字 替代文字 替代文字

谢谢

克里斯

0 投票
2 回答
175 浏览

opengl - 渲染到平面四边形 (OpenGL) 上的纹理的 Mipmapping 问题

在将纹理渲染到平面四边形时,我遇到了似乎是 mipmapping 的问题。在某些相机位置,物体看起来很好,但在其他位置,它变得非常模糊。不幸的是,我在这个问题上并没有任何好的线索,但我想如果我发布一些其他有其他问题的照片,可能会给我一些见解。
普通的:

替代文字

缩小:

替代文字

旋转:

替代文字

谁能给我任何关于这里可能发生的事情的线索?

0 投票
3 回答
1280 浏览

android - 使用 mipmap 会产生垃圾纹理

我在创建纹理时创建了自己的 mipmap,一旦我通过 GL_LINEAR_MIPMAP_NEAREST(或任何 MIPMAP)启用 mipmap,纹理就会变得非常黑暗、模糊。如果我切换到 GL_LINEAR,它们就很好。

这是我创建纹理的方式:

为简洁起见,我省略了所有 Bitmap.recycle()/NewGlobalRef() 调用。createScaledBitmap显然是对 Bitmap.createScaledBitmap() 的 JNI 调用。

我还尝试了其他版本的 texImage2D,它采用位图的格式和类型。我已经验证它始终是 RGBA。

编辑:详细说明纹理 - 它们实际上几乎是黑色的。我在 mips 上尝试了使用明亮颜色的 eraseColor(),但它们仍然非常暗。

0 投票
2 回答
329 浏览

iphone - 禁用mipmaping时出现空白纹理?

我没有掌握 OpenGL 的所有精妙之处,如果我的问题不够精确,我很抱歉

在 iPhone 上,我像这样加载纹理(png 图像)

效果很好,但我注意到这恰好分配了纹理数据大小的两倍。我在论坛上读到这可能是由 mipmaping 引起的,所以我尝试通过评论 glTexParameteri 行来关闭它,但是我的纹理是空白的。

这是一个问题是我的显示代码中的纹理加载参数吗?我的显示代码是这样的

0 投票
2 回答
569 浏览

iphone - iPhone 上的 GL_TEXTURE_MIN_LOD 在哪里?

有没有等价物?是 iPhone 限制还是 OpenGL 版本限制?我在任何地方都找不到 mipmap 级别的功能。