I’m looking for a default white (?) texture to add to a scene so metallic object don’t appear dark. I dont want to use HDRIs because I don’t want to see anything in the reflections of the model.
The default option for the environment
here is basically what I want, unfortunately the code is not open sourced. Can anyone help me how to do this with plain three.js
You can try rendering an empty scene with a white background to a cube render target, then use that render target’s texture as a scene background / environment map.
This example should get you started.
Try using the RoomEnvironment
class like in this example:
I created CubeTexture
here White Gold (Reflector, custom geometry) and here https://codepen.io/prisoner849/full/qBaNKNM (see generateCubeMap
function).
First of all I’d like to say thank you to everyone that provided an answer. Unfortunately I wasn’t able to achieve any satisfying results
I did the following, but the metallic object remained the same dark as if not providing any environment at all:
let cubeRenderTarget = new THREE.WebGLCubeRenderTarget(256);
cubeRenderTarget.texture.type = THREE.HalfFloatType;
scene.environment = cubeRenderTarget.texture;
This worked, but it was extremely complicated as I use svelte-cubed
which doesn’t expose the renderer
after the component has been created. So I had to expose the renderer
as it has to be the same renderer that is used to render the scene
. Is there a reason the RoomEnvironment
isn’t documented? This is the result, is there anything I can do about the light? It looks very artificial in comparison to an HDRI environment.
This looks cool but was a bit too specific for my usecase
I just started using three.js a couple of days ago, so I’m sure I miss some very obvious points