трехмерные моторы TONY (PORCO@ARGENTINA.COM) Спецвыпуск: Хакер, номер #064, стр. 064-080-8 системы частиц Не все объекты сцены будет разумно представлять в виде мешей. Например, клубы дыма или пулеметные гильзы могут появляться на экране сотнями, тратить на них много памяти нецелесообразно. Для отображения таких объектов применяют системы частиц — абстракции, управляющие множествами спрайтов. На каждый спрайт тратится четыре вершины, то есть около 50-ти байт памяти. На вершины натягивается текстура. При моделировании систем частиц дизайнер изменяет их насыщенность, траектории, скорости и цвета, в итоге получаются огонь, дым, гильзы, снаряды и т.д. Параметры систем частиц сохраняются в специализированных сценариях — для оперативной правки. При создании систем частиц разработчики оперируют понятиями эмиттер и аффектор частиц. Эмиттер — это сущность, из которой испускаются частицы, характеризуется скоростью испускания частиц, количеством частиц, плотностью и т.д. Аффектор — это сущность, которая воздействует на траекторию движения частиц, то есть некий модификатор, изменяющий на каждом кадре местоположение и цвета каждой частицы. На рис. «Система частиц» приведен пример подобного сценария из Quake 4. освещение Расчет освещения для всех моделей сцены — чертовски трудоемкая задача. Разработчики игр стараются максимально снизить подобные издержки, поэтому создают статические карты освещения, для того чтобы можно было не пересчитывать на каждом кадре кучу лишних источников света. Передвигаемых лампочек в любой игре одна-две, они действительно освещают модели в масштабе реального времени. Существуют следующие виды источников света: точечные (лампочка), направленные (солнце), споты (фары, прожектор). Рядом с проблемой освещения стоит проблема построения теней, которые отбрасываются и принимаются объектами сцены, — самая трудоемкая часть рендеринга. Сейчас фотореалистичные мягкие тени строятся в реальном времени только в отдельных демонстрационных программах и примерах. В реальной игре разработчики стараются использовать предварительно рассчитанные (статические) тени, а для динамичных объектов строятся тени четкие либо упрощенные до максимума (например кружок на полу). Сравни качество мягких и четких теней на соответствующих рисунках — картинка стоит тысячи слов, особенно там, где указаны FPS. менеджмент ресурсов При создании движков разработчики стараются придерживаться концепций систем управляемых данными (data driven system). Фактически получается, что различные сценарии (ресурсы) загружают другие ресурсы и управляют ими. При этом движок играет роль фабрики, на которой обрабатываются ресурсы, из которых получается конечный продукт — геймплей. Если ресурсы обрабатываются всеми подсистемами движка, то контроль над жизненным циклом ресурсов, а также процесс загрузки ресурсов в память возлагается на подсистему менеджмента ресурсов. К таким подсистемам предъявляются следующие требования: |