Шейдер был написан для скрипт-мувера для карты AAW5, откуда ты модель и взял. Самое простое - выброси шейдер вообще.
Но, думается, все-таки нужна небольшая лекция, кстати давно собирался...
Существует (условно) два способа постановки модели в карту:
1. Модель как classname misc_modelЭто дефолтная постановка модели. При этом модель участвует в компиляции в стадии light (в создании лайтмапа). Она имеет тень, ее освещенность (эта сторона темнее, та - ярче) записана в bsp, откуда эти сведения "читает" движок игры.
Шейдер для текстуры такой модели в случае Опеля будет иметь вид:
models/mapobjects/converted2/opel_blitz
{
{
map models/mapobjects/converted2/opel_blitz.tga
rgbGen vertex
}
}В принципе, если текстура без альфа-канала, то в шейдере нет необходимости вообще.
2а. Модель как фанк_группа (например funk_explosive или script_mover), подставленная через ключ model2Модель НЕ участвует в создании лайтмапа, т.е. движок должен
сам ее освещать руководствуясь сведениями о направлении светового потока. Тени у такой модели нет, освещенность достаточно условная (в частности одна часть модели не отбрасывает тень на другую). Но самое хреновое, зачастую такая модель выглядит светлее, чем модель misc_model. "Светлее" - это либо текстура блеклая, как выцветшая, не контрастная, либо модель словно светится сама по себе. Это касается не только моделей, но и брашворков и патчворков - у Depro в Дисколетах помниться бочки, которые funk_explosive выглядели светлее, чем просто бочки.
2б. Модель как classname misc_gamemodelСуть та же, что и в случае 2а - модель НЕ участвует в создании лайтмапа. Освещенность модели будет точно такая же как и в случае 2а - условная, модель - светлая.
Как сделать - обычная модель ставится на карту и класснейм прописывается вручную. Нафига был нужен этот класс разработчикам RTCW я не знаю. Но это спасение для тех мапперов кто хочет наставить многополигональных моделей да побольше. Дело в том, что при превышении определенного лимита в количестве вертексов (вершин брашей и мешей модели), компилятор вылетает на финальной (почти 100%) стадии компиляции. Даже не пишет никакой ошибки, тупо вылетает и все. Вот тут и пригодится возможность определить многополигональные модели как misc_gamemodel - компилятор их не "видит".
Правда нужно отметить следующее:
- не важно misc_model или misc_gamemodel, на значение ФПС в игре модели влияют одинаково;
- теней у моделей misc_gamemodel нет! Это не очень красиво... Тень можно создать двумя способами: используя текстуру тени (например в RTCW для
шестиколесного Мерседеса такая тень даже приделана к модели) или заклипить модель брашами с текстурой caulk (браши обязательно должны быть structural).;
- повторю: освещенность модели - условная, т.е. со стороны источника света она будет светлее, чем с противоположной, но выглядит это хуже, чем у модели misc_model. Причем на "ночных" картах или в условиях слабой освещенности это особенно бросается в глаза. И еще короны (энтиес corona) сквозь модели просвечивают.
- не стоит ставить одну и ту же модель и как misc_model и как misc_gamemodel, у них шейдеры разные.
Кстати, о шейдере, выглядит он (опять на примере Опеля) так:
models/mapobjects/converted2/opel_blitz
{
nomipmaps
nopicmip
{
map models/mapobjects/converted2/opel_blitz.tga
rgbGen lightingdiffuse
}
}Шейдер одинаковый и для случая 2а и 2б.
Зачем нужен шейдер? Когда модель поставленная способом 2а или 2б выглядит заметно светлее.
Без параметров nomipmaps и nopicmip модель зачастую остается слишком светлой, эти параметры всегда применяются совместно (по иному у меня не получалось). Замечу, эти параметры отключают снижение разрешения текстуры по мере удаления от объекта, что по всей видимости должно грузить движок. Ну и модель с ними выглядит заметно контрастней.
Как всегда бывают исключения. Бывало у меня и так, что было пофиг как поставить как misc_model или как misc_gamemodel выглядели они одинаково, но это бывает нечасто.
Все вышесказанное - относительно q3map. Для q3map2 по идее должно быть также, но я не проверял.
И да, почему Опель был черный? Так выглядит модель поставленная как misc_model, а шейдер для текстуры прописан как для misc_gamemodel. К текстурам некоторых светильников в RTCW прописаны такие шейдеры, если им не поменять класснейм на misc_gamemodel, они тоже будут черными.
Если у кого есть что добавить - willkommen!