Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/decentraland-scenes/uv-projector
Tool that helps you project a large video stretching over many smaller screens
https://github.com/decentraland-scenes/uv-projector
Last synced: about 1 month ago
JSON representation
Tool that helps you project a large video stretching over many smaller screens
- Host: GitHub
- URL: https://github.com/decentraland-scenes/uv-projector
- Owner: decentraland-scenes
- License: apache-2.0
- Created: 2022-06-29T11:07:58.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2022-06-29T12:18:33.000Z (over 2 years ago)
- Last Synced: 2024-08-05T15:04:36.748Z (5 months ago)
- Language: TypeScript
- Size: 36.4 MB
- Stars: 3
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- Awesome-Repository - uv projector - projector.gif" width="200"> | Use UVs to map a video to multiple surfaces, constructing a single image that adjusts as the player changes their angle. | (Examples / Essentials)
README
# UV Projector
_demo of the UV Projector scene running in preview._![demo](https://github.com/decentraland-scenes/uv-projector/blob/main/screenshots/uv.gif)
## Description
UV Projector is a tool that helps you project a large video stretching out onto many smaller screens. You can even reproject the UV cooridantes on every frame, so the video will always face towards the player.## Instructions
**In the scene**
You can run around and watch as the video on the colums follow you (while the columns themselves don't move or turn). Use your mouse to look around and W A S D keys on your keyboard to move forward, left, backward and right respectively. To jump, press the Space key.
**In the code**
You need to create a projector plane ( Projector ) that is invisible to the player, with a chosen size and orientation. This will project the video onto other screens ( Screen ).
You need to also create a ScreenGroup for each Projector and assign the Screens you create to that group.
You can project all the Screens' UVs once (or on every frame inside a System) using:
```
myScreenGroup.updateScreens( Camera.instance.position )
```Do not parent the screens or the projector under any other Entity. Both need to be in world-space. You can however parent Entities to the screens to add frames, backgrounds etc.
## Try it out
**Install the CLI**
Download and install the Decentraland CLI by running the following command:
```
$ npm i -g decentraland
```**Previewing the scene**
Download this example and navigate to its directory, then run:
```
$ dcl start
```## Acknowledgements
- _cc_video.mp4_ is a Creative Commons video from https://vimeo.com/58460459