An open API service indexing awesome lists of open source software.

https://github.com/mminer/big-image-recorder

Unity Recorder plugin to capture large image sequences.
https://github.com/mminer/big-image-recorder

unity unity-editor unity-package unity-tool unity3d unity3d-editor unity3d-package

Last synced: 8 months ago
JSON representation

Unity Recorder plugin to capture large image sequences.

Awesome Lists containing this project

README

          

# Big Image Recorder

This [Unity Recorder](https://docs.unity3d.com/Manual/com.unity.recorder.html)
plugin captures an image sequence at a higher resolution than the
maximum texture size. Want to output your scene at 100,000 x 100,000 pixels? You
got it friend.

![8K - 100K size comparison](Documentation~/8k-100k-size-comparison.png)

To do this it divides the camera's projection matrix into tiles and saves the
renders as individual images to stitch together.

![Tiles stitched](Documentation~/tiles-stitched.jpg)

At present this stitching operation is left up to you (but see "Image Stitching"
below for recommendations).

## Installing

Add the package to your project via
[UPM](https://docs.unity3d.com/Manual/upm-ui.html) using the Git URL:

```
https://github.com/mminer/big-image-recorder.git
```

1. Open the Package Manager window in Unity (*Window > Package Manager*)
2. Click the "+" button in the top-left corner
3. Select "Install package from git URL..."
4. Enter the above Git URL
5. Click "Install"

Alternatively, add the following line to your `Packages/manifest.json` file:

```json
{
"dependencies": {
"com.matthewminer.big-image-recorder": "https://github.com/mminer/big-image-recorder.git",
...
}
}
```

You can also clone the repository and point UPM to your local copy.

## Using

1. Open *Window > General > Recorder > Recorder Window*
2. Click "Add Recorder" and choose "Big Image Sequence"
3. Enter the tag of your target camera (or keep the default to use your main camera)
4. Enter your desired output size, number of rows and columns, and start recording

![Recorder screenshot](Documentation~/recorder-screenshot.png)

Recorder spits out multiple images per frame, one for each "tile". By default
these are named `image__-.png`, e.g.
*image_0003_01-01.png*.

![Tile images](Documentation~/tile-images.png)

### Image Stitching

[ImageMagick](https://imagemagick.org) is one option to stitch the image tiles
together into a final image.

# Stitches together a frame of two columns.
montage -mode concatenate -tile 2x *.png out.png

To run this automatically, enter the absolute path to the executable in the
"Stitch Command" field and its arguments (i.e. `-mode ...`) in "Arguments". For
example, if you install ImageMagick on macOS using Homebrew, enter
`/usr/local/bin/montage` as the command.

![Stitch command field](Documentation~/stitch-command-field.png)

The arguments can contain the same wildcards as the file name. Use these to
specify the frame, rows, and columns, e.g. `-mode concatenate -tile
x image_*.png .png`.

## Caveats

Dividing a projection matrix into tiles and stitching together the results works
poorly with post-processing effects. Vignette, for example, gets applied after
the camera renders and leaves noticeable seams where the edges meet.

![Stitch vignetting](Documentation~/stitch-vignetting.jpg)

For best results, turn off all screen space effects.