IPB

Здравствуйте, гость ( Авторизация | Регистрация )

> О техниках
unk1024
сообщениеJun 2 2006, 05:05 AM
Сообщение #1


Матрос
***





Группа: Командор
Сообщений: 137
Регистрация: 17-May 06
Пользователь №: 105


Все мы знаем, что в папке MODULES\ лежат странные файлики под названием Techniques (техники). Кроме того, там лежат еще и шейдеры (правда, я не люблю asm'овские шейдеры, мне больше по вкусу эффекты D3D, но в восьмой версии DirectX, которая применяется в ПКМ, эффектов нет, жаль), но они пока не интересны, хотя с их помощью можно создать новое море.

Для начала давайте посмотрим, как установить существующую технику для моделей локации (см. Locations\Init\*.c). У них есть специальный аттрибут tech, в котором и указывается, какая техника будет использована для рендеринга модели. Устанавливается техника следующим образом:

Код
...
Locations[n].models.always.Имя_объекта.tech = "Имя_техники";
...


Добавить технику можно двумя способами: 1) в уже существующий .sha файл; 2) в новый .sha файл (при этом указывать его наличие нигде не надо, движок сам увидит, что добавилась новая техника и обработает ее.

Продолжение следует...
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
unk1024
сообщениеJun 2 2006, 05:10 AM
Сообщение #2


Матрос
***





Группа: Командор
Сообщений: 137
Регистрация: 17-May 06
Пользователь №: 105


Давайте взглянем на одну из техник. Пусть это будет Ship\Sail.sha.

Код
block ShipSail()
{
    technique t0
    {
 pass p0
 {
     Lighting = true;
     CullMode = none;
     DiffuseMaterialSource = material;
     AmbientMaterialSource = color1;
     AlphaTestEnable = true;
     AlphaBlendEnable = true;
     SrcBlend = srcalpha;
     DestBlend = invsrcalpha;

     ColorOp[0] = modulate;
     ColorArg1[0] = texture;
     ColorArg2[0] = current;

     AlphaOp[0] = SelectArg1;
     AlphaArg1[0] = texture;

     ColorOp[1] = SelectArg1;
     ColorArg1[1] = current;

     AlphaOp[1] = modulate;
     AlphaArg1[1] = current;
     AlphaArg2[1] = texture;

     ColorOp[2] = disable;

     Render.Draw

     Restore.States
 }
    }
}


После ключевого слова block, как видно, идет название блока (техники объединяются в блоки, на самом деле, в tech-аттрибуте указывается не техника, а блок, в который она входит). У нас это - ShipSail. Далее открывается блок техник. Каждая техника начинается с ключевого слова technique. У нас всего одна техника - t0. Далее идет новый блок - проход. Многие техники рисуются не за один раз, а, например, за 2 или 3. Поэтому, их формируют в проходы. За один проход выполняется только часть техники, за другой - оставшаяся часть и т.д.
Go to the top of the page
 
+Quote Post



Closed TopicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

Текстовая версия Сейчас: 5th May 2024 - 07:05 PM
Aurora 3 | Designed by XGhozt © 2007 | XGhozt.com | Background by co2metal.
 
     

.
,