gpt4 book ai didi

objective-c - 在 iSGL3d 中实现非 2 的幂纹理

转载 作者:可可西里 更新时间:2023-11-01 06:11:39 24 4
gpt4 key购买 nike

我编写了一个严重依赖 iSGL3d 进行 3D 渲染的应用程序,现在我已经到了一个地步,出于内存分配的原因,我需要开始摆弄纹理大小。

我的应用程序使用非常大的纹理 (1024x1024),从这个尺寸到 512x512 是 Not Acceptable

因此,以 GL ES 2.0 为基础,我想将我的纹理略微缩小到接近 700x700 的水平

我知道这是可能的,因为我在前世煞费苦心地手写了 OpenGL 代码,使用了非 2 的幂次方纹理

但我花了很多时间试图筛选 iSGL3d 的代码以找到我可以影响此更改的位置...现在该项目似乎已被放弃。

基本上,默认情况下,即使您使用 GLES 2.0 实例,iSGL3d 也只会制作一个二次方位图并将您的纹理转储到其中,留下一堆透明像素。这是毫无值(value)的。

将纹理大小强制为非二次方图像会产生 GL 错误。我假设这是因为我没有在任何需要强制执行的地方正确强制执行它,或者 iSGL3d 没有正确使用 GLES 2.0,因为它应该是

任何指针都会有用...

最佳答案

simply by disabling mipmapping, even valid textures fail to draw

您是否将这些纹理的缩小采样设置为不使用 mipmap?它默认为 mipmap 选项,因此如果您不使用 mipmap,则必须将其设置为其他选项。

例如

glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);

关于objective-c - 在 iSGL3d 中实现非 2 的幂纹理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11850922/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com