dof
This commit is contained in:
@@ -18,6 +18,7 @@ cargo run -p wsg-lib --example <nom>
|
||||
| `shadow` | Shadow mapping (ombre portée directionnelle) |
|
||||
| `culling` | Culling GPU-driven (grille 15×15, objets hors frustum ignorés) |
|
||||
| `msaa` | MSAA 4× (anti-aliasing multi-échantillons, arêtes lisses) |
|
||||
| `fog` | Brouillard de distance (3 modes : linéaire, exp, exp²) |
|
||||
| `manual` | Workflow bas niveau (Context + Renderer + PipelineCache) |
|
||||
| `import` | Import de fichier OBJ (non graphique, stdout) |
|
||||
|
||||
@@ -251,6 +252,44 @@ identique, seules les arêtes diffèrent (escaler vs lisse).
|
||||
|
||||
---
|
||||
|
||||
## `fog` — Brouillard de distance
|
||||
|
||||
Démontre les 3 modes de brouillard : **linéaire**, **exponentiel**, **exponentiel²**.
|
||||
La scène contient une rangée de cubes qui s'éloignent et des sphères dispersées sur
|
||||
un grand plan au sol. Le brouillard fond les objets vers une couleur de fond,
|
||||
créant l'illusion d'un monde infini.
|
||||
|
||||
```sh
|
||||
cargo run -p wsg-lib --example fog --features "all-prims"
|
||||
```
|
||||
|
||||
**Touches** : `1` = linéaire, `2` = exp, `3` = exp², `4` = désactivé, `R` = reset.
|
||||
|
||||
> Le brouillard est appliqué dans le shader fragment principal (après l'éclairage,
|
||||
> avant le tone mapping). Il utilise la distance euclidienne du fragment à la caméra.
|
||||
|
||||
---
|
||||
|
||||
## `dof` — Depth of Field (bokeh cinématique)
|
||||
|
||||
Démontre le flou de profondeur de champ : un objet au centre reste net tandis que
|
||||
le premier et arrière-plan se flouent selon leur distance au plan de mise au point.
|
||||
Crée un effet d'attention naturelle (type cinématique).
|
||||
|
||||
La scène contient un cube de focus au centre, des sphères en premier plan (proches)
|
||||
et des cubes en arrière-plan (loin), sur un plan au sol.
|
||||
|
||||
```sh
|
||||
cargo run -p wsg-lib --example dof --features "all-prims"
|
||||
```
|
||||
|
||||
**Touches** : `1` = cinématique, `2` = subtil, `3` = focus 2m, `4` = focus 10m, `5` = off, `R` = reset.
|
||||
|
||||
> DoF opère en HDR linéaire (après bloom, avant tone mapping). Deux passes :
|
||||
> CoC (depth → rayon de flou par pixel) puis blur disque 12-taps à rayon variable.
|
||||
|
||||
---
|
||||
|
||||
## `manual` — Workflow bas niveau
|
||||
|
||||
Démontre l'API **sans** la façade `App` : utilisation directe de `Context`,
|
||||
|
||||
Reference in New Issue
Block a user