问题标签 [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++ - 如何使用 glReadPixels() 从 FBO 返回调整大小的图像?
很快:我需要一种快速的方法来调整缓冲区图像的大小,然后将像素返回给我以将它们保存到文件等。
目前我首先使用 glReadPixels(),然后我自己通过像素来使用我自己的调整大小函数调整它们的大小。
有什么方法可以加快调整大小,例如让 OpenGL 为我完成这项工作?我想我可以在启用 miplevel 和 mipmapping 的情况下使用 glGetTexImage(),但正如我之前注意到的,该功能在我的 GFX 卡上存在错误,所以我无法使用它。
我只需要一个 miplevel,它可以是 1 到 4 之间的任何值,但不是全部,以节省一些 GPU 内存。那么是否可以只生成一个所需大小的 miplevel?
注意:我不认为我可以使用多重采样,因为我需要对模板测试进行像素精确渲染,所以如果我用多重采样渲染它,它会产生模糊的像素,并且它们会因模板测试和遮罩而失败,结果将不正确(AFAIK) . 编辑:我只想缩放颜色(RGBA)缓冲区!
opengl - 如何在 OpenGL 中动态启用/禁用纹理 mip-maps?
所以,glGenerateMipMap很棒。我想知道几件事:
- 假设纹理图像通过glTexSubImage2D更改,对 glGenerateMipMap 的另一个调用是 - 足够/需要/不必要?
- 假设最终用户应该能够即时“启用/禁用 mip-map”,当然 GL_TEXTURE_MIN_FILTER 必须相应地设置为 mipmap 与否。但是,之前生成的 mip-map 仍保留在 GPU VRAM 中,对吗?- 可以“提示”驱动程序删除这些吗?我是否必须重新上传原始纹理图像(但现在不再将 min-filtering 设置为 mipmap)以清除包含先前生成且现在不需要的 mip-map 的内存?
背景——在其他也需要对上述问题有更多见解的用例中,我还想“跟踪应用程序消耗的大约 GPU VRAM”(出于各种原因,例如可扩展的任意纹理/顶点流) --- 通过跟踪应用程序填充的 GL 缓冲区以及上传的纹理(确保它只是一个近似值但足够好)。跟踪它们的 mip-maps 也是必要的,因此知道如何清除它们或它们何时被当前 GL 实现清除将非常有用。
opengl-es - 如何为 LibGDX 生成 mipmap .png 和模型 .obj 文件?
我正在使用 LibGDX(用于 Android 的 OpenGL ES 2.0 包装器)。
我在https://github.com/libgdx/libgdx/blob/master/demos/invaders/gdx-invaders/src/com/badlogic找到了一些使用准备好的文件为它们加载模型和 mipmap 纹理的示例代码/gdxinvaders/RendererGL20.java它读取模型的 .obj 文件和 RGB565 格式的 .png 文件以对其应用 mipmaped 纹理。
我创建这些文件的最佳/最简单的方法是什么?
我知道 .obj 文件是由一堆工具生成的(到目前为止我安装了 Blender、Wings3D 和 Kerkythea),但对于不熟悉 3D 建模的人来说,哪些工具对用户最友好?
但更重要的是,如何生成带有 mipmap 纹理的 .png 文件?我查看的 .png ( https://github.com/libgdx/libgdx/blob/master/demos/invaders/gdx-invaders/data/ship.png ) 似乎包含每个面的不同纹理,可能是创建的用一些工具。我浏览了已安装的 3 个工具的菜单,但没有找到导出此类 .png 文件的选项。我错过了什么?
opengl-es - 将 glGenerateMipmap() 与 glCopyTexImage2D() 一起使用
我希望使用 glCopyTexImage2D() 上传具有非零 mipmap 级别的纹理。我正在使用以下代码:
在这里,如果我使用 mipmap_level = 1,则根本不会绘制几何图形。mipmap 级别如何与 glCopyTexImage2D() API 结合使用?我想使用 level = 1 加载 64x64 纹理,即第一个采样的 mipmap。在 glCopyTexImage2D() 之前使用 glGenerateMipmap() 调用没有任何意义。那么驱动程序将如何使用 glCopyTexImage2D() 加载非零 mipmap 级别?
three.js - 如何检测纹理图像何时在 THREE.Mesh 中加载完成?
我使用 ColladaLoader 在 Three.js 中加载 3D 场景。我尝试从网格对象纹理图像创建 mipmaps 图像。问题是当我访问图像宽度和高度时,图像没有完全加载。在完全加载之前,宽度和高度都为零。
加载 dae 文件时,ColladaLoader 会触发“完成”功能。然后我在场景中搜索各个场景对象。具有图像纹理的网格对象之一需要创建 mipmap。问题是当我访问图像时,它的属性没有设置。渲染场景时,包括图像纹理在内的所有对象都被完美渲染(尽管没有 mipmap)。有没有办法让我将事件处理程序添加到图像加载完成时触发的纹理/图像?如果有这样的事件(在 Three.js 对象中),我可以在场景/对象可能已经渲染时添加 mipmaps 吗?我必须采取什么措施来提醒渲染管道 mipmap 已更改?
示例代码有人吗?我可以在 Blender 中预先计算 mipmap 并将它们保存到 dae 文件中吗?我怎么做?我要搜索 Blender 文档...不过欢迎提示...
opengl - OpenGL save compressed textures and mipmaps
I'm trying to make my loading a bit faster (right now engine loads TGA files, compress them and creates mipmaps and it takes too long) So my idea is to save already compressed textures and next time just copy-paste it to memory without compressing it another time. But there is a problem - I don't know how to save compressed textures to a file. I have to save data in format that is very easy for opengl to load. Same situation with mipmaps.
opengl-es-2.0 - 在 OpenGL ES 2.0 中禁用 mipmapping
我想在屏幕(OpenGL ES 2.0)上绘制一些相同的图形(具有相同的纹理)。这些数字在放大和缩小过滤器中会有所不同。以及不同状态的mipmapping。问题是:如果我在绘制任何图形时使用 mipmapping(如果我调用 glGenerateMipmap() 函数)我无法关闭 mipmapping 模式。如果我至少调用一次 glGenerateMipmap() 是否可以关闭 mipmapping 模式?
java - OpenGL Mipmap Texture_2D
我是openGL的新手,我使用LWJGL。
我不知道如何查看“Mipmaps 是否正常工作”
这就是我加载图像 (64x64) 的方式:
这就是我绘制图像的方式:
绘制是正确的,我可以看到我的图像,但如果我更改 DisplayMode(从 800x600 到 1280x960),图像不会长大。所以问题是我需要图像长大以适应分辨率。
javascript - 您可以在three.js 中将加载为纹理的图像作为另一个纹理mipmap 提供吗?
这是一个问题,不是问题。
我正在使用地图集纹理的地形。为了减轻颜色渗色,我想用内置在外部工具中的 mipmap 来提供地形纹理。
暂时我用...
...加载每个 mipmap 级别并将它们添加到级别 0 纹理...
... mipsTexs 只是一个关联数组,用于知道每个纹理对应的位置。
真正的问题是,当我输入手动 mipmap 并着色时,地形全黑,但使用 webgl 生成的 mipmap 会出现颜色渗色伪影。
手动 mipmap 的唯一示例在示例中,但纹理的 mipmap 馈送是画布。我想知道我看到的全黑问题是否是由于使用 JS 图像而不是画布造成的。