-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathReflexions.txt
56 lines (32 loc) · 1.76 KB
/
Reflexions.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
Exemple :
Le FORWARD avec :
- Côté Eye : ZPrepass, HDAO Pass, ForwardPass, TonemapPass
- Côté ShadowCasters (lights, etc...) : ZPrepass, HDAO Pass, ForwardPass, TonemapPass
Pour chaque ShadowCaster :
- Rendre la ShadowMap dédiée // INPUT : (Visible & ShadowCasting) 3D Scene // OUTPUT : Depth
Pour chaque Eye :
[ZPrepass]
- Rendre la Depth via la ZPrepass // INPUT : (Visible) 3D Scene // OUTPUT : Depth
[HDAO]
- Rendre les Normals // INPUT : (Visible) 3D Scene // OUTPUT : Normals
Note : Mutualiser avec la ZPrepass si ZPrepass
- Rendre l'AO Buffer // INPUT : Depth, Normals // OUTPUT : AO
[Forward Lighting]
- Pour chaque Light :
- Rendre l'éclairage // INPUT : (Visible) 3D Scene, Material&Light Params, Light' ShadowMap, AO // OUTPUT : Photo HDR
Notes : Réutiliser la Depth en cours (générée via ZPrepass)
[ToneMap]
- ToneMapper le rendu HDR // INPUT : Photo HDR // OUTPUT : Photo LDR
Global Notes :
(Visible) ==> Visible par le (ou les, si multi via GS) point(s) de vue actuel(s)
(ShadowCasting) ==> L'object projette un shadow quand soumit à un émetteur de shadow
ZPREPASS !!! As a first examples, it shows that it's still good to have some level of control on the mesh/material side : for example, one mesh might need a different VS given its input layout (not that likely but still), but also it might require a specific CULL_MODE and CULL_ORIENTATION (really more likely, for debug purposes maybe)
SOLUTION = Mesh/(material ?) exposes its CULL_MODE and CULL_ORIENTATION parameters, and has authority on setting those two
Roles :
* ShadowCaster
+ Possede :
- ShadowMap
- ViewPoint
Data-driven :
* la ZPrepass -> BlendState, RasterState, DepthState, Shader
* la NormalPass -> IDEM