ThreeJS-离屏渲染(三十五)

离屏渲染: 个人理解,渲染两个场景A、B,假如A是主场景,B是离屏场景,首先离屏场景先借助主场景将视图渲染缓存,

代码位置:

      //离屏渲染
      render.setClearColor(0x53868B);
      render.setRenderTarget(target);
      render.render(scene2, camera2);

然后再切回主场景,将B场景中看到的视角以贴图纹理的形式渲染到主场景物体上

代码位置:

    const meshMaterial = new THREE.MeshBasicMaterial({
        color: 0x8B8878,
        map: target.texture
    })

 render.setClearColor(0x6A5ACD);
      render.setRenderTarget(null);
      render.render(scene, camera);

逻辑:

主场景是一个平面,离屏场景是一个正方体,现在控制器控制离屏场景照相机,将离屏场景照相机视角渲染到主场景平面上,所以我们下面看到的效果图,不是主场景照相机在动产生的效果,而是离屏照相机变动产生的效果

关键代码:

    //创建轨道控制器,可以拖动,控制的是摄像头
    const controls = new OrbitControls(camera2, render.domElement);
    //设置控制阻尼,让控制器有更真实的效果
    controls.enableDamping = true;

完整代码:

效果图:

ThreeJS-离屏渲染(三十五)_第1张图片

你可能感兴趣的:(贴图)