Программирование игр, создание игрового движка, OpenGL, DirectX, физика, форум
GameDev.ru / Программирование / Форум / OGL экранные координаты вершин?

OGL экранные координаты вершин?

Страницы: 1 2 3 Следующая »
gamedevforПостоялецwww2 ноя. 201714:44#0
Этот вопрос неоднократно здесь всплывал но так и не нашел конкретного ответа.

Есть OGL в Ortho проекции (то есть 2D)
Хочу задавать координаты вершин в экранных координатах где [0, 0] - top left of the screen; [screen_width, screen_height] - bottom right of the screen,
Как это сделать?

P.S. Сейчас использую запись вида:

//   0.5f,  0.5f, 0.0f,
//   0.5f, -0.5f, 0.0f,
//   -0.5f, -0.5f, 0.0f,
//   -0.5f,  0.5f, 0.0f,
Но это жутко неудобно.

AMM1AKПостоялецwww2 ноя. 201714:58#1
Тебе нужно правильно настроить матрицу проектирования. Если используешь glOrtho или что-то вроде, то прочитай документацию по ней, там должен быть функционал для того, что тебе нужно.
gamedevforПостоялецwww2 ноя. 201715:08#2
AMM1AK

Сейчас так:

  glViewport(0, 0, screen_width, screen_height);
  glDisable(GL_DEPTH_TEST);
  glMatrixMode(GL_PROJECTION);  
  glLoadIdentity();
  glOrtho(0.f, screen_width, screen_height, 0.f, -1.0f, 1.0f);
  glMatrixMode(GL_MODELVIEW); 
  glLoadIdentity();

Что еще нужно добавить?

gamedevforПостоялецwww2 ноя. 201715:09#3
glasm
Хочу сделать чтобы OGL сам автоматически транслировал координаты как ему надо.
The PlayerУчастникwww2 ноя. 201717:09#4
gamedevfor
> glMatrixMode(GL_PROJECTION); glLoadIdentity(); glOrtho(0.f, screen_width,
> screen_height, 0.f, -1.0f, 1.0f); glMatrixMode(GL_MODELVIEW); glLoadIdentity();
Есть мнение, что нужно выбросить говно мамонта и писать матрицы самостоятельно.
gamedevforПостоялецwww2 ноя. 201717:24#5
The Player
У меня в вертексный шейдер матрицы передаются в том числе и PROJECTION матрица.
У кого то есть готовая матрица для этого?

DeamonПостоялецwww2 ноя. 201717:53#6
gamedevfor
В любой современной математической библиотеке. GLM или MathFU в помощь
gamedevforПостоялецwww2 ноя. 201717:57#7
Deamon
Не использую никаких библиотек, ни у кого нету в коде этой матрицы?
KumoKairoПостоялецwww2 ноя. 201720:10#8
Не использую никаких библиотек, ни у кого нету в коде этой матрицы?

Вы угараете? Ваша матрица - простая матрица перемещения по диагонали влево вниз на 0.5. Никаких поворотов масштабирования или скоса. Выглядит она как единичная матрица, в последнем столбце которой два верхних элемента равны -0.5, третий равен 0, а последний остаётся равен 1.
Если даже такой мизер по матрицам не шарите, то зачем вообще взяли ванильный OpenGL? Юзайте гейм мейкер, там никаких "матриц в коде" не надо.
gamedevforПостоялецwww2 ноя. 201720:22#9
KumoKairo
> Ваша матрица - простая матрица перемещения
Это ж неправильно, потому что точка (100, 100) переместится на 0.5 пикселя и будет по сути тоже самое.
gamedevforПостоялецwww2 ноя. 201720:24#10
Ivashka
Попробую.
А gluLookAt это обязательно?
gamedevforПостоялецwww2 ноя. 201720:27#11
KumoKairo
> Если даже такой мизер по матрицам не шарите, то зачем вообще взяли ванильный
> OpenGL? Юзайте гейм мейкер, там никаких "матриц в коде" не надо.
Задача очень распространённая, должно быть стандартное решение без каких то там сторонних движков и либ.
Vlad2001_MFSПостоялецwww2 ноя. 201722:14#12
gamedevfor
А чем вам gluOrtho2D не нравится? И вообще, выкиньте это старье, возьмите нормальную мат. либу и шейдеры.

Я и сам в матрицах не особый специалист, но:
render | OGL экранные координаты вершин?
r и l - левая и правая граница.
b и t - нижняя и верхняя граница.
Например, r = 640, l = 0, b = 480, t = 0.

Вроде бы проверил, все верно вывел. Правда здесь без дальней и ближней плоскости отсечения.

Правка: 2 ноя. 2017 22:16

gamedevforПостоялецwww2 ноя. 201722:29#13
Ivashka
Не работает, видимая область тупо съезжает вправо (на половину ширины экрана) и вверх (на половину высоты экрана);
На координаты вершин это не влияет;

Если поставить:

gluOrtho2D(0, screen_width, screen_height, 0);
то это работает так же как и:
glOrtho(0.f, screen_width, screen_height, 0.f, -1.0f, 1.0f);

gamedevforПостоялецwww2 ноя. 201722:30#14
Vlad2001_MFS
> А чем вам gluOrtho2D не нравится?
Тем что оно не работает.
Страницы: 1 2 3 Следующая »

/ Форум / Программирование игр / Графика

2001—2018 © GameDev.ru — Разработка игр