Конвертировать 4 угла в матрицу для преобразования спрайтов OpenGL в Direct3D - PullRequest
0 голосов
/ 31 декабря 2010

Я работаю над кодом для Scrolling Game Development Kit.Старый выпуск (2.0) этой программы был основан на DirectX и использовал объекты Direct3D Sprite для рисования всей графики.Он использовал свойство Transform объекта sprite, чтобы указать, как будет преобразовываться прямоугольник текстуры при его выводе на экран.Текущая версия (2.1) была преобразована в OpenGL и использует вызовы GL TexCoord2 и GL Vertex2 для отправки координат исходного и выходного прямоугольников для рисования спрайтов.Теперь кто-то говорит, что их видеокарта отлично работала с DirectX, но их драйверы OpenGL не поддерживают GL_ARB, необходимый для использования текстур NPOTS (довольно простой).Поэтому я пытаюсь вернуться к DirectX, не возвращая все обратно к 2.0.К сожалению, кажется, что получить 4 балла с учетом матрицы гораздо проще, чем получить матрицу с 4 баллами.Я покончил со всей информацией о матрице в версии 2.1, поэтому у меня осталось только 4 угловых точки при вызове функции, которая рисует изображения на дисплее.Есть ли способ использовать информацию из четырех углов для преобразования Direct3D Sprite?

В качестве альтернативы кто-нибудь знает, почему DirectX может сделать что-то, что не может сделать OpenGL - драйверы некоторых видеокарт настолько плохи?где DirectX поддерживает текстуры NPOTS, а OpenGL - нет?

1 Ответ

0 голосов
/ 05 января 2011

Вероятно, стоит прочитать о том, как они выполняют рельефное картирование.См. Например этот сайт .В итоге вы получаете матрицу касательного пространства, которая отображается из мирового пространства в касательное пространство (пространство относительно текущей грани).Цель этого - взять вектор в мировом пространстве, как правило, вектор из света, и преобразовать его в вектор в касательном пространстве, то есть пространство, в котором ваша текстура определяет нормали поверхности.Вы перевернули ту матрицу, у вас было бы отображение из касательного пространства в мировое пространство.Что я думаю, что вы хотите?Отображение, созданное в этом уроке, предназначено исключительно для векторов направления, но расширение до размера 4x4 и привязка источника к значимому месту не должны быть трудными.

...