那天晚上我开始玩PanoramaGL。在完成下载的项目后(有一些小问题阻止它从门外编译),我开始工作了 - 我加载了一个1200乘512(ish)的全景图像,得到的球形视图工作得很好。两个问题:我加载了太大的纹理,这使得它只能在iPhone4上工作(至少,我认为这就是为什么它在我的iPad上不起作用),而且全景变得相当模糊。 / p>
我开始做一些关于在iPhone上做3D的研究,我不会(也)不好意思承认大多数概念都在我头上。我没有任何使用3D的经验,我希望能从StackOverflow的好人那里得到一些帮助。
这就是我想要做的事情:我想把我的全景图像分解成瓷砖(我正在考虑垂直条带,但我愿意以其他方式做到这一点)。我想在PLSphere
视图上将这些图块作为纹理加载,并告诉它某个图块对应于某些角度。
查看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
之类的东西)并将图块绑定为纹理。
我在这里走在正确的轨道上吗?我希望有人可以为我提供指导,让它发挥作用。
谢谢!
答案 0 :(得分:2)
您可以使用hugin / pano将球形更改为6个立方体纹理 见
http://vinayhacks.blogspot.com/2010/11/converting-equirectangular-panorama-to.html
不要纹理大小必须是2的幂?