Skip to content
This repository has been archived by the owner on Jun 14, 2024. It is now read-only.

Commit

Permalink
Merge pull request #190 from chrisfromwork/stabilization/1.0.0
Browse files Browse the repository at this point in the history
Stabilization/1.0.0
  • Loading branch information
chrisfromwork authored Aug 21, 2019
2 parents b9d3233 + 75e06a3 commit 1f60af3
Show file tree
Hide file tree
Showing 8 changed files with 42 additions and 12 deletions.
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,9 @@ Spectator View is an augmented reality product that enables viewing HoloLens exp
8. Choose the appropriate branch that you would like to use for the MixedReality-SpectatorView submodule. By default, the submodule will be directed at master, which may not be the most stable branch for consumption. To change branches run the following commands:

1. Change directories into the submodule.
2. Run `git fetch origin release/1.0.0-beta`
3. Run `git checkout release/1.0.0-beta`
4. Run `git branch` to make sure you are using the release/1.0.0-beta branch
2. Run `git fetch origin release/1.0.0`
3. Run `git checkout release/1.0.0`
4. Run `git branch` to make sure you are using the release/1.0.0 branch


After running these git commands, you will have a local copy of the MixedReality-SpectatorView codebase. Next, you will need to follow the instructions in `Setup your local environment` to obtain external dependencies.
Expand Down
26 changes: 21 additions & 5 deletions doc/SpectatorView.Setup.VideoCamera.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,29 @@
# Spectator View Video Camera Setup

Documentation below highlights the process of setting up a Video Camera filming experience. For more information on Spectator View Video Camera usage and supported functionality see [here](../src/SpectatorView.Unity/Assets/SpectatorView/Scripts/Compositor/README.md).

## Requirements

> Note: Video camera filming currently requires a HoloLens 2 for the camera rig. HoloLens 1 devices are not supported.

1. HoloLens 2 (This device will be needed in addition to the device worn by the user)
2. Windows PC
3. Visual Studio 2017 installed on the PC
4. Windows 10 SDK (10.0.18362.0)
5. Unity installed on the PC
6. A video camera that outputs 1080p video over SDI or HDMI
7. Blackmagic Design or Elgato capture card
8. HoloLens 2 Camera Mount (Coming soon...)
6. A video camera that outputs 1080p video over SDI or HDMI (Capture cards supported below require HDMI, so you may also need a SDI to HDMI converter)
7. Blackmagic Design Intensity Pro 4K or Elgato HD 60S (Capture Cards)
8. 3D Printed or machined HoloLens 2 Camera Mount (see `doc/models/HoloLens2CameraMount/`)
- 4 - 8-32 x 1-1/4 inch screws (Attaches body.STL to mount.STL)
- 4 - 8-32 inch wing nuts (Attaches body.STL to mount.STL)
- 1 - 10-24 x 6 inch threaded rod (Attaches two components in body.STL)
- 2 - 10-24 inch wing nut (Attaches two components in body.STL)
- 1 - 1/4-20 x 6 inch threaded rod (Attaches mount.STL to the camera, you may need camera hot shoe mount instead depending on your video camera)
- 2 - 1/4-20 rod coupling nuts (Attaches mount.STL to the camera, you may need camera hot shoe mount instead depending on your video camera)
- 1 - 1/4 x 2 inch camera hot shoe mount (Attaches mount.STL to the camera, you may need threaded rod instead depending on your video camera)
- 1 - 1/4-20 inch hex nut (Attaches mount.STL to the camera, you may need threaded rod instead depending on your video camera)

>Note: When assembling the HoloLens 2 Camera Mount, be careful with the clamp.STL component. Consider sanding the poles on body.STL to prevent the clamp.STL from getting stuck/breaking.
# Calibration

Expand Down Expand Up @@ -200,4 +211,9 @@ If you chose not to immediately upload your calibration data to your device or h
4. Upload this renamed CalibrationData.json file to the Pictures Library on your HoloLens device. This can be done by going to 'User Folders\Pictures'. Then you can upload the file.

# Filming
After you have calibrated your rig, you will be ready to film HoloLens experiences with your video camera. For more information on filming, see [here](../src/SpectatorView.Unity/Assets/SpectatorView/Scripts/Compositor/README.md).
After you have calibrated your rig, you will be ready to film HoloLens experiences with your video camera. For more information on filming, see [here](../src/SpectatorView.Unity/Assets/SpectatorView/Scripts/Compositor/README.md).

# Troubleshooting

### __Issue:__ Elgato capture card failing to initialize
The Elgato HD 60S capture card requires USB 3.0 to work correctly. If the capture card is plugged into your PC with a non USB 3.0 cord/port, it will still register in Device Manager. However, it will fail to initialize with the Compositor when filming your application. Typically, you can more easily troubleshoot issues with your elgato capture card not initializing correctly in elgato supported software. To find elgato supported software to test your HD 60S capture card, look [here](https://www.elgato.com/en/gaming/downloads).
Binary file added doc/models/HoloLens2CameraMount/body.STL
Binary file not shown.
Binary file added doc/models/HoloLens2CameraMount/clamp.STL
Binary file not shown.
Binary file added doc/models/HoloLens2CameraMount/mount.STL
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -1,6 +1,17 @@
# Overview

SpectatorView renders holograms from Unity over a color frame from a capture card. This uses the calibration data from the calibration app to render the holograms at the correct size and orientation. The Compositor window can save still images or videos to disk, and outputs video to the output port of supported capture cards. Output pictures and videos will be saved to "My Documents\HologramCapture\".
| Supported Functionality | |
|:-------------------------|:--------------------------------------------------------------:|
| Number of Video Cameras: | 1 |
| Input Resolution: | 1920x1080 (1080p) |
| Output Resolution: | 1920x1080 (1080p) |
| Recording Resolutions: | 1920x1080 (1080p) Hologram Composited Frame, 4K Quadrant Frame (see note) |
| Capture Cards: | Blackmagic Design Intensity Pro 4K, Elgato HD 60S |
| Platform: | PC |

>Note: A 4K Quadrant Frame does not generate a 4K recording of the hologram composited feed. It actually contains four streams that are each 1920x1080: The unprocessed video camera feed, the hologram feed on a black background, the hologram alpha channel feed and the composited hologram feed.
Spectator View renders holograms from Unity over a color frame from a capture card. This uses the calibration data from the calibration app to render the holograms at the correct size and orientation. The Compositor window can save still images or videos to disk, and outputs video to the output port of supported capture cards. Output pictures and videos will be saved to "My Documents\HologramCapture\".

## Setup

Expand Down Expand Up @@ -93,3 +104,6 @@ When the compositor is running, the **Compositor Stats** expander shows you stat
**Framerate** - this framerate box shows the minimum, maximum, and average framerates over the previous second. In order to maintain uninterrupted output of video at 60 frames a second, your scene must render 60 frames a second on average. If you consistently render under 60 frames a second, you may need to make performance tradeoffs in your scene (e.g. decreasing render quality) in order to record smooth video

**Queued output frames** - Shows how many already-rendered frames are queued for output to the capture card. This buffer is used to ensure that video frame output remains smooth over brief frame hitches in your scene. If your scene consistently runs under the target framerate or consistently experiences hitches, the video stream will eventually hitch once this buffer is depleted.

## Troubleshooting
For up to date information on troubleshooting filming issues, see [here](../../../../../../doc/SpectatorView.Setup.VideoCamera.md).
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,7 @@ public TextMeshProperties(TMP_Text textMesh)
fontSizeMax = textMesh.fontSizeMax;
fontSizeMin = textMesh.fontSizeMin;
fontStyle = textMesh.fontStyle;
fontWeight = textMesh.fontWeight;
fontWeight = (int) textMesh.fontWeight;
horizontalMapping = textMesh.horizontalMapping;
ignoreRectMaskCulling = textMesh.ignoreRectMaskCulling;
ignoreVisibility = textMesh.ignoreVisibility;
Expand Down Expand Up @@ -258,7 +258,7 @@ public bool IsCached(TMP_Text other)
fontSizeMax == other.fontSizeMax &&
fontSizeMin == other.fontSizeMin &&
fontStyle == other.fontStyle &&
fontWeight == other.fontWeight &&
fontWeight == (int) other.fontWeight &&
horizontalMapping == other.horizontalMapping &&
lineSpacing == other.lineSpacing &&
lineSpacingAdjustment == other.lineSpacingAdjustment &&
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ public override void Read(SocketEndpoint sendingEndpoint, BinaryReader message)
TextMeshObserver.fontSizeMax = message.ReadSingle();
TextMeshObserver.fontSizeMin = message.ReadSingle();
TextMeshObserver.fontStyle = (FontStyles)message.ReadInt32();
TextMeshObserver.fontWeight = message.ReadInt32();
TextMeshObserver.fontWeight = (FontWeight)message.ReadInt32();
TextMeshObserver.horizontalMapping = (TextureMappingOptions)message.ReadByte();
TextMeshObserver.lineSpacing = message.ReadSingle();
TextMeshObserver.lineSpacingAdjustment = message.ReadSingle();
Expand Down

0 comments on commit 1f60af3

Please sign in to comment.