Перевернуть текст по вертикали

Я использую Шрифтсташ для загрузки и рендеринга текста. Однако, когда я рисую, текст переворачивается по вертикали: перевернутый текст

Я не могу изменить происхождение, поэтому я думаю, что мне нужно повернуть текстуру здесь, однако я не уверен, как это сделать и правильно ли это.

Я устанавливаю матрицы следующим образом:

GLint viewport[4];
glGetIntegerv(GL_VIEWPORT, viewport);
glViewport(0, 0, viewport[2], viewport[3]);

glMatrixMode(GL_PROJECTION);
glLoadIdentity();

glOrtho(0, viewport[2], viewport[3], 0, -1, 1);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();

Этот код рендеринга не сильно влияет на состояние и использует более старый (не современный) OpenGL. Поэтому вам нужно убедиться, что ваши матрицы видового экрана и модели-вида-проекции правильно указаны в цикле рендеринга ваш (для чего, возможно, вам следует показать код в своем вопросе). Ищите (glViewport, glMatrixMode и любые матричные функции, которые вы используете для установки вашей камеры)

Wyck 20.03.2022 03:45

Хорошо, я отредактировал свой пост

aveleg 20.03.2022 04:22

Так перевернуты ВСЕ координаты или только текст? Вы можете перевернуть свою ортоматрицу glOrtho(0, viewport[2], 0, viewport[3], -1, 1); Я также все еще пытаюсь понять ваше ограничение «Я не могу изменить начало координат». Почему нет?

Wyck 20.03.2022 05:03

Переворачивается только текст, я пытался перевернуть орто-матрицу, но текст просто не отображается или, возможно, выходит за пределы. Что касается ограничения, я не уверен, что fontstash поддерживает это (я работаю с устаревшим кодом), поэтому я подумал о повороте текстуры.

aveleg 20.03.2022 13:10

Если вы перевернули область просмотра и ничего не появилось, это может быть связано с тем, что у вас включено отсечение лица (glEnable(GL_CULL_FACE)), которое по умолчанию отбрасывает заднюю поверхность в соответствии с порядок намотки, который по умолчанию равен glFrontFace(GL_CCW), и вам нужно изменить это на GL_CW если вы переворачиваете вещи в Y, но не в X. (Если он вообще используется).

Wyck 20.03.2022 15:12

Оно работает! Я опубликую это как ответ. Большое спасибо!

aveleg 20.03.2022 16:05
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
6
37
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вик указал, что у меня было включено отсечение лиц, и его отключение прекрасно решило проблему при переворачивании орфографической матрицы.

Другие вопросы по теме