@@ -21,6 +21,7 @@ export default class PostProcessesTool extends AbstractEditionTool<Scene> {
21
21
22
22
// Private members
23
23
private _standardEnabled : boolean = false ;
24
+ private _defaultEnabled : boolean = false ;
24
25
private _ssaoEnabled : boolean = false ;
25
26
private _ssao2Enabled : boolean = false ;
26
27
@@ -39,7 +40,7 @@ export default class PostProcessesTool extends AbstractEditionTool<Scene> {
39
40
public update ( scene : Scene ) : void {
40
41
super . update ( scene ) ;
41
42
42
- // Default
43
+ // Standard
43
44
const standardPipeline = this . tool . addFolder ( 'Standard' ) ;
44
45
standardPipeline . open ( ) ;
45
46
@@ -150,6 +151,96 @@ export default class PostProcessesTool extends AbstractEditionTool<Scene> {
150
151
}
151
152
}
152
153
154
+ // Default
155
+ const def = this . tool . addFolder ( 'Default' ) ;
156
+ def . open ( ) ;
157
+
158
+ this . _defaultEnabled = SceneManager . DefaultRenderingPipeline !== null ;
159
+ def . add ( this , '_defaultEnabled' ) . name ( 'Enable' ) . onChange ( r => {
160
+ if ( ! r ) {
161
+ SceneManager . DefaultRenderingPipeline . dispose ( ) ;
162
+ SceneManager . DefaultRenderingPipeline = null ;
163
+ }
164
+ else {
165
+ SceneManager . DefaultRenderingPipeline = new BABYLON . DefaultRenderingPipeline ( 'Default' , true , scene , scene . cameras , true ) ;
166
+ var curve = new BABYLON . ColorCurves ( ) ;
167
+ curve . globalHue = 200 ;
168
+ curve . globalDensity = 80 ;
169
+ curve . globalSaturation = 80 ;
170
+ curve . highlightsHue = 20 ;
171
+ curve . highlightsDensity = 80 ;
172
+ curve . highlightsSaturation = - 80 ;
173
+ curve . shadowsHue = 2 ;
174
+ curve . shadowsDensity = 80 ;
175
+ curve . shadowsSaturation = 40 ;
176
+ SceneManager . DefaultRenderingPipeline . imageProcessing . colorCurves = curve ;
177
+ SceneManager . DefaultRenderingPipeline . depthOfField . focalLength = 150 ;
178
+ SceneManager . DefaultRenderingPipeline . chromaticAberration . direction . x = Math . PI * 2 ;
179
+ SceneManager . DefaultRenderingPipeline . chromaticAberration . direction . y = Math . PI * 2 ;
180
+ }
181
+
182
+ // Update tool
183
+ this . update ( scene ) ;
184
+
185
+ // Check if extension is created
186
+ this . _checkExtension ( ) ;
187
+ } ) ;
188
+
189
+ if ( this . _defaultEnabled ) {
190
+ // Anti aliasing
191
+ const antialiasing = def . addFolder ( 'Anti Aliasing' ) ;
192
+ antialiasing . open ( ) ;
193
+
194
+ antialiasing . add ( SceneManager . DefaultRenderingPipeline , 'samples' ) . min ( 1 ) . max ( 32 ) . name ( 'Multisample Anti-Aliasing' ) ;
195
+ antialiasing . add ( SceneManager . DefaultRenderingPipeline , 'fxaaEnabled' ) . name ( 'Fast Approximate Anti-Aliasing' ) ;
196
+
197
+ // Image processing
198
+ const imageProcessing = def . addFolder ( 'Image Processing' ) ;
199
+ imageProcessing . open ( ) ;
200
+
201
+ imageProcessing . add ( SceneManager . DefaultRenderingPipeline . imageProcessing , 'toneMappingEnabled' ) . name ( 'Tone Mapping' ) ;
202
+ imageProcessing . add ( SceneManager . DefaultRenderingPipeline . imageProcessing , 'contrast' ) . min ( 0 ) . max ( 4 ) . name ( 'Contrast' ) ;
203
+ imageProcessing . add ( SceneManager . DefaultRenderingPipeline . imageProcessing , 'exposure' ) . min ( 0 ) . max ( 10 ) . name ( 'Exposure' ) ;
204
+
205
+ // Bloom
206
+ const bloom = def . addFolder ( 'Bloom' ) ;
207
+ bloom . open ( ) ;
208
+
209
+ bloom . add ( SceneManager . DefaultRenderingPipeline , 'bloomEnabled' ) . name ( 'Enable Bloom' ) ;
210
+ bloom . add ( SceneManager . DefaultRenderingPipeline , 'bloomKernel' ) . min ( 0 ) . max ( 500 ) . name ( 'Kernel' ) ;
211
+ bloom . add ( SceneManager . DefaultRenderingPipeline , 'bloomWeight' ) . min ( 0 ) . max ( 10 ) . name ( 'Weight' ) ;
212
+ bloom . add ( SceneManager . DefaultRenderingPipeline , 'bloomThreshold' ) . min ( 0 ) . max ( 10 ) . name ( 'Threshold' ) ;
213
+ bloom . add ( SceneManager . DefaultRenderingPipeline , 'bloomScale' ) . min ( 0 ) . max ( 10 ) . name ( 'Scale' ) ;
214
+
215
+ // Chromatic aberration
216
+ const chromatic = def . addFolder ( 'Chromatic Aberration' ) ;
217
+ chromatic . open ( ) ;
218
+
219
+ chromatic . add ( SceneManager . DefaultRenderingPipeline , 'chromaticAberrationEnabled' ) . name ( 'Enable Chromatic Aberration' ) ;
220
+ chromatic . add ( SceneManager . DefaultRenderingPipeline . chromaticAberration , 'aberrationAmount' ) . min ( - 1000 ) . max ( 1000 ) . name ( 'Amount' ) ;
221
+ chromatic . add ( SceneManager . DefaultRenderingPipeline . chromaticAberration , 'radialIntensity' ) . min ( 0.1 ) . max ( 15 ) . step ( 0.01 ) . name ( 'Radial Intensity' ) ;
222
+ chromatic . add ( SceneManager . DefaultRenderingPipeline . chromaticAberration . direction , 'x' ) . min ( 0 ) . max ( Math . PI * 2 ) . step ( 0.01 ) . name ( 'Direction' ) . onChange ( r => {
223
+ SceneManager . DefaultRenderingPipeline . chromaticAberration . direction . x = Math . sin ( r ) ;
224
+ SceneManager . DefaultRenderingPipeline . chromaticAberration . direction . y = Math . cos ( r ) ;
225
+ } ) ;
226
+
227
+ // Sharpen
228
+ const sharpen = def . addFolder ( 'Sharpen' ) ;
229
+ sharpen . open ( ) ;
230
+
231
+ sharpen . add ( SceneManager . DefaultRenderingPipeline , 'sharpenEnabled' ) . name ( 'Enable Sharpen' ) ;
232
+ sharpen . add ( SceneManager . DefaultRenderingPipeline . sharpen , 'edgeAmount' ) . min ( 0 ) . max ( 4 ) . step ( 0.01 ) . name ( 'Edge Amount' ) ;
233
+ sharpen . add ( SceneManager . DefaultRenderingPipeline . sharpen , 'colorAmount' ) . min ( 0 ) . max ( 2 ) . step ( 0.01 ) . name ( 'Color Amount' ) ;
234
+
235
+ // Grain
236
+ const grain = def . addFolder ( 'Grain' ) ;
237
+ grain . open ( ) ;
238
+
239
+ grain . add ( SceneManager . DefaultRenderingPipeline , 'grainEnabled' ) . name ( 'Enable Grain' ) ;
240
+ grain . add ( SceneManager . DefaultRenderingPipeline . grain , 'intensity' ) . min ( 0 ) . max ( 100 ) . step ( 0.1 ) . name ( 'Intensity' ) ;
241
+ grain . add ( SceneManager . DefaultRenderingPipeline . grain , 'animated' ) . name ( 'Animated' ) ;
242
+ }
243
+
153
244
// SSAO
154
245
const ssao = this . tool . addFolder ( 'SSAO' ) ;
155
246
ssao . open ( ) ;
0 commit comments