From a717c8a0c159823005641b5db2c8d16beeb91e43 Mon Sep 17 00:00:00 2001 From: maj00r Date: Wed, 14 Oct 2026 22:11:34 +0200 Subject: [PATCH] docs(tools): the material norm is written for the shaders of the branch it lives on, with ambient occlusion, parallax mapping and the lighting fixes, and names master as the one that still lights the old way --- tools/materials/README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tools/materials/README.md b/tools/materials/README.md index 667d0b97..8009a923 100644 --- a/tools/materials/README.md +++ b/tools/materials/README.md @@ -3,7 +3,7 @@ Wartości, przy których tekstury wyglądają poprawnie w shaderach opengl33 (`shaders/light_common.glsl`, GGX z roughness = 1 − G). `validate_materials.py` sprawdza .mat i tekstury według tej normy. -Norma i opis niżej dotyczą shaderów z gałęzi `fix/cab-lighting` (commit 2ecf589d i nowsze). Na `master` shadery liczą jeszcze po staremu, różnice są opisane przy każdym punkcie. Wartości tekstur z tabel są dobre dla obu wersji, bo stare shadery różnią się tylko połyskiem przy niskim słońcu, reflektorami i `param_glossiness`. +Norma i opis niżej dotyczą shaderów z tej gałęzi (`fix/cab-lighting`: GTAO, parallax mapping, połysk z N·L, reflektory, `param_glossiness` jako wykładnik Phonga, ciemny metal). Na `master` shadery liczą jeszcze po staremu, różnice są opisane przy każdym punkcie. Wartości tekstur z tabel są dobre dla obu wersji, bo stare shadery różnią się tylko połyskiem przy niskim słońcu, reflektorami, `param_glossiness` i ciemnym metalem. ## Jak shader liczy piksel @@ -13,7 +13,7 @@ Norma i opis niżej dotyczą shaderów z gałęzi `fix/cab-lighting` (commit 2ec - otoczenie = cubemapa(roughness) · EnvBRDF(F0, roughness) · alfa normalmapy · `param_reflection`, F0 = 0.04 dla niemetalu, albedo dla metalu; metal odbija co najmniej w połowie, niezależnie od alfy - reflektory: rozproszone 1.35 · (N·L + 0.1) · albedo, połysk jak od słońca (GGX · N·L · R · `param_specular`) -Do poprawek z gałęzi fix/cab-lighting połysk nie miał N·L (przy niskim słońcu nie gasł), a reflektory mnożyły jasność przez (1 + `param_specular`). +Na `master` połysk nie miał N·L (przy niskim słońcu nie gasł), a reflektory mnożyły jasność przez (1 + `param_specular`). ## Kanały @@ -60,7 +60,7 @@ Zasady: | `normalmap`, `parallax`, `detail_*`, `shadowlessnormalmap`, `sunlessnormalmap`, `default_detail` | (2 / (`param_glossiness` + 2))^¼ jak wykładnik Phonga: 10 (domyślnie) → 0.64, 75 → 0.40, 1000 → 0.21 | `param_specular` · (r+g+b)/2 diffuse | | `rain_windscreen` | zawsze 0.04 | `param_specular` · (r+g+b)/2 diffuse | -Przed fix/cab-lighting `normalmap`, `parallax` i `detail_*` miały roughness 1 − 1/`param_glossiness` (większa wartość = bardziej matowo), a `shadowlessnormalmap`, `sunlessnormalmap` i `default_detail` zawsze 0.04. Walidator rozpoznaje obie wersje z plików shaderów. +Na `master` `normalmap`, `parallax` i `detail_*` miały roughness 1 − 1/`param_glossiness` (większa wartość = bardziej matowo), a `shadowlessnormalmap`, `sunlessnormalmap` i `default_detail` zawsze 0.04. Walidator rozpoznaje obie wersje z plików shaderów. ## Walidator @@ -75,7 +75,7 @@ python3 tools/materials/validate_materials.py ~/pctga dynamic --fallback