Three.js渲染到纹理同步相机

时间:2015-07-13 09:11:55

标签: javascript three.js webgl render-to-texture

我要将Alpha着色滤镜应用于点云,就像在此链接上描述的那样:https://www.mapbox.com/blog/colorize-alpha-image-filter/以实现某种热图。

我在纹理上渲染一个二维点云,然后使用处理着色-α过滤的自定义着色器将其渲染到一个平面中。

问题在于我不明白如何在纹理化的pointcloud内正确缩放,但保持pointcloud点的原始大小。

我创建了一个没有真正的colorize-alpha过滤的简化示例,但是我的渲染到纹理的结构:http://jsfiddle.net/q8fpt7eL/1/

我想要实现的效果与直接绘制点云时可以实现的效果完全相同。在jsfiddle上你可以只评论RTT部分并直接取消评论渲染部分,看看我在说什么。

//render to texture
//renderer.render(sceneRTT, cameraRTT, rtTexture, false);
//renderer.render(scene, camera);

//render directly the point cloud
renderer.render(sceneRTT, camera);

我已经尝试使用相同的相机,或者在cameraRTT对象上复制相机位置/旋转但似乎无法正常工作。我也尝试在RTT场景上使用正交相机,但没有成功。

任何人都知道如何实现我的目标?

由于

1 个答案:

答案 0 :(得分:2)

在第41行,当你真的希望它控制RTT场景时,你设置OrbitControls来控制“飞机场景”的摄像机。试试这个:

new THREE.OrbitControls(cameraRTT, renderer.domElement);

看起来好多了,你可以放大点云。

最后,您所要做的就是让camera正交并设置您的飞机,以便填满场景。