d3nchk
50 постов
Карма: 2
#1771 13 марта 2025 в 19:26
Мне вот щас желательно бы понять как работает загрузчик. Т.е почему если я все распаковываю, и в порядке так сказать очередности как нужно раскидываю (структурно) убираю паки, чтобы не мешали-один результат, где улетают некоторые текстуры. Если я делаю ВСЕ в паках, в том числе и ваши файлы пакую-другой результат- других файлов нет, но появляются новые текстуры. Если я делаю комбинацию ваши файлы, плюс пак0-третий результат, где есть например текстура консоли, меню, но не вычитывает новые текстуры.
Может ли быть проблема , баг или еще что то конкретно с загрузчиком? Есть ли какие то команды упралвения загрузчиком? Какая очередность загрузки? Как загрузчик выстраивает приоритеты при схожих названиях файлов?
d3nchk
50 постов
Карма: 2
#1772 13 марта 2025 в 19:28
Ну и вопрос номер два, в нотепад++ есть батч-процессинг (обработка пачек), можно натравить его на папку, и задать переменные для замены строк, для удаления строк или еще что то. ЧТо например в папке скрипт мне можно будет массово заменить, что на что? Какие функции в стейджах?
d3nchk
50 постов
Карма: 2
#1773 13 марта 2025 в 20:50
мне нужно пока временно в качестве заглушек переименовать ВСЕ текстуры подставив префикс @d
и скорректировать в шейдерах название текстур с префиксом @d
так?

тогда все эти заковырки решаться?
Берсеркер
2348 постов
Карма: 218
#1774 13 марта 2025 в 20:51
если бы было так просто))))
надо понимать как из слоёв шейдера получается видимый материал,
и переписать их так, чтобы в попикселке получить что-то визуально подобное.
Машина несла меня через неведомые районы Галактики сквозь пространство математической реальности быстрее скорости света. (C) Фред Саберхаген.
Берсеркер
2348 постов
Карма: 218
#1775 13 марта 2025 в 21:30
вот пример преобразования шейдера в материал:
было:
textures/gothic_floor/largerblock3b_ow
{

{
map textures/sfx/firegorre.tga
tcmod scroll 0 1
tcMod turb 0 .25 0 1.6
tcmod scale 4 4
blendFunc GL_ONE GL_ZERO
rgbGen identity
}
{
map textures/gothic_floor/largerblock3b_ow.tga
blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA
rgbGen identity
}
{
map $lightmap
blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA
rgbGen identity
}
}


стало:
textures/gothic_floor/largerblock3b_ow
{

{
map textures/sfx/firegorre.tga
tcmod scroll 0 1
tcMod turb 0 .25 0 1.6
tcmod scale 4 4
rgbGen identity
}
{
map textures/gothic_floor/largerblock3b_ow.tga
blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA
rgbGen identity
lightStage
}
{
map $lightmap
blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA
rgbGen identity
}
}


результат:
Машина несла меня через неведомые районы Галактики сквозь пространство математической реальности быстрее скорости света. (C) Фред Саберхаген.
Берсеркер
2348 постов
Карма: 218
#1776 13 марта 2025 в 21:33
как видно, надо просто пометить слои (стейджи) материала, на которые падают свет и тени, то есть которые участвую в попикселке, токеном lightStage, а так сам движок доделает что надо.
Машина несла меня через неведомые районы Галактики сквозь пространство математической реальности быстрее скорости света. (C) Фред Саберхаген.
d3nchk
50 постов
Карма: 2
#1777 13 марта 2025 в 21:51
СПасибо за пример!
Я до того как вы написали, скормил некоторые вводные данные в ии, и попробовал сформировать промпт на конверсию шейдеров, получилось так
Шейдер 1: textures/base/comp_panel
Исходный
textures/base/comp_panel
{
surfaceparm trans
light 1
q3map_surfacelight 500
{
map textures/base/comp_panel.tga
blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA
}
{
map textures/base/comp_panel.blend.tga
blendFunc GL_ONE GL_ONE
}
}

Описание:
surfaceparm trans — полупрозрачная поверхность.
light 1 и q3map_surfacelight 500 — излучает свет (500 единиц).
Слой 1: Базовая текстура с альфа-каналом (GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA) — полупрозрачность.
Слой 2: Светящийся слой (GL_ONE GL_ONE) — аддитивное свечение.
Визуал: Панель с прозрачностью и подсветкой (например, стеклянный экран).
Проблемы в r_ppl 2:
Нет lightStage или лайтмапа — в PPL материал без освещения может быть некорректным.
Отсутствие @d, @n, @p — для PBR нужно указать физические свойства.
Свечение через blendFunc GL_ONE GL_ONE нужно адаптировать (emission убрано из @p).

что сделал ии
textures/base/comp_panel
{
surfaceparm trans
q3map_surfacelight 500
diffusemap textures/base/comp_panel@d.tga
normalmap textures/base/comp_panel@n.tga // Заглушка
pbrMap textures/base/comp_panel@p.tga // Заглушка (R=0, G=AO, B=1)
lightStage
{
map $lightmap
blendFunc filter
}
{
map textures/base/comp_panel.blend@d.tga
blendFunc GL_ONE GL_ONE
}
}

Изменения:
Добавлены @d, @n, @p:
@d.tga: Переименуй comp_panel.tga → comp_panel@d.tga.
@n.tga: Заглушка (синяя, 128,128,255).
@p.tga: Заглушка (R=0 для неметалла, G=AO, B=1 для roughness).
lightStage с blendFunc filter (эквивалент GL_DST_COLOR GL_ZERO) — стандарт для лайтмапов.
Свечение оставлено как отдельный слой с blendFunc GL_ONE GL_ONE (переименуй comp_panel.blend.tga → comp_panel.blend@d.tga).
light 1 удалён — устаревший параметр, заменён на q3map_surfacelight.


НАсколько далеко от истины?
Я проверил чет не то))
d3nchk
50 постов
Карма: 2
#1778 13 марта 2025 в 21:59
Нужно ли вообще кстати говоря заменять GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA
на ге128 везде?
Берсеркер
2348 постов
Карма: 218
#1779 13 марта 2025 в 22:01
Лучше прописать lightStage, а загрузчик сам поменяет как надо.
Но вообще, зависит от материала, не стоит ИИ привлекать к этой творческой работе!
Еще подскажу: r_printMaterials 1 включит режим отображения названия материалов, это очень облегчит поиск их текстов.
Машина несла меня через неведомые районы Галактики сквозь пространство математической реальности быстрее скорости света. (C) Фред Саберхаген.
Берсеркер
2348 постов
Карма: 218
#1780 17 марта 2025 в 20:50
Фикс к ранее выложенной сборке: забыл положить в папку baseq3/materials файл tables.shader, скачать его можно отсюда:
https://disk.yandex.ru/d/x1nBrPRSexnF-g
Без этого файла не будут работать вычисления по таблицам синус/косинус, например:
описание ентити лайт с дергающимся центром для создания иллюзии пламени
{
"classname" "light"
"origin" "435 -433 425"
"shadowLodBias" "4"
"color" "1.00 0.70 0.20"
"light" "150"
"center" "sintable[time*8]*0.16 costable[time*8]*0.16 costable[time*6]*0.25"
}
Машина несла меня через неведомые районы Галактики сквозь пространство математической реальности быстрее скорости света. (C) Фред Саберхаген.