В настоящее время я изучаю линейную алгебру в играх и почти готов использовать свои новые знания в простом 2D-пространстве. Я планирую использовать математическую библиотеку с векторами/матрицами и т. д. для представления позиций и направлений, в отличие от моей последней игры, которая была достаточно простой, чтобы в ней не нуждаться.
Я просто хочу получить некоторые разъяснения по этому вопросу. Во-первых, допустимо ли выражать положение в 2D-пространстве в однородных координатах 4x4, например:
[400, 300, 0, 1]
Здесь я предполагаю для простоты, что мы работаем в фиксированном разрешении (и в пространстве экрана) 800 x 600, так что это должна быть точка в середине экрана.
Это действительно?
Предположим, что эта позиция представляет позицию игрока, если бы я использовал вектор, я мог бы представить направление, в котором смотрит игрок:
[400, 400, 0, 0]
Таким образом, этот вектор будет означать, что игрок смотрит в нижнюю часть экрана (если мы работаем в пространстве экрана.
Это действительно?
Наконец, если бы я хотел повернуть игрока на 90 градусов, я бы умножил вектор на матрицу/кватернион, но тут я запутался. Я знаю, что четвертники более эффективны, но я не совсем уверен, как мне повернуть направление, в котором смотрит мой игрок.
Может ли кто-нибудь объяснить математику построения четверти ниона и умножения его на мой вектор лица?
Я также слышал, что OpenGL и D3D по-разному представляют векторы, как это работает? Я не совсем понимаю.
Я пытаюсь освоить базовую линейную алгебру в играх, прежде чем через несколько месяцев перейду в трехмерное пространство.