Welcome, guest. You can be a Login или register
« Previous 1 2 Next » | All
Author
Topic title
Rioshi
Offline
5 posts
Karma 2
Решил поэкспериментировать и сделать модельку гранаты для Q3, но столкнулся с непонятным поведением шейдера: в одном случае работает, в другом — нет.
Как делал:
Сделал в 3Dmax заготовку;
Сделал развёртку текстуры;
В фотошопе набросал по развёртке пробную текстуру (models/ammo/grenade_rio.tga), и отдельную текстуру для использования в шейдере (models/ammo/shader_tex.tga), а так же два кадра для анимированой текстуры (models/ammo/grenade_f1.tga и models/ammo/grenade_f2.tga):

В Максе применил текстуру к модельке и экспортировал её в MD3 с именем файла как у стандартной гранаты, чтоб заменить её (models/ammo/grenade1.md3);
Создал файл шейдера в папке scripts с таким содержимым:
models/ammo/grenade_rio
{
nopicmip
cull none
{
map models/ammo/shader_tex.tga
rgbgen identity
}
{
AnimMap 7 models/ammo/grenade_f1.tga models/ammo/grenade_f2.tga
blendfunc GL_ONE GL_ONE
}
}

Сложил всё это в zzzzz-test.pk3, с соблюдением структуры папок, конечно, и поместил его в baseq3.

Результат — в игре отображается только текстура, привязанная к MD3 (models/ammo/grenade_rio.tga), шейдер не подтягивается (хотя в консоли пишет, что загружен).
Тогда делаю тестовую карту и помещаю на неё модельку этой самой гранаты. Запускаю игру и вижу, что на помещённой на карту модельке шейдер работает. Стреляю тут же рядом гранатой — на ней шейдера нет. Скриншот:


Но если из созданного .pk3 удалить .md3 файл новой гранаты, то в игре будет стрелять стандартной гранатой, но с рабочим новым шейдером (если предварительно в нём первую строку поменять на «models/ammo/grenade», привязав шейдер к родной текстуре стандартной гранаты).

Альфа-канал, вроде, ни при чём — нет его ни в старой, ни в новой.

Вроде бы всё стандартные операции, что может быть не так? Скорее всего просто я где-то невнимателен, либо не знаю каких-то особенностей.
В общем, подскажите где ошибка, пожалуйста. Вчера пол-дня гуглил — не помогло.

Quake3 1.32;
3Dmax 2011 х64;
Плагин Export MD3 beta by Pop N Fresh;
GTK Radiant 1.6.3 - Oct 7 2012.
Берсеркер
Offline
Суровый челябинский программист
2263 posts
Karma 200
Кинь карту с запеченной на ней гранатой, и пак с гранатой, погляжу на q3bers.
А так, imho плохая идея делать смесь из текстуры и материала с одинаковым именем.
Машина несла меня через неведомые районы Галактики сквозь пространство математической реальности быстрее скорости света. (C) Фред Саберхаген.
Rioshi
Offline
5 posts
Karma 2
Ок. Вот паки с картой и гранатой:
https://docs.google.com/file/d/0B7t2uOL7iutNV1FhbGpIQjhHTVE
https://docs.google.com/file/d/0B7t2uOL7iutNc3d5QmZ1cUw4Nmc
Можно было было и в один пак сложить, конечно, т.к. запечённая на карте граната использует текстуру из папки ammo, ну да ладно :)

плохая идея делать смесь из текстуры и материала с одинаковым именем

Имеется ввиду в шейдере писать не «models/ammo/grenade_rio», а произвольное имя? Но как тогда квейк узнает, что к текстуре grenade_rio.tga нужно подсосать соответствующий шейдер? Или я неправильно понял.
Берсеркер
Offline
Суровый челябинский программист
2263 posts
Karma 200
Всё оказалось просто:
В модели grenade1.md3 путь к материалу был "models\ammo\grenade_rio.tga",
хотя до загрузки md3 уже был загружен материал "models/ammo/grenade_rio.tga" вместе с картой.
Для ку3 это разные названия, потому для модели был загружена текстура, а не материал.

Поправил в модели путь на "models/ammo/grenade_rio.tga" и всё стало на свои места. ;)

Я не знаю точно, баг это или фича. Кто что скажет?
Я могу влёгкую поправить это, но вдруг кто-то пользует эту фичу для явного указания для загрузки текстуры? Хотя как тогда это согласуется с linux-сборкой ку3?
Машина несла меня через неведомые районы Галактики сквозь пространство математической реальности быстрее скорости света. (C) Фред Саберхаген.
DOOMer
Offline
Хранитель и могильщик Врат
1564 posts
Karma 103
[quote author=Берсеркер link=topic=855.msg18691#msg18691 date=1379230287]Я не знаю точно, баг это или фича. Кто что скажет?[/quote]
Скорее всего это ни баг и не фича, это издержки того что в windows в качестве разделителя между каталогами в путях файлов, приняты обратные слэши. Поэтому у Rioshi и прописался "кривой" путь.

Я глянул пару моделей из models - там везде прямые слэши (/) прописаны в путях к материалам.
Вертексы должны образовывать конвексный браш
My Quake Maps

Core i5 4210U 1.7 Ghz, 8 Gb RAM, GeForce 840M
Calculate Linux 18.x [



сохранись перед дверью...два раза =)
VorteX
Offline
prime object
341 posts
Karma 60
Могу посоветовать попробовать экспорт-плагин Darkplaces MD3 Exporter. В нем сделано несколько исправлений по части правильного экспорта имени материала в md3.

http://omnicide.legacy-of-kain.ru/w/index.php/Darkplaces_MD3_Exporter
Rioshi
Offline
5 posts
Karma 2
Берсеркер, DOOMer, спасибо за помощь. Сам бы я не скоро заметил этот нюанс, если вообще заметил бы :D. Завтра, если выкрою время, закончу это дело.

VorteX, спасибо за совет. Описанные усовершенствования радуют. Но у меня Макс 2011 и под ним плагин не заработал. Так что пока придётся пути ремонтировать winhex'ом, а нормали в MD3Compile :D
Или, может быть, можно безболезненно что-то поменять в коде, чтобы под 2011-м запустилось?
VorteX
Offline
prime object
341 posts
Karma 60
Да, надо забилдить плагин под СДК от 2011 макса. Что я попробовал сделать:
- http://omnicide.legacy-of-kain.ru/files/tools/darkplacesmd3exporter_1.00_max2011_x86.zip
- http://omnicide.legacy-of-kain.ru/files/tools/darkplacesmd3exporter_1.00_max2011_x64.zip
Eugeny
Offline
194 posts
Karma 10
[quote author=VorteX link=topic=855.msg18713#msg18713 date=1379628591]Да, надо забилдить плагин под СДК от 2011 макса[/quote]
А под СДК от 2014 макса сможешь забилдить?
VorteX
Offline
prime object
341 posts
Karma 60
Eugeny: могу. Но это будет не быстро. В 2013-2014 максе Autodesk сделала обязательным UNICODE для плагинов. Нужно приводить в соответствие участки кода, работающие со строками, не теряя при этом совместимости со старыми версиями.
« Previous 1 2 Next » | All