Skip to content

Commit

Permalink
Rename "Row Count" field to simpler "Rows"
Browse files Browse the repository at this point in the history
  • Loading branch information
mminer committed May 22, 2021
1 parent 3d45c09 commit ae3878f
Show file tree
Hide file tree
Showing 6 changed files with 45 additions and 44 deletions.
20 changes: 10 additions & 10 deletions Editor/BigCameraInput.cs
Original file line number Diff line number Diff line change
Expand Up @@ -39,9 +39,9 @@ protected override void NewFrameReady(RecordingSession session)
var camera = GetTargetCamera(InputSettings.CameraTag);
var originalTargetTexture = camera.targetTexture;

for (var row = 0; row < InputSettings.RowCount; row++)
for (var row = 0; row < InputSettings.Rows; row++)
{
for (var column = 0; column < InputSettings.ColumnCount; column++)
for (var column = 0; column < InputSettings.Columns; column++)
{
camera.projectionMatrix = projectionMatrices[row, column];
camera.targetTexture = OutputRenderTextures[row, column];
Expand All @@ -55,11 +55,11 @@ protected override void NewFrameReady(RecordingSession session)

static RenderTexture[,] CreateOutputRenderTextures(BigCameraInputSettings inputSettings)
{
var outputRenderTextures = new RenderTexture[inputSettings.ColumnCount, inputSettings.RowCount];
var outputRenderTextures = new RenderTexture[inputSettings.Columns, inputSettings.Rows];

for (var row = 0; row < inputSettings.RowCount; row++)
for (var row = 0; row < inputSettings.Rows; row++)
{
for (var column = 0; column < inputSettings.ColumnCount; column++)
for (var column = 0; column < inputSettings.Columns; column++)
{
var renderTexture = new RenderTexture(
inputSettings.TileWidth,
Expand All @@ -78,7 +78,7 @@ protected override void NewFrameReady(RecordingSession session)

static Matrix4x4[,] CreateProjectionMatrices(BigCameraInputSettings inputSettings)
{
var projectionMatrices = new Matrix4x4[inputSettings.ColumnCount, inputSettings.RowCount];
var projectionMatrices = new Matrix4x4[inputSettings.Columns, inputSettings.Rows];
var camera = GetTargetCamera(inputSettings.CameraTag);

// Values to create the original projection matrix.
Expand All @@ -95,15 +95,15 @@ protected override void NewFrameReady(RecordingSession session)
var right = top * camera.aspect;

// How much of the final image each tile accounts for.
var horizontalTilePercent = 1f / inputSettings.ColumnCount;
var verticalTilePercent = 1f / inputSettings.RowCount;
var horizontalTilePercent = 1f / inputSettings.Columns;
var verticalTilePercent = 1f / inputSettings.Rows;

for (var row = 0; row < inputSettings.RowCount; row++)
for (var row = 0; row < inputSettings.Rows; row++)
{
var tileTop = top * (1 - 2 * verticalTilePercent * row);
var tileBottom = bottom * (-1 + 2 * verticalTilePercent * (row + 1));

for (var column = 0; column < inputSettings.ColumnCount; column++)
for (var column = 0; column < inputSettings.Columns; column++)
{
var tileLeft = left * (1 - 2 * horizontalTilePercent * column);
var tileRight = right * (-1 + 2 * horizontalTilePercent * (column + 1));
Expand Down
24 changes: 12 additions & 12 deletions Editor/BigCameraInputSettings.cs
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,10 @@ class BigCameraInputSettings : ImageInputSettings

[SerializeField] string cameraTag = "MainCamera";

public int ColumnCount => columnCount;
public int Columns => columns;

[Tooltip("Number of horizontal tiles.")]
[SerializeField] int columnCount = 2;
[SerializeField] int columns = 2;

public override int OutputHeight
{
Expand All @@ -37,33 +37,33 @@ public override int OutputWidth
[Tooltip("Horizontal resolution of final image once stitched together.")]
[SerializeField] int outputWidth = 8096;

public int RowCount => rowCount;
public int Rows => rows;

[Tooltip("Number of vertical tiles.")]
[SerializeField] int rowCount = 2;
[SerializeField] int rows = 2;

public int TileWidth => OutputWidth / ColumnCount;
public int TileHeight => OutputWidth / ColumnCount;
public int TileWidth => OutputWidth / Columns;
public int TileHeight => OutputWidth / Columns;

protected override bool ValidityCheck(List<string> errors)
{
var ok = true;

if (ColumnCount < 1 || RowCount < 1)
if (Columns < 1 || Rows < 1)
{
errors.Add($"Need a minimum of 1 horizontal and vertical tile.");
errors.Add($"Need at least one row and column.");
ok = false;
}

if (OutputWidth % ColumnCount != 0)
if (OutputWidth % Columns != 0)
{
errors.Add($"Output width must be a multiple of the column count.");
errors.Add($"Output width must be a multiple of the columns.");
ok = false;
}

if (OutputHeight % RowCount != 0)
if (OutputHeight % Rows != 0)
{
errors.Add($"Output height must be a multiple of the row count.");
errors.Add($"Output height must be a multiple of the rows.");
ok = false;
}

Expand Down
12 changes: 6 additions & 6 deletions Editor/BigCameraInputSettingsPropertyDrawer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -14,21 +14,21 @@ public override float GetPropertyHeight(SerializedProperty property, GUIContent
public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
{
var cameraTag = property.FindPropertyRelative("cameraTag");
var columnCount = property.FindPropertyRelative("columnCount");
var columns = property.FindPropertyRelative("columns");
var outputHeight = property.FindPropertyRelative("outputHeight");
var outputWidth = property.FindPropertyRelative("outputWidth");
var rowCount = property.FindPropertyRelative("rowCount");
var rows = property.FindPropertyRelative("rows");

var tileWidth = outputWidth.intValue / columnCount.intValue;
var tileHeight = outputHeight.intValue / rowCount.intValue;
var tileWidth = outputWidth.intValue / columns.intValue;
var tileHeight = outputHeight.intValue / rows.intValue;

using (new EditorGUI.IndentLevelScope(-1))
{
EditorGUILayout.PropertyField(cameraTag);
EditorGUILayout.PropertyField(outputWidth);
EditorGUILayout.PropertyField(outputHeight);
EditorGUILayout.PropertyField(rowCount);
EditorGUILayout.PropertyField(columnCount);
EditorGUILayout.PropertyField(rows);
EditorGUILayout.PropertyField(columns);
EditorGUILayout.LabelField("Tile Size", $"{tileWidth} × {tileHeight}");
}
}
Expand Down
4 changes: 2 additions & 2 deletions Editor/BigImageRecorder.cs
Original file line number Diff line number Diff line change
Expand Up @@ -67,9 +67,9 @@ IReadOnlyList<string> WriteImageTiles(RecordingSession session)
{
var paths = new List<string>();

for (RowBeingWritten = 0; RowBeingWritten < Input.InputSettings.RowCount; RowBeingWritten++)
for (RowBeingWritten = 0; RowBeingWritten < Input.InputSettings.Rows; RowBeingWritten++)
{
for (ColumnBeingWritten = 0; ColumnBeingWritten < Input.InputSettings.ColumnCount; ColumnBeingWritten++)
for (ColumnBeingWritten = 0; ColumnBeingWritten < Input.InputSettings.Columns; ColumnBeingWritten++)
{
var path = Settings.FileNameGenerator.BuildAbsolutePath(session);
paths.Add(path);
Expand Down
22 changes: 11 additions & 11 deletions Editor/BigImageRecorderSettings.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@ namespace UnityEditor.BigImageRecorder
[RecorderSettings(typeof(BigImageRecorder), "Big Image Sequence", "imagesequence_16")]
class BigImageRecorderSettings : RecorderSettings
{
static readonly string columnCountWildcard = DefaultWildcard.GeneratePattern("Column Count");
static readonly string columnWildcard = DefaultWildcard.GeneratePattern("Column");
static readonly string rowCountWildcard = DefaultWildcard.GeneratePattern("Row Count");
static readonly string rowWildcard = DefaultWildcard.GeneratePattern("Row");
static readonly string columnsWildcard = DefaultWildcard.GeneratePattern("Columns");
static readonly string rowsWildcard = DefaultWildcard.GeneratePattern("Rows");
static readonly string tileColumnWildcard = DefaultWildcard.GeneratePattern("Tile Column");
static readonly string tileRowWildcard = DefaultWildcard.GeneratePattern("Tile Row");

public bool DeleteAfterStitching => deleteAfterStitching;

Expand All @@ -37,19 +37,19 @@ public override IEnumerable<RecorderInputSettings> InputsSettings

public BigImageRecorderSettings()
{
FileNameGenerator.AddWildcard(rowCountWildcard, session =>
(session?.recorder as BigImageRecorder)?.Input.InputSettings.RowCount.ToString() ?? "0");
FileNameGenerator.AddWildcard(rowsWildcard, session =>
(session?.recorder as BigImageRecorder)?.Input.InputSettings.Rows.ToString() ?? "0");

FileNameGenerator.AddWildcard(columnCountWildcard, session =>
(session?.recorder as BigImageRecorder)?.Input.InputSettings.ColumnCount.ToString() ?? "0");
FileNameGenerator.AddWildcard(columnsWildcard, session =>
(session?.recorder as BigImageRecorder)?.Input.InputSettings.Columns.ToString() ?? "0");

FileNameGenerator.AddWildcard(rowWildcard, session =>
FileNameGenerator.AddWildcard(tileRowWildcard, session =>
(session?.recorder as BigImageRecorder)?.RowBeingWritten.ToString() ?? "0");

FileNameGenerator.AddWildcard(columnWildcard, session =>
FileNameGenerator.AddWildcard(tileColumnWildcard, session =>
(session?.recorder as BigImageRecorder)?.ColumnBeingWritten.ToString() ?? "0");

FileNameGenerator.FileName = $"image_{DefaultWildcard.Frame}_{rowWildcard}-{rowWildcard}";
FileNameGenerator.FileName = $"image_{DefaultWildcard.Frame}_{tileRowWildcard}-{tileRowWildcard}";
}
}
}
7 changes: 4 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,8 @@ go this route if you want to modify the source code.
4. Enter your desired output size, number of rows and columns, and start recording

Recorder spits out multiple images per frame, one for each "tile". By default
these are named *image_FRAME_ROW-COLUMN.png*, e.g. *image_0003_1-1.png*.
these are named *image_<Frame>_<Tile Row>-<Tile Column>.png*, e.g.
*image_0003_1-1.png*.

### Image Stitching

Expand All @@ -48,5 +49,5 @@ example, if you install ImageMagick on macOS using Homebrew, enter
`/usr/local/bin/montage` as the command.

The arguments can contain the same wildcards as the file name. Use these to
specify the frame, row count, and column count, e.g. `-mode concatenate -tile
<Row Count>x<Column Count> image_<Frame>*.png out_<Frame>.png`.
specify the frame, rows, and columns, e.g. `-mode concatenate -tile
<Rows>x<Columns> image_<Frame>*.png out_<Frame>.png`.

0 comments on commit ae3878f

Please sign in to comment.