![vrsl-compact](https://user-images.githubusercontent.com/107726700/194073524-eb74f90e-2d40-440c-adea-38a5e0d4ec19.png)
### DMX Via Video Artnet Gridnode ![artnet-gridnode](https://user-images.githubusercontent.com/107726700/193886336-c6df8417-d0b3-464d-b5e3-c5d0df023c6c.png) What powers VRSL is the ability to transmit DMX data contained within a video stream. It is done this way as it is the best way to achieve the following goals: - Having all players within their own instances of a world be synced. - Allowing a given world to display data that any given user wishes. - Allowing for live performances. This is the main system this project was based on. Once in unity, VRSL can convert data it reads from a VRChat Player video into DMX data that the lighting system can read. This system is powered 95% by shaders, including the actual method of reading the pixels from the screen. The other 5% is to enable GPU instancing for the shaders and certain properties. There is also basic "RAW" Udon support for when DMX Support is disabled for these shaders. #### The appeal of this system is that it allows any software or hardware that supports Artnet to control VRSL lights in real time with entirely hardware-accelerated computation with nearly unrivaled performance for the end user. This repository comes with an example recorded video in an example scene of the lights in action as well as the grid system they're reacting to. The video is placed in an example scene where the same lights are set-up to re-react to the video in real time, mimicing the actions of the lights shown in the example video. ### Get the Artnet Gridnode #### While VRSL's lights and shaders are open source, Artnet Grid Node is not. [Purchasing a copy](https://gumroad.com/l/xYaPu) of the VR Stage Lighting Grid Node will help in the development of both the node grid and the VRSL framework! OSC and MIDI output is also included with this grid system for when VRChat officially supports it via Udon. You can purchase a copy [here](https://gumroad.com/l/xYaPu), and your support will be greatly appreciated! <3 It is not required for use with AudioLink. ### Local UI Panel A UI panel that can control the intensity of the different lighting shaders is also included. Plop this panel in your world to allow users to locally control the brightness of each aspect of the lights, or all lights at once. It also includes a slider for bloom intensity and a pre-made post processing volume for it. ### Audio Reaction via AudioLink A varation of these shaders support [AudioLink by llealloo](https://github.com/llealloo/vrc-udon-audio-link). These shaders will have their intensity's react to the audio at different frequencies. They use the shader implementation of AudioLink for minimal overhead. There is also basic "RAW" Udon support that is enabled alongside AudioLink which inclues GPU Instanced properties and mover target following. An example scene is included that show the different light types reacting to the different frequency bands of audio. You can get Audiolink as well as learn more about it [here](https://github.com/llealloo/vrc-udon-audio-link)! ### Limitations - This system requires using a livestream, meaning there will be some unavoidable latency for realtime setups. - Compression artifacting can cause movement data to be scrambled a bit. VRSL works to compensate for the scrambling somewhat, but does make the movement much slower. - Light fixtures have the ability to set to control the smoothing intensity, but it is recommended to keep the smoothing at maximum (which is 0) for most situations. - If quicker movement is needed, it is recommended to do it in small bursts, quickly returning the smoothing back to maximum when you can.
## Wiki More information about VRSL and many helpful tutorials can be found on this [repo's wiki](https://github.com/AcChosen/VR-Stage-Lighting/wiki). ## Support If you'd like to support the project, you can do so via [patreon](https://www.patreon.com/ac_chosen), where you can also get some VRSL exclusives!~ You can also join the official [VRSL discord](https://discord.gg/zPktZAe48r)!