# Репозиторий для PBR-материалов Half-Life

## Если вы хотите просто попробовать материалы

1. Через командную строку склонируйте репозиторий в удобную директорию выполнив в ней:
   * `git lfs install`
   * `git clone https://rtxash.omgwtf.ru/Half-Life-RTX/Half-Life-PBR.git`

2. Сделайте монтирование (не требуется прав в Windows) или символьные ссылки для уже готовых PBR. Например:

   * для Windows 
     * `mklink /J "D:\hl1dev\xash3d-fwgs\valve\pbr" "D:\hl1dev\Half-Life-PBR\valve\pbr"`
   * для Linux 
     * `ln -s ~/hl1dev/Half-Life-PBR/valve/pbr ~/hl1dev/xash3d-fwgs/valve/pbr`

3. Всё, теперь текстуры будут автоматически подгружены в игре в лучевом режиме.

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

1. На текущий момент вы должны знать [основы Git.](https://githowto.com/ru) Позже возможно появится специальный сервис где вы сможете загрузить текстуры и поправить материалы без технических знаний по Git.

2. Попросите приглашение у Провода.

3. После регистрации форкните Half-Life-PBR на свою учётную запись (справа сверху кнопка "Форкнуть").

4. Склонируйте репозитории в удобную директорию:

   * `git clone https://rtxash.omgwtf.ru/Half-Life-RTX/Half-Life-prepared-original-textures.git`
   * `git clone https://rtxash.omgwtf.ru/Ваша_учётная_запись/Half-Life-PBR.git`

5. Делаем точки монтирования (не требуется прав) или символьные ссылки для уже готовых pbr. Например: 

   * для Windows 
     * `mklink /J "D:\hl1dev\xash3d-fwgs\valve\pbr" "D:\hl1dev\Half-Life-PBR\valve\pbr"`
   * для Linux 
     * `ln -s ~/hl1dev/Half-Life-PBR/valve/pbr ~/hl1dev/xash3d-fwgs/valve/pbr`

6. Находим желаемые для ремастеринга текстуры, например можно узнать названия текстур под прицелом через команду `r_infotool` (можно назначить на клавишу `u` через `bind u "toggle r_infotool"`).

7. Из `Half-Life-prepared-original-textures` копируем в pbr нужные нам заготовки текстур соблюдая ту же структуру папок и именования файлов.

8. Модифицируем эти текстуры согласно руководствам (будут добавлены позже).

9. Раскомментируем строки связанных материалов в файле материалов текстур чтобы задействовать новые текстуры.

10. Смотрим на результат в игре. Рендер поддерживает перезагрузку материалов на лету через консольную команду `rt_debug_reload_patches` (`bind g rt_debug_reload_patches`), однако если вы хотите менять одну и ту же текстуру вам потребуется временно добавить в материал строку `"force_reload" "1"` (на данный момент рендер не может сам определить изменялась текстура или нет).

11. Когда материал готов, коммитим в свой форк изменение и выставляем пулл реквест в основной репозиторий. Если вы всё сделали правильно ваши изменения уйдут в основной репозиторий. 

12. Время от времени нужно обновлять свой репозиторий до актуального состояния основного репозитория:

      ```bash
      git remote add upstream https://rtxash.omgwtf.ru/Half-Life-RTX/Half-Life-PBR # разово
      git pull upstream master

      # если что-то пошло не так вы можете сбросить свой репозиторий
      git fetch upstream
      git checkout master
      git reset --hard upstream/master
      git push origin master --force
      ```

## Работа с материалами

Для ремастеринга материалов будут подготовлены несколько статей (работа с нейросетями, Materialize и т.п.).

Формат материалов описан [здесь](https://github.com/w23/xash3d-fwgs/wiki/Формат-PBR-материалов).

В дальнейшем вся связанная с ремастерингом документация продублируется в вики этого хранилища.
