gpt4 book ai didi

iphone - OpenGL ES 帮助——提高 PanoramaGL 的球面分辨率?

转载 作者:行者123 更新时间:2023-12-03 21:09:13 26 4
gpt4 key购买 nike

我开始玩弄 PanoramaGL那天晚上。在对下载的项目进行了一番修改之后(有一些小问题导致它无法立即编译),我让它开始工作——我加载了一张 1200 x 512(左右)的全景图像,并且球形 View 工作得很好。有两个问题:我加载了太大的纹理,这使得该功能只能在 iPhone4 上运行(至少,我认为这就是它在我的 iPad 上无法运行的原因),而且全景图非常模糊。

我开始对 iPhone 上的 3D 进行一些研究,并且我并不(太)尴尬地承认大多数概念都超出了我的理解范围。我没有任何使用 3D 的经验,我希望能从 StackOverflow 的优秀人员那里得到一些帮助。

这就是我想要做的:我想将我的全景图像分解为图 block (我正在考虑垂直条,但我愿意以其他方式做到这一点)。我想将这些图 block 作为纹理加载到 PLSphere View 上,并告诉它某个图 block 对应于某些角度。

查看PanoramaGL的源代码,看起来有一个放置此代码的好地方。在PLSphere类中,有这样的代码块:

- (void)internalRender
{
gluQuadricNormals(quadratic, GLU_SMOOTH);
gluQuadricTexture(quadratic, true);

glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, ((PLTexture *)[textures objectAtIndex:0]).textureId);

gluSphere(quadratic, kRatio, divs, divs);

glDisable(GL_TEXTURE_2D);
}

查看 PLCube,我在其 internalRender 方法中看到以下代码:

// Front Face
glBindTexture(GL_TEXTURE_2D, ((PLTexture *)[textures objectAtIndex:kCubeFrontFaceIndex]).textureId);
glNormal3f(0.0f, 0.0f, 1.0f);
glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);

基于此,我认为我可以指定一个方向(使用诸如 glNormal3f 之类的东西)并将图 block 绑定(bind)为纹理。

我走的路正确吗?我希望有人能为我提供指导,使其发挥作用。

谢谢!

最佳答案

您可以使用 Hugin/pano 将球形纹理更改为 6 个立方体纹理参见

http://vinayhacks.blogspot.com/2010/11/converting-equirectangular-panorama-to.html

纹理大小不是必须是 2 的幂吗?

关于iphone - OpenGL ES 帮助——提高 PanoramaGL 的球面分辨率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4418202/

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