diff options
| author | salmonik <salmonik@tuta.io> | 2026-11-04 19:36:24 +0100 |
|---|---|---|
| committer | salmonik <salmonik@tuta.io> | 2026-11-04 19:36:24 +0100 |
| commit | b661a8dfd2c02bea54d8581ebb35d0fb3267867c (patch) | |
| tree | 817760a933a14cc0e6446299424a017a9a1c88cf /CONTEXT.md | |
| parent | Chams: keep additive viewmodel visible on bright backgrounds (diff) | |
| download | hl2h-b661a8dfd2c02bea54d8581ebb35d0fb3267867c.tar.gz hl2h-b661a8dfd2c02bea54d8581ebb35d0fb3267867c.zip | |
Chams: per-colour alpha and a softer viewmodel additive base
- Colour picker gains an optional alpha bar (checkerboard preview, #RRGGBBAA
readout); add_color_alpha is used for the chams colours. Chams colours are
now r,g,b,a and chams_apply sets $alpha plus MATERIAL_VAR_TRANSLUCENT when
alpha < 255. Config stores vis_a / inv_a / vm a.
- The additive viewmodel base is now a faint translucent tint (alpha/8)
instead of an opaque fill, so additive/Fullbright stay see-through and the
viewmodel no longer becomes a solid blob. Fullbright whitening reduced to
25% so blue stays blue instead of turning lavender.
Diffstat (limited to '')
| -rw-r--r-- | CONTEXT.md | 26 |
1 files changed, 16 insertions, 10 deletions
| @@ -290,11 +290,16 @@ vocabulary / decisions. | |||
| 290 | viewmodel entities (class contains `viewmodel` or model path `.../v_...`) | 290 | viewmodel entities (class contains `viewmodel` or model path `.../v_...`) |
| 291 | are a fourth group. | 291 | are a fourth group. |
| 292 | - Each relationship has independent **visible** and **through-wall** settings: | 292 | - Each relationship has independent **visible** and **through-wall** settings: |
| 293 | on/off, style, and colour. The viewmodel has on/off, style and colour only. | 293 | on/off, style, colour and alpha. The viewmodel has on/off, style, colour and |
| 294 | The through-wall pass uses `MATERIAL_VAR_IGNOREZ` (1 << 15) through | 294 | alpha only. The through-wall pass uses `MATERIAL_VAR_IGNOREZ` (1 << 15) |
| 295 | `IMaterial::SetMaterialVarFlag` (slot 29); colours use `$color`/`$color2` | 295 | through `IMaterial::SetMaterialVarFlag` (slot 29); colours use |
| 296 | (IMaterialVar slot 11, SetVecValue 3-float slot 11) and `ColorModulate` | 296 | `$color`/`$color2` (IMaterialVar slot 11, SetVecValue 3-float slot 11) and |
| 297 | (slot 28). Shared materials are restored after each draw. | 297 | `ColorModulate` (slot 28). Alpha uses `$alpha` (IMaterialVar slot 3, |
| 298 | SetFloatValue) and `MATERIAL_VAR_TRANSLUCENT` (1 << 21) when alpha < 255. | ||
| 299 | Shared materials are restored after each draw. | ||
| 300 | - The GUI colour picker (`add_color_alpha`) has an alpha bar, checkerboard | ||
| 301 | preview and `#RRGGBBAA` readout; plain `add_color` keeps the old opaque | ||
| 302 | three-component behaviour. Chams colours are four ints (r, g, b, a). | ||
| 298 | - Styles are built from `debug/debugtranslucentsinglecolor` (UnlitGeneric, | 303 | - Styles are built from `debug/debugtranslucentsinglecolor` (UnlitGeneric, |
| 299 | `$color`) and material flags: | 304 | `$color`) and material flags: |
| 300 | 0 Flat (solid + FLAT), 1 Wireframe (`debug/debugwireframe`), 2 Additive | 305 | 0 Flat (solid + FLAT), 1 Wireframe (`debug/debugwireframe`), 2 Additive |
| @@ -310,12 +315,13 @@ vocabulary / decisions. | |||
| 310 | - Viewmodels are collated by the engine as `RENDER_GROUP_VIEW_MODEL_OPAQUE`, | 315 | - Viewmodels are collated by the engine as `RENDER_GROUP_VIEW_MODEL_OPAQUE`, |
| 311 | so an additive forced material can wash out against a bright sky or wall | 316 | so an additive forced material can wash out against a bright sky or wall |
| 312 | (and the engine may not treat the draw as translucent). Additive styles on | 317 | (and the engine may not treat the draw as translucent). Additive styles on |
| 313 | the viewmodel therefore draw a dim opaque solid base first, then the | 318 | the viewmodel therefore draw a faint translucent base (alpha/8) first, then |
| 314 | additive pass; the first-person model never disappears. | 319 | the additive pass, so the model keeps a silhouette on bright backgrounds |
| 320 | without becoming an opaque blob. | ||
| 315 | - Feature is off by default. Config sections: `[chams]` (active/bind), | 321 | - Feature is off by default. Config sections: `[chams]` (active/bind), |
| 316 | `[chams_hostile|neutral|friendly]` (`vis`, `vis_mat`, `vis_r/g/b`, `inv`, | 322 | `[chams_hostile|neutral|friendly]` (`vis`, `vis_mat`, `vis_r/g/b/a`, `inv`, |
| 317 | `inv_mat`, `inv_r/g/b`) and `[chams_vm]` (`on`, `mat`, `r/g/b`). The GUI has | 323 | `inv_mat`, `inv_r/g/b/a`) and `[chams_vm]` (`on`, `mat`, `r/g/b/a`). The GUI |
| 318 | a Hostile/Neutral/Friendly section each, plus Viewmodel. | 324 | has a Hostile/Neutral/Friendly section each, plus Viewmodel. |
| 319 | - This is a material override, not stencil outlines. | 325 | - This is a material override, not stencil outlines. |
| 320 | 326 | ||
| 321 | ## Bones / ESP | 327 | ## Bones / ESP |
