Тема: OpenGL
Показать сообщение отдельно
Старый 20.08.2013, 12:14   #103
pozitiffcat
Мастер
 
Аватар для pozitiffcat
 
Регистрация: 09.05.2010
Адрес: Самара
Сообщений: 1,083
Написано 254 полезных сообщений
(для 533 пользователей)
Ответ: OpenGL

Сообщение от Nikich Посмотреть сообщение
А почему тогда отображение без вращения верно?
И если всё же нужна viewproj матрица, как её рассчитать вручную, без GLM? Просто как-то не ахти подключать дополнительную библиотеку для одного расчета, а гугл явно твердит, что следует использовать GLM.
да используй GLM. Там cpp-шников нет, библиотека построена на шаблонах, точно будет лучше, чем изобретать велосипед. Ну если так хочешь сам, то кури перемножение матриц. Вообще, рано или поздно, тебе придется использовать математическую библиотеку.
Можешь еще спросить у HolyDel, он реализовывал без GLM. Только вроде для mat4x4

p.s. если верно без вращения, значит ты уже в скрин спейсе формируешь и отправляешь в шейдер, тогда поворот будет работать относительно не своего центра, а точки 0.0 на экране, это центр

зачем тогда вообще на матрицу умножать?
вот на, кусок с моего движка
point BatchOpenGL::rotatePoint(float cx, float cy, float angle, point p)
{
    float s = sin(angle);
    float c = cos(angle);

    // translate point back to origin:
    p.x -= cx;
    p.y -= cy;

    // rotate point
    float xnew = p.x * c - p.y * s;
    float ynew = p.x * s + p.y * c;

    // translate point back:
    p.x = xnew + cx;
    p.y = ynew + cy;

    return p;
}
учти что angle может быть в углах или радианах. в чем точно не помню. Формула такая: Угол = Радиан * (180 / Пи)
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Nikich (20.08.2013)