Skip to content

ProjectorLight : VideoTexture projected on multiple meshes fails with multiple "Destroyed texture" warnings #31330

@pmhn

Description

@pmhn

Description

Modify webgpu_lights_projector.html to include multiple copies of the Lucy100k mesh.
Procedural and Texture projections work fine.
VideoTexture fails after a second or two.

Warning:

Destroyed texture [Texture "D3DImageBacking_D3DSharedImage_CanvasResourceRaster_Pid:75204"] used in a submit.
 - While calling [Queue].Submit([[CommandBuffer from CommandEncoder "renderContext_0"]])

Thanks for the work on the ProjectorLight, it's exactly what I need for a project I'm working on :)

Reproduction steps

1.Modify webgpu_lights_projector.html to include multiple copies of the Lucy100k mesh.
2. Run the example

Code

// Models

				new PLYLoader().load( 'models/ply/binary/Lucy100k.ply', function ( geometry ) {

					geometry.scale( 0.0024, 0.0024, 0.0024 );
					geometry.computeVertexNormals();

					const material = new THREE.MeshLambertMaterial();

					const mesh = new THREE.Mesh( geometry, material );
					mesh.rotation.y = - Math.PI / 2;
					mesh.castShadow = true;
					mesh.receiveShadow = true;
					
					for (let i = 0; i < 5; i++) {
						const copyOfMesh = mesh.clone();
						copyOfMesh.position.y=0.8;
						copyOfMesh.position.x=-i*1;
						scene.add( copyOfMesh);
                	}				

				} );

https://github.com/pmhn/three.js/tree/issue-31330-projector-light-live-example

Live example

N/A

Screenshots

No response

Version

r177

Device

Desktop

Browser

Edge

OS

Windows

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions