Я начал играть с 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
) и связать плитку в качестве текстуры.
Я на правильном пути? Я надеюсь, что кто-то может дать мне руководство, чтобы заставить это работать.
Спасибо!