на главную
об игре

Xenus. - Процедурные модели

Что такое процедурные модели

Часто возникает потребность изобразить явление или объект, не представимые при помощи статической модели в анимацией. В таких случая на первый план выступают процедурные модели - модели, геометрия которых формируется программно прямо во время отрисовки кадра. Примерами могут служить частицы, взрывы, lens flare.

Процедурные модели, как и статические (RF2), прописываются в поле ModelFile объекта. Также сохраняется возможность прикреплять модель на порты.

Синтаксис: название_модели;параметр1;...;параметрN
Количество параметров определяется конкретной процедурной моделью.

Примеры:
FLARE;200;40;0;255;255;10;20;flare1
(модель FLARE требует 7 параметров и название текстуры)
LENSFLARE;100;8;0;0.1;0.2;0.3;0.5;0.7;0.8;1;200;100;100;100;100;100;150;200;128;1024;lensfx (модель LENSFLARE требует переменное число параметров) vehicles\sts_cobra.RF2:PARTICLES;HELI_SMOKE(0,PORT_exgaust)
(модель PARTICLES прикреплена к порту статической модели)

Регистр в названии модели не имеет значения.

LENSFLARE

 

Модель изображает засветку линз камеры при взгляде на яркий источник света. Реализуется как несколько спрайтов с текстурой, двигающихся определенным образом.  

 
 

 
   Синтаксис:  

 
 

 
LENSFLARE;ObjectRadius;LensCount;Lens1offset..LensNoffset;Lens1radius..LensNradius;FrameWidth;TextureWidth;Material;Flags  

 
 

 
 

 

 

 
Таблица. Параметры модели LENSFLARE.  

 

 

 

 
Параметр  

 

 

 
Значение  

 

 

 
ObjectRadius  

 

 

 
Радиус объекта. Поскольку LENSFLARE часто будет помещаться внутрь модели, изображающей источник света, этот параметр нужен для того, чтобы LENSFLARE на закрывался самим фонарём.  

 

 

 
LensCount  

 

 

 
Количество линз в объективе.  

 

 

 
LensNoffset  

 

 

 
Относительное положение спрайта на прямой [0..1], см. рис.  

 

 

 
LensNradius  

 

 

 
Размер каждого спрайта (радиус, пикселов, в расчете на разрешение экрана 800x600).  

 

 

 
FrameWidth  

 

 

 
Ширина спрайта на текстуре (в пикселах).  

 

 

 
TextureWidth  

 

 

 
Ширина текстуры (в пикселах).  

 

 

 
Material  

 

 

 
Название материала.  

 

 

 
Flags  

 

 

 
Флаги, см. таблицу  

 

 

 

 
 

 
 

 
 

 

 

 
Таблица. Флаги модели LENSFLARE.  

 

 

 

 
Флаг  

 

 

 
Значение  

 

 

 
1  

 

 

 
Отключить затухание на краях экрана. Для того, чтобы эффект не исчезал сразу после выхода центра объекта из поля экрана, параметр ObjectRadius должен быть установлен правильно.  

 

 

 

 
 

 
 

 
 

 
 

 

 

 
Рисунок. Все спрайты располагаются на отрезке, проходящем через источник света и центр экрана. Параметр LensNOffset задает положение спрайта на отрезке. 0 - в позиции источника, 1 - симметрично к позиции источника относительно центра экрана, 0.5 - в центре экрана.

 
 

 
 

 

 

 
Пример. Текстура для модели LensFlare.

 
 

 
 

 
   Примечание. Для модели LENSFLARE часто используется материал TRANSPARENT, BLENDING: OVERLAY, режим HIGHQUALITY:YES (в режиме OVERLAY альфа-канал не обязателен).      

 
 

 
   Пример:  

 
 

 
   LENSFLARE;100;8;0;0.1;0.2;0.3;0.5;0.7;0.8;1;200;100;100;100;100;100;150;200;128;1024;lensfx;0  

 
     

 
 

 
   Программирование.      

 
 

 
   Объект LensFlare обрабатывает сообщение MSG_LENSFLAREINTESITY для изменения интенсивности.      

 
 

 
   Параметры:      

 
 

 
   (DWORD)inparm = pId + smId<<16      

 
   (float*)outparm = Intensity [0..1]

 

FLARE

Модель изображает легкое свечение вокруг источника света. Реализуется как спрайт с текстурой, который всегда поворачивается к наблюдателю.  

 
 

 
   Синтаксис:  

 
 

 
   FLARE;FlareRadius;ObjectRadius;Flags;ColorR;ColorG,ColorB;Opacity;Material  

 
 

 
 

 
 

 
Таблица. Параметры модели FLARE.  
 

 
 

 

 
Параметр  

 
 

 
Значение  

 
 

 
FlareRadius  

 
 

 
Размер спрайта (радиус, см)  

 
 

 
Object Radius  

 
 

 
Размер объекта (радиус, см). Поскольку FLARE часто будет помещаться внутрь модели, изображающей источник света, этот параметр нужен для того, чтобы FLARE на закрывался самим фонарём.  

 
 

 
Flags  

 
 

 
Флаги модели (см. ниже)  

 
 

 
ColorR,ColorG,ColorB  

 
 

 
Позволяет задать цвет спрайта, чтобы, например, подогнать цвет текстуры к цвету источника света: [0..255]  

 
 

 
Opacity  

 
 

 
Позволяет уменьшить прозрачность спрайта: [0..255]. (255 - без изменений, как на текстуре).  

 
 

 
Material  

 
 

 
Название материала.  

 
 

 

 
 

 
 

 
 

 
Таблица. Флаги модели FLARE.  
 

 
 

 

 
Значение  

 
 

 
Описание  

 
 

 
1  

 
 

 
Цвет спрайта дополнительно умножать на цвет модуляции ночного освещения. Таким образом, спрайт будет виден только ночью.  

 
 

 
2  

 
 

 
Flare - эффект, возникающий на сетчатке глаза в результате переотражения яркого света, из-за чего возникает свечение. Поэтому визуально свечение появляется поверх всего изображения. Однако, если нужно, чтобы предметы, находящиеся ближе, могли частично загораживать свечение (например, если FLARE применяется для имитации туманности) - можно установить этот флаг.  

 
 

 
4  

 
 

 
Использовать ориентацию как для billboard. Без установленного флага спрайт всегда параллелен плоскости экрана. С установленным флагом спрайт ориентируется так,чтобы нормаль плоскости была направлена точно в камеру. Используется когда с помощью этого объекта необходимо изобразить просто billboard.  

 
 

 
8  

 
 

 
Flare будет видим только со стороны против оси Z. Используется для фар машин - flare повешены на порты, оси z направлены по наравлению движения.  

 
 

 

 
 

 
 

 
 

 
Пример. Текстура для модели Flare.


 
   Примечание. Для модели FLARE часто используется материал TRANSPARENT, BLENDING: OVERLAY, режим HIGHQUALITY:YES (в режиме OVERLAY альфа-канал не обязателен).  

 
 

 
   Пример:  

 
 

 
   FLARE;200;40;0;255;255;10;20;flare1

 

POINTLIGHT

Модель представляет собой динамический источник света. Он организован как процедурная модель, а не как отдельный класс объекта т.к. в этом случае удобно аттачить источники на порты моделей.  

 
 

 
   Синтаксис:  

 
 

 
   POINTLIGHT;ColorR;ColorG;ColorB;Radius;Flags;Cone;Material  

 
 

 
 

 
Таблица. Параметры модели POINTLIGHT.  
 

 
 

 

 
Параметр  

 
 

 
Значение  

 
 

 
Flags  

 
 

 
Флаги модели (см. ниже)  

 
 

 
ColorR,ColorG,ColorB  

 
 

 
Цвет источника света, 0..255.  

 
 

 
Radius  

 
 

 
Радиус источника света  

 
 

 
Flags  

 
 

 
Флаги источника света (см. таблицу)  

 
 

 
Cone  

 
 

 
Для направленных источников, угол вершины конуса, в градусах, [5..175]  

 
 

 
Material  

 
 

 
Название материала. Материал должен использовать шейдер POINTLIGHT. См. документацию по шейдерам.  

 
 

 

 
 

 
 

 
 

 
Таблица. Флаги модели POINTLIGHT.  
 

 
 

 

 
Название  

 
 

 
Значение  

 
 

 
Описание  

 
 

 
PLF_ENABLED  

 
 

 
1  

 
 

 
Источник включен.  

 
 

 
PLF_DIRECTED  

 
 

 
2  

 
 

 
Источник направленный.  

 
 

 
PLF_TORCH  

 
 

 
4  

 
 

 
Источник мигает (имитация факела).  

 
 

 

 
 

 
   Внимание: даже если источник - не направленный, все равно нужно указывать материал с шейдером POINTLIGHT, хотя текстура от него использоваться не будет.  

 
 

 
   Пример:  

 
 

 
   POINTLIGHT;255;255;255;1000;1;0;POINTLIGHT1  

 
 

 
   POINTLIGHT;255;255;255;1000;3;90;POINTLIGHT1

 

Комментарии: 0
Ваш комментарий