OpenGL рядом с плоскостью зажима
Я работаю над интерактивными сценами для курса компьютерной графики. Я создал программу, которая будет генерировать цветные кубики, и позволю мне вращать их с помощью клавиатуры. Однако их разрезает плоскость ближней обрезки моей камеры:
Я пытался использовать gluPerspective, но документация OpenGL не дает никаких примеров его использования. Я обнаружил, что он используется в примере программы в Интернете, и наполовину тиражировал их код:
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective( 65, 1, 0.01, 100 );
glMatrixMode(GL_MODELVIEW);
Какие-нибудь мысли?
ОБНОВЛЕНИЕ: Как предложено в комментариях ниже, я попытался использовать glFrustum вместо следующего кода:
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glFrustum( -0.5, 0.5, -0.5, 0.5, 0.1, 100 );
glMatrixMode(GL_MODELVIEW);
Опять не было никакой разницы. Я не толкаю полученные матрицы правильно или что-то?
1 ответ
Возможно, вам нужно переместить ваши объекты немного дальше от камеры. Сейчас кажется, что они ближе, чем 0,0.
Учитывая ваше обновление: "Я переместил кубы на целую единицу от камеры, и теперь, когда они вращаются, они обрезаются как ближним, так и дальним плоскостями отсечения", ваши кубы могут быть слишком большими для вашей глубины отсечения (100–0,1). Отодвиньте кубики от камеры на 50 и установите плоскости отсечения на 0,1 .. 1000, чтобы убедиться, что все подходит.
Если проблема останется, нам, возможно, придется взглянуть на код вашей матрицы.