2010-12-11 28 views
2

那天晚上我開始玩PanoramaGL。在下載的項目結束後(有一些小問題阻止它編譯出來),我得到了它的工作 - 我裝載了一個1200×512(ish)的全景圖像,並使球形視圖工作得很好。兩個問題:我加載了太大的紋理,這使得它只能在iPhone4上運行(至少,我認爲這就是爲什麼它不適用於我的iPad),而且全景變得非常模糊。OpenGL ES幫助 - 提高PanoramaGL的球形分辨率?

我開始做一些關於在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)和綁定瓷磚作爲質感。

我在正確的軌道上嗎?我希望有人能夠爲我提供指導,以使其發揮作用。

謝謝!

+1

難道你不能把你的球形全景轉換成立方體全景嗎?這會給你6個更小的紋理,而不是1個大。這將幫助您克服最大硬件紋理大小。 – rotoglup 2010-12-11 22:18:48

+0

不幸的是,我使用的全景圖像是球形的。除非有一種簡單的方法將它們改爲立方體,否則我一直在試圖弄清楚如何使它在球面模式下良好運行。雖然..嗯..也許我會考慮如何將它改爲立方體.. – donkim 2010-12-11 22:34:28

回答