Помогите с OpenGL ES - Улучшение сферического разрешения PanoramaGL? - PullRequest
2 голосов
/ 11 декабря 2010

Я начал играть с PanoramaGL той ночью. Закончив с загруженным проектом (были некоторые незначительные проблемы, которые не позволили ему скомпилировать прямо из шлюза), я заставил его работать - я загрузил панорамное изображение 1200 на 512 (иш) и получил сферический вид, работающий довольно хорошо , Две проблемы: я загружаю слишком большую текстуру, которая делает это работающим только на iPhone4 (по крайней мере, я думаю, именно поэтому он не работал на моем iPad), и панорама оказалась довольно размытой.

Я начал немного изучать работу с 3D на iPhone, и мне не слишком стыдно признать, что большинство концепций у меня над головой. У меня нет опыта работы с 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 Ответ

2 голосов
/ 27 сентября 2011

Вы можете поменять текстуру на 6 кубических, используя hugin / pano, см.

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

не должны ли размеры текстур быть степенями 2?

...