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
 
Нравится2
Комментарии
    B
    i
    u
    Спойлер