MCPcopy Create free account
hub / github.com/pmndrs/postprocessing / render

Method render

src/core/OverrideMaterialManager.js:333–370  ·  view source on GitHub ↗

* Renders the scene with the override material. * * @private * @param {WebGLRenderer} renderer - The renderer. * @param {Scene} scene - A scene. * @param {Camera} camera - A camera.

(renderer, scene, camera)

Source from the content-addressed store, hash-verified

331 */
332
333 render(renderer, scene, camera) {
334
335 // Ignore shadows.
336 const shadowMapEnabled = renderer.shadowMap.enabled;
337 renderer.shadowMap.enabled = false;
338
339 if(workaroundEnabled) {
340
341 const originalMaterials = this.originalMaterials;
342
343 this.meshCount = 0;
344 scene.traverse(this.replaceMaterial);
345 renderer.render(scene, camera);
346
347 for(const entry of originalMaterials) {
348
349 entry[0].material = entry[1];
350
351 }
352
353 if(this.meshCount !== originalMaterials.size) {
354
355 originalMaterials.clear();
356
357 }
358
359 } else {
360
361 const overrideMaterial = scene.overrideMaterial;
362 scene.overrideMaterial = this.material;
363 renderer.render(scene, camera);
364 scene.overrideMaterial = overrideMaterial;
365
366 }
367
368 renderer.shadowMap.enabled = shadowMapEnabled;
369
370 }
371
372 /**
373 * Deletes cloned override materials.

Callers

nothing calls this directly

Calls 1

clearMethod · 0.45

Tested by

no test coverage detected