在Three.js中模拟光学反转(镜像)相机

时间:2015-09-05 21:47:29

标签: javascript three.js

我有一个包含各种对象和一些文本的Three.js场景。它由单个摄像头camera_A查看,其输出在浏览器网页的一部分中输入到viewport_A。

现在我想要第二个摄像头(camera_B)来查看同一场景并将其输出传递到同一网页另一部分的第二个视口(viewport_B)。 Camera_B在每个方面都与Camera_A相同,只是它产生的图像(在第二个viewport_B中)应该是(viewport_A)中图像的镜像。

我知道如何在同一页面上设置不同的视口,并创建两个相同的摄影机,并将它们的输出发送到一个渲染器对象中的两个视口(有两个渲染操作)。

但是,在其中一个视口中生成镜像的最佳方法是什么?

我尝试使用以下命令: -

camera.projectionMatrix.scale
     (new THREE.Vector3(-1, 1, 1));

但是,当我应用此命令时,对象的结果透视看起来不对,请参阅此jsfiddle示例:http://jsfiddle.net/steveow/510h3nwv/2/

编辑:

stdob的答案可以完成工作,但需要使用第二个渲染器

(我的不好,我没有说明原始问题中单个渲染器的愿望)。

理想情况下,我只使用一个渲染器并在viewport_B中镜像图像。

1 个答案:

答案 0 :(得分:1)

您可以使用后期处理和自定义着色器:

td = page.at '#tF0 .txt2'

http://jsfiddle.net/4jmaphjw/