您当前的位置: 首页 >  游戏

每日出拳老爷子

暂无认证

  • 3浏览

    0关注

    135博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

【Unity VR开发窍门】如何在Unity中以VR视角捕捉游戏360度全景(二)

每日出拳老爷子 发布时间:2022-06-17 15:11:15 ,浏览量:3

【背景】

这个系列的上一篇中已经完成了捕捉相机视角到CubeMap对象的脚本,但是CubeMap对象只有Unity内使用,需要再加工转换成一般的2D对象,本篇就通过增加一些脚本和设置实现这个功能。

【脚本】

我们需要一个新的对象来存放2D图像,所以在之前的脚本中再多引入一个Public

public RenderTexture equirectRT;

在捕捉图像并存储为CubeMap对象后还需要进一步从CubeMap转换成2D对象存放到equirectRT中,所以Capture方法中也多加一句:

cubeMapLeft.ConvertToEquirect(equirectRT);

完成后整体的脚本如下所示:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PanoramaCapture : MonoBehaviour
{
    // Start is called before the first frame update
    public Camera targetCamera;
    public RenderTexture cubeMapLeft;
    public RenderTexture equirectRT;

    // Update is called once per frame
    void Update()
    {
        if (Input.GetKeyDown(KeyCode.Space))
        {
            Capture();
        }
    }

    public void Capture()
    {
        targetCamera.RenderToCubemap(cubeMapLeft);
        cubeMapLeft.ConvertToEquirect(equirectRT);
    }
}
【设置】

脚本中多了一个Public,那么实际项目中也需要创建相应的对象来关联到脚本中。 和CubeMap一样,Asset右键新建RenderTexture,命名为Equirect: 在这里插入图片描述 这里不需要改变Dimension,保持2D即可,设置合适的分辨率 在这里插入图片描述

【测试】

同样的,运行游戏后按下Space,这次观察Equirect的Inspector,会发现成功获得了360度的平面全景图。

关注
打赏
1657016083
查看更多评论
立即登录/注册

微信扫码登录

0.0547s