2010-12-11 7 views
2

Ich fing an, die andere Nacht mit PanoramaGL herum zu spielen. Nach dem Finnen mit dem heruntergeladenen Projekt (es gab einige kleinere Probleme, die es verhinderten, dass es direkt am Gate kompiliert wurde), habe ich es zum Laufen gebracht - ich habe ein 1200x512 (ish) Panoramabild geladen und die sphärische Ansicht funktionierte ziemlich gut . Zwei Probleme: Ich lade eine zu große Textur, was diese Funktion nur auf einem iPhone4 funktioniert (zumindest glaube ich, dass es auf meinem iPad nicht funktionierte), und das Panorama stellte sich als ziemlich verschwommen heraus.Hilfe mit OpenGL ES - Verbesserung der sphärischen Auflösung von PanoramaGL?

Ich fing an, ein bisschen zu lernen, 3D auf dem iPhone zu machen, und es ist mir nicht (zu) peinlich zuzugeben, dass die meisten Konzepte über meinen Kopf gehen. Ich habe keine Erfahrung mit 3D zu arbeiten und hoffe auf Hilfe von den guten Leuten hier bei StackOverflow.

Folgendes möchte ich tun: Ich möchte mein Panoramabild in Kacheln aufteilen (ich dachte an vertikale Streifen, aber ich bin offen dafür, es auf andere Weise zu machen). Ich möchte diese Kacheln als Texturen in der PLSphere Ansicht laden und sagen, dass eine bestimmte Kachel bestimmten Winkeln entspricht.

Mit Blick auf die Quelle der PanoramaGL, es sieht aus wie es ein guter Platz sein würde diesen Code setzen in In der PLSphere Klasse, da ist dieser Code-Block.

- (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); 
} 

Und PLCube suchen, sehe ich den folgenden Code in seiner internalRender Methode:

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

auf dieser Basis würde ich denken, dass ich eine Richtung angeben könnte (mit so etwas wie glNormal3f) und binden, um eine Kachel als ein Textur.

Bin ich hier richtig? Ich bin hoffnungsvoll, dass mir jemand Anleitung geben kann, um das zur Arbeit zu bringen.

Danke!

+1

Konnten Sie nicht einfach Ihr sphärisches Panorama in ein kubisches Panorama umwandeln? Dies würde Ihnen 6 kleinere Texturen anstelle von 1 großen geben. Dies würde Ihnen helfen, die maximale Hardwarebeschaffenheitsgröße zu überwinden. – rotoglup

+0

Leider sind die Panoramabilder, die ich verwende, sphärisch. Es sei denn, es gab einen einfachen Weg, sie in kubisch zu ändern, ich stecke fest, um herauszufinden, wie man das mit dem sphärischen Modus gut macht. Obwohl ... hmm .. vielleicht werde ich schauen, was es braucht, um es in kubische zu ändern. – donkim

Antwort

Verwandte Themen