question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

PMREM causes seams on Nvidia GPUs with anisotropic filtering enabled

See original GitHub issue
Description of the problem

When adding an equirectangular environment map to a scene using THREE.WebGLRenderTargetCube.fromEquirectangularTexture and using the PMREMGenerator on Nvidia GPUs in both Firefox and Chrome on Windows, anisotropic filtering causes seams in the lighting of the 3D model. You can see this happening in the screenshot of the EXR environment map example below.

seams_screenshot https://threejs.org/examples/?q=env#webgl_materials_envmaps_exr

The seams are present independent of the settings, so for EXR, PNG and JPG, any metalness / roughness and exposure. They’re not present in IE or Edge, not on an Adreno GPU on Android and not on a Chromebook.

Nvidia’s default settings enable anisotropic filtering in the control panel for the GTX 1070 and GTX 2060 (Mobile). When you disable anisotropic filtering for Chrome and Firefox, the seams are gone. This is unfortunate, because most users won’t disable anisotropic filtering manually, so they’ll see the seams.

Am I missing some setting that fixes this? I tried changing some texture filtering, wrapping and anisotropy settings, but to no avail. I believe this was not caused by any recent change, because I encountered the issue earlier this year as well.

Three.js version
  • Dev
  • r110
Browser
  • Chrome
  • Firefox
  • Internet Explorer
  • Edge
OS
  • Windows
  • Android
  • Chrome OS
Hardware Requirements
  • Nvidia GTX 1070
  • Nvidia GTX 2060 (Mobile)
  • Adreno 630 (OS: Android)
  • Some integrated Intel GPU for Chromebook

Issue Analytics

  • State:closed
  • Created 4 years ago
  • Comments:6 (4 by maintainers)

github_iconTop GitHub Comments

3reactions
sciecodecommented, Nov 4, 2019

I was able to reproduce, however these seams are unrelated withfromEquirectangularTexture. Seams are being introduced by PMREMGenerator.

PMREM: image

without: image

2reactions
JordyvanDortmontcommented, Nov 4, 2019

Thanks for looking into this @sciecode! I changed the title and the issue to match your findings. I also noticed the comment in the file and apparently PMREM is going to be replaced by @elalish? https://github.com/mrdoob/three.js/issues/16409#issuecomment-548830788

Read more comments on GitHub >

github_iconTop Results From Across the Web

Glossary:Anisotropic filtering (AF) - PCGamingWiki
Anisotropic filtering is a type of texture filtering which increases the visual quality of textures at steep angles to the camera, ...
Read more >
If it is widely known that Anisotropic filtering has negligible ...
The reason it has negligible impact is the GPU only uses it where necessary, and it's not all that bandwidth intensive to begin...
Read more >
Chapter 11. Specifying OpenGL Environment Variable Settings
Automatic anisotropic texture filtering can be enabled by setting the environment variable __GL_LOG_MAX_ANISO. The possible values are: ...
Read more >
Digital Foundry vs console texture filtering | Eurogamer.net
Anisotropic filtering is the method of choice for PC gamers - ranging in quality from 2x to 16x. In this day and age,...
Read more >
d-tensor gradient method: Topics by Science.gov
Local White Matter Geometry from Diffusion Tensor Gradients ... Results show that the parallel SSOR-ICCG algorithm based on NVIDIA Tesla C2050 GPU achieves ......
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found