问题标签 [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.
c++ - glGenerateMipmap- 找不到标识符?
我正在尝试实现 glGenerateMipmap 以便我可以继续重新着色我渲染的立方体的每个级别,除了程序不会编译给出错误
'错误 C3861:'glGenerateMipmap':找不到标识符'
我已经包含了'#include'并且在标题中定义似乎存在(虽然在IF语句中?见下文)所以我想知道是否有办法以某种方式重新定义/定位它,以便程序编译或运行,如果没有,是否有另一种自动生成 mipmap 的方法?
非常感谢,克里斯
c++ - 通过在 GLSL 中为不同的屏幕区域着色来识别 Mip 地图级别
我不想用代码轰炸这篇文章。我有一个主文件、片段着色器和一个顶点着色器文件。
我需要知道根据 mipmap 级别为屏幕着色应该采取的步骤?即循环应该去哪里询问mipmap级别,然后相应地设置颜色。我不知道在哪里实现这个或如何实现,一个简单的例子就足够了,非常感谢。
opengl - 通过 FBO 使用 Render to Target 时是否需要重新生成 MipMap?
假设 mipmapping 是可取的:
我打电话给 glGenerateMipmapEXT(GL_TEXTURE_2D); 当我第一次为我的 FBO 分配渲染目标时。当我完成渲染后是否必须再次调用它以正确填充所有 mipmapping 级别,或者后续渲染调用是否同时渲染到所有级别?
我有一个示例,当最小过滤器(GL_LINEAR_MIPMAP_LINEAR)启动时,我的一个对象正在淡入 <0,0,0,0>,并且我假设在渲染后未重新进行 mipmapping 会导致此问题。
我浏览了一些示例,发现有几个在其中进行了后续 glGenerateMipmap 调用,但更多的是没有调用的地方。
意见?
opengl - OpenGL Mipmaps 和 SOIL 标志
所以我现在让 SOIL 加载我的图像,但它说你可以为 MipMap 生成设置一个标志。我设置了标志,据我所知,在某些时候使用 MipMaps 时,OpenGL 会完成其余的工作。
我错了吗?如果我是,我如何让 MipMaps 工作?
编辑:所以这是我的初始化函数,我在其中调用 SOIL 以使用 FLAG 为 MIPMAPS 加载我的图像
这就是我调用 bindtexture 和 texparam 的地方(缩短它,因为它只是立方体的其他面,popmatrix 和 end } 用于函数
graphics - 总面积表与 Mipmap
Summed area table 是一种预过滤技术,用于避免纹理映射中的混叠。我想知道它是如何工作的,以及与 Mipmap 相比有哪些优点和缺点。谢谢
opengl - JOGL mipmaps 和纹理闪烁
我的 OpenGL 2 场景中有一面墙和一块砖纹理,无论我设置什么,它都会不断闪烁和闪烁。当我近距离放大(并且可以清楚地看到纹理)时,闪烁和闪烁停止。但是当我缩小并在场景中移动时,闪烁和闪烁非常明显。这是砖墙的纹理代码:
从我搜索的内容来看,这似乎是 mipmapping 解决的问题。但我的问题是,如何做到这一点?我是否必须为 2 尺寸图像的所有不同功能创建、加载和设置参数?谁能给我一个示例,使用不会闪烁和闪烁缩放和在场景中移动的 mipmap 加载和显示 JOGL2 纹理?
opengl - 如何使opengl mipmaps更清晰?
我正在重写一个基于 opengl 的 gis/mapping 程序。除其他外,该程序允许您加载海图的光栅图像,将它们固定到 lon/lat 坐标并在它们上缩放和平移。
该程序的先前版本使用自定义平铺系统,实质上它手动创建原始图像的 mipmap,以 256x256 像素的平铺形式在各种二次方缩放级别。缩放级别 n - 1 的图块由缩放级别 n 的四个图块构成,使用简单的四点平均算法。因此,它关闭了 opengl mipmapping,而是当需要以某个缩放级别绘制图表的某些部分时,它使用最接近匹配缩放级别的图块(即图块处于二次方缩放级别,但程序允许任意缩放级别)然后缩放图块以匹配实际缩放级别。当然,它必须在各个级别管理所有这些切片的缓存。
在我看来,这个平铺系统过于复杂。看起来我应该能够让图形硬件为我完成所有这些 mipmapping 工作。所以在新程序中,当我读入一张图片时,我将它切成每个 1024x1024 像素的纹理。然后我将每个纹理固定到它的 lon/lat 坐标,然后在我缩放和平移时让 opengl 处理其余部分。
它有效,但问题是:我的结果比原始程序有点模糊,这对这个应用程序很重要,因为您希望能够尽早阅读图表上的文本,放大。因此,就清晰度而言,原始程序使用的简单四点平均算法似乎比 opengl + 我的 GPU 提供了更好的结果。
我知道有几个 glTexParameter 设置可以控制 mipmap 如何工作的某些方面。我尝试了 GL_TEXTURE_MAX_LEVEL(从 0 到 10 的任意值)与 GL_TEXTURE_MIN_FILTER 的各种设置的各种组合。当我将 GL_TEXTURE_MAX_LEVEL 设置为 0(无 mipmap)时,我当然会得到“锐利”的结果,但它们也是锐利,从某种意义上说,像素只是在这里和那里被丢弃,所以在中间变焦时数字是不可读的。当我将 GL_TEXTURE_MAX_LEVEL 设置为更高的值时,当您将图像拉远时(例如,当整个图表适合屏幕时),图像看起来非常好,但是当您放大到中间缩放时,您会注意到模糊,尤其是在查看时图表上的文字。(即,如果不是因为文本,您可能会认为“哇,opengl 在平滑缩放我的图像方面做得很好。”但是对于文本,您会认为“为什么这张图表失焦了?”)
我的理解是,基本上你告诉opengl生成mipmap,然后当你放大它时选择合适的mipmap来使用,并且有一些有限的选项可以在两个最接近的mipmap级别之间进行插值,或者使用最接近的像素或平均附近的像素。但是,正如我所说,在图表上相同的缩放级别(即,文本很小但不是微不足道的缩放级别,例如相当于“7 点”或“ 8 点”大小),与之前基于图块的版本相同。
我的结论是,opengl 创建的 mipmap 比之前使用平均四点算法创建的程序更模糊,并且无论选择正确的 mipmap 或 LINEAR vs NEAREST 都不会获得我需要的清晰度。
具体问题:
(1) opengl 实际上比原始程序中的平均四点算法制作更模糊的 mipmap 似乎正确吗?
(2) 在使用 glTexParameter 时,我是否可能忽略了一些可以使用 opengl 正在制作的 mipmaps 提供更清晰结果的东西?
(3)有什么方法可以让opengl首先制作更清晰的mipmap,例如通过使用“立方”过滤器或以其他方式控制mipmap创建过程?或者就此而言,我似乎可以使用相同的平均四点代码来手动生成 mipmap 并将它们交给 opengl。但是我不知道该怎么做...
opengl - OpenGL纹理图像模糊
我正在尝试创建一个代表高程的 mipmapped 纹理图像。图像必须是 940 x 618。我意识到我的纹理的宽度和高度必须是 2 的幂。截至目前,我已经尝试逐步完成所有的正方形纹理(例如 64 x 64 或 128 x 128,甚至 512 x 512),但图像仍然模糊。知道如何更好地纹理这种尺寸的图像吗?
c++ - 多尺度/分辨率 C++ 容器
我正在寻找一个 C++ 数组/类似向量的容器(模板是一个加号),它自动构建数据的内部多分辨率表示(mipmap),最好默认使用 2(二元)的下采样。我的主要计划是使用它来处理采样波,即音频和无线电信号,但 1、2 或 3 维的通用模板将是一个额外的好处。OpenGL 或 OpenCL 的后端会非常酷。
/每
textures - JOGL 闪烁/纹理闪烁问题
我在 JOGL 程序中遇到了纹理问题。我在从显示列表中获取的立方体上绘制的纹理正在闪烁。这是一个显示问题的视频: http ://www.youtube.com/watch?v=nIj3b_Rs7Nw (抱歉视频不好,我不知道一开始出了什么问题)首先我认为这将是一个抗锯齿问题,但我使用了更平滑的纹理,问题仍然存在。然后我在纹理上启用了 mipmapping,但没有运气。结果总是一样的。
这是我第一次用来准备纹理的代码。这是没有mipmapping的。
然后我决定使用 JOGL 纹理类中的构建。setTexParameteri()
我从这篇文章JOGL mipmaps and texture shimmering中接听的电话,但他们并没有解决问题。
所以现在我不知道该怎么做才能摆脱闪烁。有什么建议么?