zoukankan      html  css  js  c++  java
  • u3d摄像机截图

    using System;
    using UnityEngine;
    using System.Collections;
    
    public class TestCamreaCapture1 : MonoBehaviour {
    
        private string imagesPath;
        private int imageIndex = 0;
    
        private RenderTexture rt;
        private Texture2D screenShot;
    
        private System.Diagnostics.Stopwatch stopWatch;
    
        // Use this for initialization
        void Start () {
            imagesPath = Application.dataPath + "/../pic/";
            stopWatch = new System.Diagnostics.Stopwatch ();
    
            rt = new RenderTexture (Screen.width,Screen.height, 24);
            //将rt附给一个摄像机,这样这个摄像机实时渲染的结果就都在这个tex上了.
            GetComponent<Camera>().targetTexture = rt;
            screenShot = new Texture2D (Screen.width,Screen.height, TextureFormat.ARGB32, false);
        }
        
        // Update is called once per frame
        void Update () {
            StartCoroutine (ScreenShoot());
        }
    
        IEnumerator ScreenShoot(){
            yield return new WaitForEndOfFrame ();
            stopWatch.Start ();
            ScreenSave ();
            imageIndex++;
            stopWatch.Stop();
            Debug.Log (string.Format("generate one pic use {0} 'ms",stopWatch.ElapsedMilliseconds));
            stopWatch.Reset ();
        }
    
        private void ScreenSave(){
            //记住当前渲染纹理.
            var remeber = RenderTexture.active;
            //将相机的渲染结果设置为当前渲染.
            RenderTexture.active = rt;
            //读取
            screenShot.ReadPixels (new Rect (0, 0, Screen.width, Screen.height), 0, 0);
            byte[] bytes;
            bytes = screenShot.EncodeToJPG ();
            System.IO.File.WriteAllBytes (imagesPath + imageIndex +".jpg", bytes);
            //将之前的渲染纹理变成激活.
            RenderTexture.active = remeber;
    
        }
    }

    个人最喜欢这种方式,效率已经相当高了

  • 相关阅读:
    面向对象的继承关系体现在数据结构上时,如何表示
    codeforces 584C Marina and Vasya
    codeforces 602A Two Bases
    LA 4329 PingPong
    codeforces 584B Kolya and Tanya
    codeforces 584A Olesya and Rodion
    codeforces 583B Robot's Task
    codeforces 583A Asphalting Roads
    codeforces 581C Developing Skills
    codeforces 581A Vasya the Hipster
  • 原文地址:https://www.cnblogs.com/leeplogs/p/6758851.html
Copyright © 2011-2022 走看看