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

每日出拳老爷子

暂无认证

  • 3浏览

    0关注

    135博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

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

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

【背景】

之前两篇帖子介绍了如何在Unity中捕捉360度全景,以及如何将CubeMap转换为平面2D对象。今天进一步来介绍一下,如何将2D全景对象存储为JPG或其它格式的图片文件。

【思路】

要将只有Unity能够识别的RenderTexture2D对象转换为通用的JPG格式文件,做的一个工作就是内码转换,也就是将2D对象还原成字节信息,再通过字节信息流转换为JPG格式文件写入磁盘指定位置。

【具体脚本】

在之前写的Capture脚本中增加一个Save函数,给这个Save函数传上一步捕捉到的RenderTexture2D对象equirectRT:

    public void Capture()
    {
        targetCamera.RenderToCubemap(cubeMapLeft);
        cubeMapLeft.ConvertToEquirect(equirectRT);
        Save(equirectRT);
    }

Save函数内部实现将equirectRT转换为Bytes信息流然后写入磁盘JPG的行为。

    public void Save(RenderTexture rt)
    {
        Texture2D tex = new Texture2D(rt.width, rt.height);
        RenderTexture.active = rt;
        tex.ReadPixels(new Rect(0, 0, rt.width, rt.height), 0, 0);
        RenderTexture.active = null;

        byte[] bytes = tex.EncodeToJPG();

        string path = Application.dataPath + "/Panorama" + ".jpg";

        System.IO.File.WriteAllBytes(path,bytes);
    }
【测试】

保存上述脚本后运行游戏,点击Space测试,会发现有一个JPG文件存储在项目文件夹中。 在这里插入图片描述

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

微信扫码登录

0.0385s