mirror of
https://github.com/AcChosen/VR-Stage-Lighting.git
synced 2025-02-25 21:58:09 +01:00
Updated VRSL DMX: Creating Custom DMX Shaders (markdown)
parent
ac86773b04
commit
ffbe33ea14
@ -97,11 +97,21 @@ Shader "Unlit/VRSL-TutorialV2"
|
||||
int dmx = GetDMXChannel();
|
||||
|
||||
float intensity = ReadDMX(dmx, _Udon_DMXGridRenderTexture); // 0-1 output
|
||||
float4 color = GetDMXColor(dmx+1); //this is the same as 3 ReadDMX() calls mapped to a float3 with 1 in the alpha channel
|
||||
float strobe = GetStrobeOutput(dmx + 4); // a special function for getting strobe output, which is a square wave from 0-1
|
||||
|
||||
//this is the same as 3 ReadDMX() calls mapped to a float3 with 1 in the alpha channel
|
||||
float4 color = GetDMXColor(dmx+1);
|
||||
|
||||
// a special function for getting strobe output, which is a square wave from 0-1
|
||||
float strobe = GetStrobeOutput(dmx + 4);
|
||||
|
||||
//combine them together
|
||||
o.finalColor = (intensity * color) * strobe;
|
||||
|
||||
//check to see if dmx capabilities are enabled, if not, output this base emission color.
|
||||
o.finalColor = isDMX() ? o.finalColor : getBaseEmission();
|
||||
|
||||
//Use the global intensity and final intensity properties to control the outputted intensity of the color
|
||||
//good for world shaders that want to be controlled by udon-based sliders.
|
||||
o.finalColor *= getGlobalIntensity() * getFinalIntensity();
|
||||
return o;
|
||||
}
|
||||
@ -129,7 +139,7 @@ You do not need to only send color data, you can also send the dmx data values t
|
||||
|
||||
## The Main Properties
|
||||
|
||||
These two are the two properties most important:
|
||||
These are the 3 most important properties
|
||||
|
||||
- `_DMXChannel ("Starting DMX Channel", Int) = 1`
|
||||
- The `_DMXChannel` instanced property is where you'll set the starting DMX Channel for your DMX shader. DMX Channels start reading from 1, so 1 is the default. This is more of a "raw" channel number and should be used only for world shaders when its controlled by the `VRStageLighting_DMX_Static` script.
|
||||
@ -138,12 +148,9 @@ These two are the two properties most important:
|
||||
- An alternative to "_DMXCHannel" for avatar shaders. Use this to manually set the proper dmx512 channel.
|
||||
|
||||
- `_Universe("Starting DMX Universe", Int) = 1`
|
||||
- An alternative to "_DMXCHannel" for avatar shaders. Use this in conjunction with `_Channel` to manually set the universe for the dmx512 channel.
|
||||
- An alternative to "_DMXCHannel" for avatar shaders. Use this in conjunction with `_Channel` to manually set the universe for the dmx512 channel
|
||||
|
||||
- `[NoScaleOffset] _DMXGridRenderTexture("DMX Grid Render Texture (To Control Lights)", 2D) = "white" {}`
|
||||
- The `_DMXGridRenderTexture` is where the DMX Grid render texture will actually go. You can find the render textures in: `Packages/com.acchosen.vr-stage-lighting/Runtime/Textures/RTs`. There you can find the horizontal, vertical, and legacy versions of the textures. I recommend using the `DMXRTViewer-Interpolated-Color+Intensity` prefixed render textures as those are the slighting smoothed versions of the RAW render texture counterparts.
|
||||
|
||||
These two properties are required for all world-based DMX shaders (for now).
|
||||
The first property is required for world shaders. The last 2 are required for avatar shaders.
|
||||
|
||||
|
||||
## The Extra Properties
|
||||
|
Loading…
x
Reference in New Issue
Block a user