Бывший разработчик Rockstar Games Оббе Вермей продолжает делиться секретами о работе над старыми частями GTA. В этот раз он рассказал, почему зеркала в Grand Theft Auto: San Andreas иногда сталкиваются с жуткими глюками.
Например, среди ошибок есть «вылезание» отражения за рамки зеркала и видимость задней поверхности у некоторых моделей. Все это из-за того, что зеркальная версия сцены отрисовывается одновременно с действиями, происходящими на экране.
У этого способа есть весомый минус — размещать зеркала можно только на внешних стенах комнаты. А выбрана отрисовка в реальном времени была из-за ограничения видеопамяти при разработке. Изображение в зеркалах не могло заранее отрендериться и стать текстурой, ибо для этого не хватало объема видеопамяти.
Напомним, что Оббе Вермей делился и другими деталями о разработке старых частей GTA. Например, объяснил молчаливость главного героя третьей части Клода. За раскрытие секретов Rockstar Games даже потребовала бывшего сотрудника удалить свой блог.
'''
У этого метода есть несколько проблем:
- Зеркала могут быть только на внешней стене комнаты.
- Персонажи и предметы могут тянуться «из» зеркала (в стиле фильма ужасов)
- Отсечение задней поверхности теперь происходит неправильно, из-за чего у некоторых моделей отображается задняя поверхность. (Как полка на скриншоте) Не идеально, но лучше, чем беззеркальные парикмахерские.
Обычный способ рендеринга зеркал — рендеринг сцены дважды. Первый раз с точки зрения зеркальной камеры. Полученное изображение затем будет использовано в качестве текстуры для зеркала при рендеринге самой сцены.
Этот метод требует видеопамяти для хранения первого рендера.
'''
"Видимость задней поверхности" это не баг, а специальный эффект Backface culling (переводчик правильнее переводит "Отсечение задней поверхности"). Он заключается в том, что полигоны не попадающие в игровую камеру отсекаются чтобы не отображаться (и соответственно не влиять не производительность).
Далее ты пишешь, что отражения реалтаймовые, и сразу про их минус - большой расход видеопамяти. "Изображение в зеркалах не могло заранее отрендериться и стать текстурой" - прочитав это, неразбирающийся в теме человек подумает что это снова баг. Вермей же первым делом объясняет: "Обычный способ рендеринга зеркал — рендеринг сцены дважды", но его не могли использовать потому что: "Этот метод требует видеопамяти для хранения первого рендера".