Hey All,
Setup (Pictures included):
Three JS v.129
I have a CubeCamera that is positioned where my scene Camera is positioned. And the basic cube camera / render target set up here:
const cubeRenderTarget = new WebGLCubeRenderTarget( 2048, {
format: RGBFormat,
generateMipmaps: true,
encoding: sRGBEncoding
});
const cubeCamera = new CubeCamera( 1, 200, cubeRenderTarget );
obj.material.envMap = cubeRenderTarget.texture;
//obj is the floor Mesh that will be in the screenshots.
and this is how I positioned the camera (cd is an object that references the mesh using the cube texture and cube camera).
cd.mesh.visible = false;
// this.camera is the main scene camera
this.camera.getWorldPosition(cd.camera.position);
cd.camera.update(this.webGLRenderer,this.scene);
cd.mesh.visible = true;
And once loaded, I call the update function on the CubeCamera to have it update the CubeTexture its producing. The CubeTexture is then set as the meshes environment map. The Mesh uses MeshStandardMaterial.
Everything works well when the Mesh’s material is set at roughness 0:
But when roughness increases it looks like the image shifts up a little bit.
Roughess at .2:
And just to show one more example, Roughness at .4
Is it natural for the image to zoom/shift up as roughness increases? If so is there way for it to keep its position but just be less reflective? Or maybe I am doing something wrong.
And to clarify, the camera never moves and I am reinitializing the scene every time I change the roughness. So the conditions are the same each time I took an image.
Thanks a lot!
Mason