using UnityEngine; using System.IO; using System; [RequireComponent (typeof(Camera))] public class CaptureWithAlpha : MonoBehaviour { public int UpScale = 4; public bool AlphaBackground = true; Texture2D Screenshot () { var camera = GetComponent<Camera> (); int w = camera.pixelWidth * UpScale; int h = camera.pixelHeight * UpScale; var rt = new RenderTexture (w, h, 32); camera.targetTexture = rt; var screenShot = new Texture2D (w, h, TextureFormat.ARGB32, false); var clearFlags = camera.clearFlags; if (AlphaBackground) { camera.clearFlags = CameraClearFlags.SolidColor; camera.backgroundColor = new Color (0, 0, 0, 0); } camera.Render (); RenderTexture.active = rt; screenShot.ReadPixels (new Rect (0, 0, w, h), 0, 0); screenShot.Apply (); camera.targetTexture = null; RenderTexture.active = null; DestroyImmediate (rt); camera.clearFlags = clearFlags; return screenShot; } [ContextMenu ("Capture Screenshot")] public void SaveScreenshot () { var path = Environment.GetFolderPath (Environment.SpecialFolder.Desktop); var filename = "SS-" + DateTime.Now.ToString ("yyyy.MM.dd.HH.mm.ss") + ".png"; File.WriteAllBytes (Path.Combine (path, filename), Screenshot ().EncodeToPNG ()); } }
Monday, February 13, 2017
Take a Unity Screenshot with Alpha
This script takes a screenshot and saves it to the user desktop. It has options to use an alpha background, and also upscale the image. Useful for taking pictures of a scene or model for composition by artists.
Friday, February 03, 2017
Building fast, quality network server programs with Go.
I've been investigating and learning Go. There is a lot of high quality tools out there, for example:
- xo generates types and functions to match your SQL schema, and
- goa lets you design a REST api using a DSL, then generate the code to implement that API!
Compile time for Go is super fast, and so is the built executable. I'm using vim for the IDE, and it has excellent support for Go, including autocompletion which is great when you're learning the language.
- xo generates types and functions to match your SQL schema, and
- goa lets you design a REST api using a DSL, then generate the code to implement that API!
Compile time for Go is super fast, and so is the built executable. I'm using vim for the IDE, and it has excellent support for Go, including autocompletion which is great when you're learning the language.
Subscribe to:
Posts (Atom)
Popular Posts
-
These are the robots I've been working on for the last 12 months. They each weigh about 11 tonnes and have a 17 meter reach. The control...
-
So, you've created a car prefab using WheelCollider components, and now you can apply a motorTorque to make the whole thing move along. ...
-
I have just spent an hour trying to track down a weird bug in some Javascript interpolation code. The offending code looks like this: var n ...
-
Why would I ask that question? Python 3 has been available for some time now, yet uptake is slow. There aren't a whole lot of packages i...
-
Dear Lazyweb. Imagine a nice RESTful interface for working with Tags. The URL: /tags/ will return a list of all the tags. The URL: /tags/fo...
-
I've just uploaded Fibra 2 to the cheeseshop. Fibra 2 includes the promised non-blocking plugin, which allows a generator based task to...
-
I've just finished refactoring an awful C# class. I had been delaying the job for a while because I didn't want to do it. Then, whil...
-
After my last post, I decided to benchmark the scaling properties of Stackless, Kamaelia, Fibra using the same hackysack algorithm. Left axi...
-
Pyglet 1.1 comes with a shiny new event loop. I've always liked to control my own mainloop, so that I can implement things like fixed t...
-
We're almost done with our Giant Robot Project. Realising we had only a few hours before the robots would be deconstructed and sent awa...