# Repository for Half-Life PBR materials

## If you just want to try the materials

1. Use the command line to clone the repository into a convenient directory by running:
   * `git lfs install`
   * `git clone https://rtxash.omgwtf.ru/Half-Life-RTX/Half-Life-PBR.git`

2. Do a mount (no rights required in Windows) or symbolic links for the already prepared PBRs. For example:

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

3. That's it, the textures will now be automatically loaded into the game in ray tracing mode.

## If you would like to join the remastering of materials

1. At this point you should know [the basics of Git.](https://githowto.com/en) Later there may be a special service where you can upload textures and fix materials without technical knowledge of Git.

2. Ask the provod/w23 for an invitation.

3. After registering, fork Half-Life-PBR to your account (top right "Fork" button).

4. Clone the repositories into a convenient directory:

   * `git clone https://rtxash.omgwtf.ru/Half-Life-RTX/Half-Life-prepared-original-textures.git`
   * `git clone https://rtxash.omgwtf.ru/Your_account/Half-Life-PBR.git`

5. We make mount points (no rights required in Windows) or symbolic links for PBR's already made. For example:

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

6. Find the desired textures for remastering, for example you can find out the names of the textures under the sight through the `r_infotool` command (you can assign to the `u` key through `bind u "toggle r_infotool"`).

7. From `Half-Life-prepared-original-textures` copy to pbr the texture blanks we need, observing the same folder structure and file names.

8. Modify these textures according to the manuals (to be added later).

9. Uncomment the lines of linked materials in the texture material file to enable the new textures.

10. Look at the result in the game. Render supports reloading materials on the fly through the console command `rt_debug_reload_patches` (`bind g rt_debug_reload_patches`), but if you want to change the same texture you need to temporarily add to the material line `"force_reload" "1"` (at the moment render can not determine itself changed texture or not).

11. When the material is ready, commit the change to your fork and put a pull-request in the main repository. If you did everything correctly, your changes will go into the main repository. 

12. From time to time you should update your repository to the current state of the main repository:

      ```bash
      git remote add upstream https://rtxash.omgwtf.ru/Half-Life-RTX/Half-Life-PBR # once
      git pull upstream master

      # if something goes wrong you can reset your repository
      git fetch upstream
      git checkout master
      git reset --hard upstream/master
      git push origin master --force
      ```

## Working with materials

Several articles will be prepared for remastering materials (work with neural networks, Materialize, etc.).

The format of materials is described [here](https://github.com/w23/xash3d-fwgs/wiki/Format-of-PBR-materials).

In the future, all documentation related to remastering will be duplicated in the wiki of this repository.
