У меня проблема уже несколько недель. Я работаю на своем собственном движке и работаю над пользовательским интерфейсом. Это выглядит хорошо для меня, и кажется, что все хорошо, кроме прозрачных пленок. Для того чтобы полупрозрачный элемент пользовательского интерфейса обнаруживал элемент позади него, он должен быть закрашен издалека. Проблема возникает, когда я применяю glOrtho к элементам пользовательского интерфейса, так как я не знаю почему, он рисует перед первым элементом списка рисования. Это заставляет меня рисовать от ближнего к дальнему (печатать в правильном порядке), но это делает прозрачные пленки не работающими, потому что это рисует в обратном порядке (чтобы были прозрачные пленки). Как я могу решить эту проблему?
Кроме того, я просмотрел много форумов и не понимаю, почему, если мои znear и zfar не совпадают, элементы пользовательского интерфейса меня не красят. Если я установлю znear на -1, а zfar на 1, перестану рисовать его. Я пробовал разные вещи, и это не работает.
Мой код:
glDisable(GL_CULL_FACE);
glDisable(GL_LIGHTING);
glEnable(GL_BLEND);
glEnable(GL_ALPHA_TEST);
glAlphaFunc(GL_GREATER, 0.0f);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0, App->ui->panel_game->width, App->ui->panel_game->height, 0, App->renderer3D->actual_game_camera->frustum.farPlaneDistance, App->renderer3D->actual_game_camera->frustum.farPlaneDistance);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
.
.
.
.