source: GTP/trunk/App/Demos/Vis/FriendlyCulling/toto.txt @ 3212

Revision 3212, 3.3 KB checked in by mattausch, 16 years ago (diff)

made ssao parameters more flexible
started to implement lense flare

Line 
11) change shader system: look into fx files
22) tone mapping
3   bloom (gaussian blur)
4   use downsampling: first 4x4 to luminance then 3 times further to 1x1
5   use 3 new render render targets for this
6
73) mrt channels:
8
92 mrts:
10
11mrt 1: rgba color + emmissive / luminance
12mrt 2: world pos + projected depth
13mrt 3: normals + w coordinate
14mrt 4: flip-flop for mrt1
15
16
174) idea: donwsample color texture for ao
18
195) use depth formula on projected depth (or use linear depth)
20   in order to combine ao + diffuse lookup into on texture lookup
21
22
23reorder mrts:
24
25mrt 1: rgba color + projected depth
26mrt 2: luminance
27mrt 3: normals + w coordinate
28mrt 4: flip-flop with mrt1 / store luminance after ssao
29
30
316) render sun disc
32
33
34
35ssao:
36
371) implement bilateral filtering
382) check physical properties
39
40paper of 2007 arikan formula:
41
42SW(P, C, r) = 2 * pi * (1 - cos(asin (r / |PC|)))
43
44but not working properly!
45
463) normal mapping
47
48working but already done!
49
50
51problems:
52
534) update of converged regions
54
55something could become visible
56
57a) from outside
58b) from previously occluded regions
59
60a) could use ratio of samples outside current frame / last frame
61   but slows donw code
62
635) dynamic objects:
64
65a) make ao stick on object: this should
66   be possible somehow, as the information is still available!!
67 
68   tried to use difference of ao intensity between previous and
69   current frame to find out if pixel ao is not valid anymore.
70   but problems as some flickering was introduced while update of
71   dynamic objects was not fast enough (annoying grey fade effect)
72
73b) fix the contact shadow on the floor:
74
75check when pixel not valid anymore: do that by checking for each
76sample if they were invalidated recently. if so, then invalidate
77current pixel ao. for each point, theoretically you don't have
78to compare the depth of the current pixel, but the depth of the
79samples taken for ao
80
81
82idea for incorporation of dynamic objects:
83
84store object id with render target
85for each object we know the trafo
86when doing the back projection =>
87
88as usual:
89we have the world space position of the current pixel
90find pixel from last frame using the old projection view trafo
91
92but now we first apply the inverse transformation that brought the
93last pixel to the current pixel and then the old projection view!!
94
95=> now we do the equality comparison as usual
96
97
98for reducing flickering:
99
100
101keep chain of kernels constant based on the state of convergence=>
102
103only use a single kernel, rotate based on noise texture
104we use fixed offset into the noise texture based on the #frames samples were accumulated
105
106problem:
107
108
109
110=========================
111
1121) ssao filter kernel: grows smaller too fast => flickering ... use
113adaptive number of samples instead of size?
1142) fix color bleeding
1153) fix ssao2 so that ssao contribution stays constant
1164) find physical expressions for constants in ssao
1175) retry normal discontinuity for ssao filter
1186) fix adaptive sampling for ssao and ssao2
119   a) sample adaptive if found invalid sample
120   b) sample adaptive if number of valid samples small?
121   
122   q: is it good to choose new weight as we do? (approx 4 frames)
123   or shouldn't we just completely reset sample?
124
125
126
127shading todo:
128
129bloom
130dof
131lense flar
132god rays
133sun disc
134environment lighting
Note: See TracBrowser for help on using the repository browser.