как я делаю свой движок. часть 1 - математика
я решил вкинуть вам то, как я делаю свою шайтан коробку, и решил начать сос новы основ - математики. есть куча библиотек, но там столько функций, что не проебаться, так что пока проект компилировался, то можно было бы, хз, выплатить ипотеку?
моя математика состоит из шести файлов:
- aabb.hpp
- mat4.hpp
- random.hpp
- ray.hpp
- vec3.hpp
- vec2.hpp
итоговый вопрос, нахуя это всё надо и что с этим делать? отвечаю.
vec2 - двумерный вектор, используется для того, что бы знать как красить экран, что выводить и всё такое. vec3 - уже трёхмерный вектор, позиция всего, что есть на сцене, от объекта до света с камерой. проще говоря, это два и три числа, бонусом операции над ними, типа нормализации, сложения, умножения, чисто базовая линейная алгебра
ray - это луч, есть начало и направление. это основа трассировки. пускаем из каждого пикселя, смотрим куда попали
aabb - это буквально коробка вокруг объедка, ориентированная по сосям чтобы быстро считать пересечения, нужна, что бы не дрочить матешу сто раз, ибо если в коробку не попали, то внутри неё никуда не попадём. это основной оператор для bvh-оптимизации (в другой раз обязательно расскажу и покажу)
mat4 - это матрица 4*4. нужна для движения масштаба и поворота всего, что есть на сцене. полезная штука, скажу я вам
random - буквально рандом. зачастую генератор не очень накладный процесс, но это только если вы вызываете его один или два раза, а не миллион раз каждую секунду
понятное дело что всё это не пик инженерной мысли, но это реально та база, которой (пока что) более чем хватает под нужные мне задачи
репа:
п.с. ии картинки это база sorry not sorry