@@ -256,7 +256,10 @@ THREE.Ocean.prototype.renderInitialSpectrum = function () {
256
256
this . scene . overrideMaterial = this . materialInitialSpectrum ;
257
257
this . materialInitialSpectrum . uniforms . u_wind . value . set ( this . windX , this . windY ) ;
258
258
this . materialInitialSpectrum . uniforms . u_size . value = this . size ;
259
- this . renderer . render ( this . scene , this . oceanCamera , this . initialSpectrumFramebuffer , true ) ;
259
+
260
+ this . renderer . setRenderTarget ( this . initialSpectrumFramebuffer ) ;
261
+ this . renderer . clear ( ) ;
262
+ this . renderer . render ( this . scene , this . oceanCamera ) ;
260
263
261
264
} ;
262
265
@@ -269,14 +272,15 @@ THREE.Ocean.prototype.renderWavePhase = function () {
269
272
this . materialPhase . uniforms . u_phases . value = this . pingPhaseTexture ;
270
273
this . initial = false ;
271
274
272
- } else {
275
+ } else {
273
276
274
277
this . materialPhase . uniforms . u_phases . value = this . pingPhase ? this . pingPhaseFramebuffer . texture : this . pongPhaseFramebuffer . texture ;
275
278
276
279
}
277
280
this . materialPhase . uniforms . u_deltaTime . value = this . deltaTime ;
278
281
this . materialPhase . uniforms . u_size . value = this . size ;
279
- this . renderer . render ( this . scene , this . oceanCamera , this . pingPhase ? this . pongPhaseFramebuffer : this . pingPhaseFramebuffer ) ;
282
+ this . renderer . setRenderTarget ( this . pingPhase ? this . pongPhaseFramebuffer : this . pingPhaseFramebuffer ) ;
283
+ this . renderer . render ( this . scene , this . oceanCamera ) ;
280
284
this . pingPhase = ! this . pingPhase ;
281
285
282
286
} ;
@@ -288,7 +292,9 @@ THREE.Ocean.prototype.renderSpectrum = function () {
288
292
this . materialSpectrum . uniforms . u_phases . value = this . pingPhase ? this . pingPhaseFramebuffer . texture : this . pongPhaseFramebuffer . texture ;
289
293
this . materialSpectrum . uniforms . u_choppiness . value = this . choppiness ;
290
294
this . materialSpectrum . uniforms . u_size . value = this . size ;
291
- this . renderer . render ( this . scene , this . oceanCamera , this . spectrumFramebuffer ) ;
295
+
296
+ this . renderer . setRenderTarget ( this . spectrumFramebuffer ) ;
297
+ this . renderer . render ( this . scene , this . oceanCamera ) ;
292
298
293
299
} ;
294
300
@@ -305,19 +311,25 @@ THREE.Ocean.prototype.renderSpectrumFFT = function() {
305
311
306
312
this . materialOceanHorizontal . uniforms . u_input . value = this . spectrumFramebuffer . texture ;
307
313
this . materialOceanHorizontal . uniforms . u_subtransformSize . value = Math . pow ( 2 , ( i % ( iterations ) ) + 1 ) ;
308
- this . renderer . render ( this . scene , this . oceanCamera , this . pingTransformFramebuffer ) ;
314
+
315
+ this . renderer . setRenderTarget ( this . pingTransformFramebuffer ) ;
316
+ this . renderer . render ( this . scene , this . oceanCamera ) ;
309
317
310
318
} else if ( i % 2 === 1 ) {
311
319
312
320
this . materialOceanHorizontal . uniforms . u_input . value = this . pingTransformFramebuffer . texture ;
313
321
this . materialOceanHorizontal . uniforms . u_subtransformSize . value = Math . pow ( 2 , ( i % ( iterations ) ) + 1 ) ;
314
- this . renderer . render ( this . scene , this . oceanCamera , this . pongTransformFramebuffer ) ;
322
+
323
+ this . renderer . setRenderTarget ( this . pongTransformFramebuffer ) ;
324
+ this . renderer . render ( this . scene , this . oceanCamera ) ;
315
325
316
326
} else {
317
327
318
328
this . materialOceanHorizontal . uniforms . u_input . value = this . pongTransformFramebuffer . texture ;
319
329
this . materialOceanHorizontal . uniforms . u_subtransformSize . value = Math . pow ( 2 , ( i % ( iterations ) ) + 1 ) ;
320
- this . renderer . render ( this . scene , this . oceanCamera , this . pingTransformFramebuffer ) ;
330
+
331
+ this . renderer . setRenderTarget ( this . pingTransformFramebuffer ) ;
332
+ this . renderer . render ( this . scene , this . oceanCamera ) ;
321
333
322
334
}
323
335
@@ -329,19 +341,25 @@ THREE.Ocean.prototype.renderSpectrumFFT = function() {
329
341
330
342
this . materialOceanVertical . uniforms . u_input . value = ( iterations % 2 === 0 ) ? this . pingTransformFramebuffer . texture : this . pongTransformFramebuffer . texture ;
331
343
this . materialOceanVertical . uniforms . u_subtransformSize . value = Math . pow ( 2 , ( i % ( iterations ) ) + 1 ) ;
332
- this . renderer . render ( this . scene , this . oceanCamera , this . displacementMapFramebuffer ) ;
344
+
345
+ this . renderer . setRenderTarget ( this . displacementMapFramebuffer ) ;
346
+ this . renderer . render ( this . scene , this . oceanCamera ) ;
333
347
334
348
} else if ( i % 2 === 1 ) {
335
349
336
350
this . materialOceanVertical . uniforms . u_input . value = this . pingTransformFramebuffer . texture ;
337
351
this . materialOceanVertical . uniforms . u_subtransformSize . value = Math . pow ( 2 , ( i % ( iterations ) ) + 1 ) ;
338
- this . renderer . render ( this . scene , this . oceanCamera , this . pongTransformFramebuffer ) ;
352
+
353
+ this . renderer . setRenderTarget ( this . pongTransformFramebuffer ) ;
354
+ this . renderer . render ( this . scene , this . oceanCamera ) ;
339
355
340
356
} else {
341
357
342
358
this . materialOceanVertical . uniforms . u_input . value = this . pongTransformFramebuffer . texture ;
343
359
this . materialOceanVertical . uniforms . u_subtransformSize . value = Math . pow ( 2 , ( i % ( iterations ) ) + 1 ) ;
344
- this . renderer . render ( this . scene , this . oceanCamera , this . pingTransformFramebuffer ) ;
360
+
361
+ this . renderer . setRenderTarget ( this . pingTransformFramebuffer ) ;
362
+ this . renderer . render ( this . scene , this . oceanCamera ) ;
345
363
346
364
}
347
365
@@ -354,6 +372,9 @@ THREE.Ocean.prototype.renderNormalMap = function () {
354
372
this . scene . overrideMaterial = this . materialNormal ;
355
373
if ( this . changed ) this . materialNormal . uniforms . u_size . value = this . size ;
356
374
this . materialNormal . uniforms . u_displacementMap . value = this . displacementMapFramebuffer . texture ;
357
- this . renderer . render ( this . scene , this . oceanCamera , this . normalMapFramebuffer , true ) ;
375
+
376
+ this . renderer . setRenderTarget ( this . normalMapFramebuffer ) ;
377
+ this . renderer . clear ( ) ;
378
+ this . renderer . render ( this . scene , this . oceanCamera ) ;
358
379
359
380
} ;
0 commit comments