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

OGL экранные координаты вершин? (3 стр)

Страницы: 1 2 3
gamedevforПостоялецwww3 ноя. 201722:00#30
Vlad2001_MFS
Надо как то систему координат в OpenGL по вертикали перевернуть.
Пробую так:
  glTranslated(0, screen_height, 0);
  glRotated(180, 1, 0, 0);
Но пока безуспешно.
gamedevforПостоялецwww3 ноя. 201723:10#31
Vlad2001_MFS
> у меня в тесте все нормально работает.
Вообще странно что у вас работает, потому что пишут что по умолчанию в OpenGL декартовая система координат (поэтому и брало левый нижний угол за начало координат), а в оконной системе координат левый верхний угол является началом координат.

                                  Решение:
Матрица:
Изображение
Она была правильной.

И теперь нужно поменять текстурные координаты вершин:

Так было             И так нужно (перевернуть по вертикали)
1.0f   1.0f             1.0f   -1.0f     // Top Right
1.0f   0.0f     =>      1.0f    0.0f     // Bottom Right
0.0f   0.0f             0.0f    0.0f     // Bottom Left
0.0f   1.0f             0.0f   -1.0f     // Top Left 

Теперь OpenGL имеет экранные координаты.
Вопрос закрыт.

Правка: 3 ноя. 2017 23:11

FuntikПостоялецwww3 ноя. 201723:35#32
gamedevfor
Забавный ты чувак ))))) вообще -то текстурные координаты в диапазоне от 0 до 1, они не могут быть отрицательные....
test | OGL экранные координаты вершин?
Смотри как это OGL и как показано в DX

Правка: 3 ноя. 2017 23:39

MrShoorУчастникwww3 ноя. 201723:39#33
Funtik
> Забавный ты чувак ))))) вообще -то текстурные координаты в диапазоне от 0 до 1,
> они не могут быть отрицательные....
Забавный ты чувак. Про GL_TEXTURE_WRAP не слышал?
gamedevforПостоялецwww3 ноя. 201723:40#34
Funtik
Но это работает.
P.S. По моему в OGL от -1.0f до 1.0f можно задавать.

FuntikПостоялецwww3 ноя. 201723:40#35
MrShoor
просто я не извращаюсь, а делаю uv.y => 1- uv.y
gamedevforПостоялецwww3 ноя. 201723:42#36
Funtik
> uv.y => 1- uv.y
Я пробовал в шейдере так сделать и это не помогало.
MrShoorУчастникwww3 ноя. 201723:46#37
gamedevfor
> P.S. По моему в OGL от -1.0f до 1.0f можно задавать.
В OGL можно хоть от -1000 до 1000 задавать. Есть правила по которым обрабатывается выход за пределы [0;1]. Для случаев с WRAP - текстура будет повторятся тайлясь сама с собой.
Так что можешь написать хоть:
1.0f   -100.0f     // Top Right
1.0f   -99.0f     // Bottom Right
0.0f   -99.0f     // Bottom Left
0.0f   -100.0f     // Top Left 
И оно заработает. Лишь точность может чуть-чуть пострадать.
FuntikПостоялецwww3 ноя. 201723:46#38
gamedevfor
а ты не в шейдере делай... а в тех координатах... ну как-то так:
0 0  = > 0  1-0
1 0  = > 1  1-0
1 1  = > 1  1-1
01    = > 0  1-1
MrShoorУчастникwww3 ноя. 201723:47#39
gamedevfor
> Я пробовал в шейдере так сделать и это не помогало.
Что то ты делал не так, потому что это помогает 100%
FuntikПостоялецwww3 ноя. 201723:52#40
MrShoor
Ну хорошо, я не спорю... но тут-то задачи текстуру тайлить нет...
просто он из правосторонней системы координат пытается создать левостороннюю,
если я правильно понял...
Ну и зачем так извращаться? Если в GL представлено иначе...
gamedevforПостоялецwww3 ноя. 201723:55#41
Funtik

Сделал так:

1.0f   1.0f             1.0f   0.0f     // Top Right
1.0f   0.0f     =>      1.0f   1.0f     // Bottom Right
0.0f   0.0f             0.0f   1.0f     // Bottom Left
0.0f   1.0f             0.0f   0.0f     // Top Left 

И так тоже работает - правильно.

FuntikПостоялецwww3 ноя. 201723:57#42
gamedevfor
> И так тоже работает - правильно.
Это значит, что ты на правильном пути )))))
gamedevforПостоялецwww3 ноя. 201723:59#43
Funtik
> Ну и зачем так извращаться? Если в GL представлено иначе...
Зачем, зачем? потому что для 2D графики экранная система координат считай стандарт.
То что там в OGL начудили еще в 90-х когда был разброд и шатание в графике - сейчас никому не нужно.
0xc0deПостоялецwww4 ноя. 20170:12#44
gamedevfor
> То что там в OGL начудили еще в 90-х когда был разброд и шатание в графике -
> сейчас никому не нужно.

Тебе не нужно.

Страницы: 1 2 3

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

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