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