Итак, я использую Xcode 3.2.1 и пытаюсь создать проект iPhone OpenGL ES1. Шаблон по умолчанию для проекта opengl подходит, но я пытался разделить код, чтобы не все выполнялось для каждого кадра при вызове drawView ().
У меня есть отдельный метод setupRC, который устанавливает освещение, включает тест глубины, включает отбраковку и устанавливает четкий цвет. Это вызывается при инициализации EAGLView, и это прекрасно работает.
Я взял вызовы glViewport () и glFrustrum () и поместил их в конец метода resizeFromLayer () в файле ES1Renderer.m. Это срабатывает, когда приложение запускается и когда приложение меняет размер должным образом.
Теперь проблема в том, что дальний угол пирамиды кажется испорченным, так как все мои объекты обрезаются / обрезаются. Я попытался отрегулировать положение и угол камеры, но по-прежнему все объекты обрезаны / обрезаны. Я увеличил дальность с 1000.0f до 30000.0f и все равно получил тот же результат. Что безумно, так это то, что если я вызываю вызовы glViewport () и glFrustrum () в drawView () в каждом кадре, все выглядит правильно. Ничего не обрезано и похоже, что я этого хочу. Из всего, что я читал, вызовы frustrum и viewport нужно вызывать только тогда, когда создается окно / и изменяется его размер, но если я не назову это каждый кадр в моем проекте, это не сработает. Любые идеи?
Заранее спасибо