Skip to main content

Setting up a Screen

Setting up a screen is pretty simple. ProTV provides two mechanism for utilizing the video.

Material Target

The primary way is to use the Material Targets list.
ProTV Material Targets
ProTV will assign the video texture to the specified Texture Property of the provided Material in the entry. This allows it to work with any shader you want. For convenience, there is a Create Material button to automatically setup a new material for you, just choose where to save the asset.
If the material is using a ProTV shader, it'll default to the _VideoTex property, otherwise it's typically _MainTex. Other common properties are _Emission and _EmissionMap.
Once you setup the materials, you can just put them on whatever renderers you need to.

RenderTexture Target

The second way to use the video is with the RenderTexture Target. This is an explicit RenderTexture that can be used for various purposes. It is commonly used when dealing with LTCGI and AreaLit, but can be used in any situation where a material is insufficient or requires a texture.
ProTV RenderTexture Target
There are some control settings for managing the RenderTexture's behavior. These settings typically do not need to be adjusted except for special circumstances. But should you need to, here's what they are for:
Allow Texture Resizing allows the RenderTexture size to be modified. Disable if you need exact pixel size for the texture.
Texture Aspect Ratio handles the expected ratio that the source video should be rescaled to. Set to 0 to ignore aspect concerns.
Apply Aspect to Resize makes the RenderTexture size modified to match the ratio specified in a "fit-inside" style.
Bake Aspect into Texture makes the RenderTexture adjust the video texture inside the blit operation such that it does a "fit-inside" scaling. This adds letter-boxing/pillar-boxing to the texture.

When no RenderTexture is present, there will be a "Create" button to the right of the reference box which you can click to auto-generate an RT for you, just choose where to save the asset. Once there is a RenderTexture reference present, the create button changes to a "Preview" button, which will temporarily force the attached materials to render the texture (this is generally used for checking LTCGI stuff).

Standby Textures

For the RenderTexture Target option, there are some additional fields to facilitate branding and placeholder images.
ProTV Standby Target
The Default Standby texture will be shown when there is no active media playing. This is controlled by the to above Show Standby On Media End/Pause options. When audio is detected without any video present, the Sound Only texture will be used as the video stand-in. Both of these textures have corresponding options on the ProTV shaders as well for when using the Material Targets option.

Global Texture

Lastly, ProTV exposes a global RenderTexture for use on avatars. You can read more here

Video Failure and Error Messages

As for the error messages themselves, the information that VRC provides udon when a video error happens is very little, so ProTV does a bit of heuristic extrapolation to try and guess as to what the error should mean. if ProTV "detects" the video to be a live-stream (internally checked as if the video has 0 or infinite duration) it will display slightly different messages. If there is a quirky edge case that pops up with a video not reporting it's duration for some reason, it would be interpreted as a live-stream and use the stream error messages instead of the regular video error messages. 3.0 should handle those edge cases much cleaner.