Environment map for reflections only

Can you use environment map for reflections/refractions only (no diffuse light) in MeshStandardMaterial (or something similar)? My use case is model that has lightmap which already contains lighting from environment map.

Is there a way to get this behavior without modifying three.js?

Can you please explain in more detail what you are looking for? As currently written, I’m not sure the question is semantically correct.

An environment map models radiance which is in some sense the light (it’s more correct to say radiant flux) reflected/emitted by a surface. It sounds to me that you want to separate the “lighting” from “reflections” which, well, does not really make sense (just because the reflections represent the actual light).

Sorry, my radiometric (or whatever) terminology is not good so I’ll try to explain it like this

  1. I have a software that contains 3d objects and environment map (as a light source)
  2. said software can generate lightmap. This should cover diffuse lighting of my scene by environment map
  3. I put exported gltf with lightmap to three.js . Now i have two options with regards to environment map
    4a) do not specify environment map in three.js. This is nice for diffuse lighting, but there are no reflections
    4b) specify environment map in three.js. This nicely adds reflections, but it also works on diffuse surfaces. Which is correct, unless I already have that baked in my lightmap. (note that my lightmap also contains shadows and indirect lighting, which a simple realtime lookup from prefiltered cubemap cannot do). Therefore I want to use environment map for reflections.

Possibly, the THREE.MeshMatcapMaterial is what you want.

MatCap (Material Capture) shader uses an image of a sphere as a view-space environment map. The image contains pre baked colours and shading.

It is similar to the THREE.MeshNormalMaterial but uses an image so when you move the camera it looks like an environment map reflection

Thanks for the suggestion. I know of matcaps and I’m using them in some cases.

Right now I “fixed” my problem by removing texture lookups to envMap where roughness == 1 (or max mip level) when needed. I’m sure this isn’t best solution but works for me in the meantime