Skip to content

WebGLRenderer: Mipmaps are not generated for WebGLArrayRenderTarget #29628

@gkjohnson

Description

@gkjohnson

Description

When rendering to an array render target with generateMipmaps = true and minFilter = LinearMipmapLinearFilter the following warning is logged and no mipmaps are generated:

INVALID_OPERATION: bindTexture: textures can not be used with multiple targets

Reproduction steps

  1. Create an array target with mipmaps enabled
  2. Render into the array target
  3. Error is logged, no mipmaps are generated

Code

const quad = new FullScreenQuad( new THREE.MeshBasicMaterial() );
quad.material.color.set( 0x00ff00 );

const target = new THREE.WebGLArrayRenderTarget( 100, 100, 100 );
target.texture.minFilter = THREE.LinearMipmapLinearFilter;
target.texture.magFilter = THREE.LinearFilter;
target.texture.generateMipmaps = true;

const renderer = new THREE.WebGLRenderer( { antialias: true } );
renderer.initRenderTarget( target );
renderer.setRenderTarget( target, 0 );
quad.render( renderer );
renderer.setRenderTarget( null );

Live example

https://jsfiddle.net/hd2w7n3u/22/

Screenshots

This is showing Google Photorealistic tiles rendering with BatchedMesh and a WebGLArrayRenderTarget for textures. You can see that the model is black at steep angles where mipmaps are used.

image

Version

dev

Device

No response

Browser

No response

OS

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions