Просмотр новости

Найдите то, что Вас интересует

Почему мы до сих пор неправильно пишем физические движки и 3D-графику

Дата публикации: 17-06-2026 14:05:10

Стоит открыть исходники любого современного игрового движка – неважно, это C++-рендер, сделанный на коленке, или какая-нибудь гигантская экосистема вроде Unity или Unreal Engine – вы первым делом натыкаетесь на одни и те же знакомые сущности. Все вокруг живет в Vector3: координаты, направления движения, точки столкновений. Каждая частица указывает, куда она смотрит, с помощью Quaternion. А если требуется что-то покруче – переносить и одновременно крутить объект, то Matrix4x4. Это уже как стандарт де-факто: кто пробовал крутить объекты руками, тот точно переписывал код с этими структурами. Ещё конечно же отдельно существуют лучи, плоскости, сферы, bounding boxes, а между ними тянутся километры функций вроде dot(), cross(), normalize(), lookAt(), inverse(), project() и бесконечных преобразований типов.Привыкаешь к этому быстро. Нам кажется совершенно естественным тасовать эти типы между собой – уж слишком давно так делается по всей индустрии. Но стоит лишь чуток задуматься, и начинает прорезаться легкий когнитивный диссонанс: выходит, вся наша графика построена на наборах несовместимых между собой математических запчастей. Для одного действия нам нужен один тип данных, для второго – другой, а пересчитать простое столкновение луча со сферой или плоскостью без пятого велосипеда никак не получается. Вроде бы всё работает и даже неплохо работает… Но ощущение конструктора из костылей не отпускает.И самое интересное заключается в том, что так было не обязательно. Читать далее

Классификация: Мнения

Схожие новости

#Наименование новостиТональностьИнформативность
1[Перевод] Создаём графику, как будто на дворе 1993 год00
2Путеводитель по чужим STL00
3Метафора квантовой механики глазами хобби-гейм-девелопера. Попытка понять квантовые штуки через алгоритмы поиска пути00
4Ну и пригодились тебе твои синусы?00
5Путь к миллиону точек: как я переписывал плоттер три раза, прежде чем он перестал лагать00
6Вавилонский атом. Как квантовая физика проиграла древней матрице, а наука ...00
7Тени Великого Движка Есть идея, старая как мир, но облачённая ...00
8Вы не знаете HTML. Мои вопросы об HTML с ответами00
9YaFF в опенсорсе: как и зачем мы сделали zero‑copy представление для Protobuf00
10Лямбды в C++: пять задач на захваты и время жизни, в которых ошибается даже опытный разработчик00

  • ТональностьТональность 0
  • ИнформативностьИнформативность 0
  • Источникhabr.com