Newer
Older
BlackoutClient / Assets / Scripts / CubeMap.cs
using System.Collections;
using System.Collections.Generic;
using System.IO;
using UnityEngine;

public class CubeMap : MonoBehaviour
{
    public Shader DepthShader;

    private Camera see;

    public RenderTexture SeeMap;
    // Start is called before the first frame update
    void Start()
    {
        see = gameObject.AddComponent<Camera>();
        see.aspect = 1;
        see.fieldOfView = 90;

        see.enabled = false;
        see.farClipPlane = 20;
        see.nearClipPlane = 0.1f;

        SeeMap = new RenderTexture(2048, 1024, 32, RenderTextureFormat.Depth);

        see.targetTexture = SeeMap;
    }

    private Texture2D tex = null;

    // Update is called once per frame
    void Update()
    {
        //see.SetReplacementShader(DepthShader, "");

        //see.Render();
        //if (!see.RenderToCubemap(SeeMap))
        //{
        //    Debug.LogError("FAILED :(");
        //}

        //see.ResetReplacementShader();
        //see.targetTexture = null;

        //see.Render();

        //if (tex == null)
        //{
        //    tex = new Texture2D(1024, 1024, TextureFormat.ARGB32, false);
        //}
        //
        //
        //RenderTexture.active = SeeMap;
        //tex.ReadPixels(new Rect(0, 0, 1024, 1024), 0, 0);
        //RenderTexture.active = null;
        //byte[] png = tex.EncodeToPNG();
        //FileStream f = File.Open("test.png", FileMode.OpenOrCreate);
        //f.Write(png, 0, png.Length);
        //f.Close();

        see.transform.forward = Vector3.forward;
        see.transform.up = Vector3.up;
        see.rect = new Rect(0, 0.5f, 0.25f, 0.5f);
        see.Render();

        see.transform.forward = Vector3.right;
        see.rect = new Rect(0.25f, 0.5f, 0.25f, 0.5f);
        see.Render();

        see.transform.forward = Vector3.back;
        see.rect = new Rect(0.5f, 0.5f, 0.25f, 0.5f);
        see.Render();

        see.transform.forward = Vector3.left;
        see.rect = new Rect(0.75f, 0.5f, 0.25f, 0.5f);
        see.Render();

        see.transform.forward = Vector3.down;
        see.transform.up = Vector3.forward;
        see.rect = new Rect(0, 0, 0.25f, 0.5f);
        see.Render();

        see.transform.forward = Vector3.up;
        see.transform.up = Vector3.back;
        see.rect = new Rect(0.25f, 0, 0.25f, 0.5f);
        see.Render();


    }
}