问题描述
我们已经实现了投影电视摄像机在屏幕上看到的东西。
但是我们有一个问题。在整个场景中移动时,屏幕中的投影也会移动。我们希望电视摄像机看到的屏幕内有静态图像。 (电视摄像机没有移动,它处于静态位置,只有用户使用鼠标和箭头键移动)。
const camerarendertarget = new WebGLCuberendertarget( 512,512,{
format: RGBFormat,generateMipmaps: true,minFilter: LinearMipmapLinearFilter,encoding: sRGBEncoding
});
const tvCamera = new CubeCamera(50,1000,camerarendertarget);
const cameraMesh = scene.getobjectByName(cameraNames[i]); // one of the cameras in the television set
const cameraTargetMesh = scene.getobjectByName(camerasTarget); // table in the television set
let position = new Vector3();
let positionLookAt = new Vector3();
updatePosition(cameraMesh,position); // get the position of one of the cameras in the television set
updatePosition(cameraTargetMesh,positionLookAt); // get the position of the table in the television set
tvCamera.position.copy(position);
tvCamera.lookAt(positionLookAt);
scene.add(tvCamera);
tvCamera.update(renderer,scene);
const planeMaterial = new MeshphongMaterial({ emissive: 0xffffff,envMap: camera.rendertarget});
const plane = new PlaneGeometry(78,45);
const screenMesh = new Mesh(plane,planeMaterial);
screenMesh.position.set(tvPosition.x,tvPosition.y,tvPosition.z + 2);
screenMesh.rotateX(0.2);
screenMesh.rotateY(screenMesh.rotation.y - 0.3);
screenMesh.rotateZ(screenMesh.rotation.z + 0.06);
scene.add(screenMesh);
render() {
if(!renderer.autoClear) {
renderer.clear();
}
controls.enabledamping = true;
controls.dampingFactor = 1;
controls.enableZoom = true;
screenMesh.visible = false;
tvCamera.update(renderer,scene);
screenMesh.visible = true;
renderer.render(scene,mainCamera);
}
我试图插入图像以帮助您了解电视机和屏幕,但是我不允许这样做。
也许我们使用的相机类型(CubeCamera)不正确,这就是投影电视相机的图像在用户在场景上移动的同时移动的原因。
请帮忙吗?预先感谢。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)