Skip to content

Improving quality of rough environmental reflections #26796

@donmccurdy

Description

@donmccurdy

Description

I've attached a model using metalness=100% and roughness=15%, and compared screenshots in several engines.

model_slice_clean.glb.zip

Khronos Sample Viewer
slice_khronos
PlayCanvas
slice_playcanvas
Babylon.js
slice_babylon
three.js
slice_threejs

You'll likely notice first that in Khronos Sample Viewer and PlayCanvas, the surface appears considerably less "rough". I'm not especially concerned about that here – the glTF specification doesn't include environment maps today, and implementations have some leeway in how to preprocess them.

I am wondering about the visible blocky edges in the three.js render, though. The same issue is visible with other environments, particularly RoomEnvironment. I understand we use a low-res 256x256px cubemap for PMREM by default — I tried increasing that resolution in local builds, but didn't see a meaningful reduction of the problem.

Solution

Are there settings available, or settings we could add, to improve the rough reflections for cases like these? Can/should IBL be pre-processed offline to improve the result? For scenes with large reflective surfaces, I think the current reflections may be less clean than users would prefer.

Alternatives

N/A

Additional context

No response

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions