Shader Explorer
"I need X. Which shader has it?"
This tool answers that question.
What It Does
Shader Explorer parses all SDSL files and shows you:
- Every shader and its inheritance tree
- All variables, methods, and streams
- What each shader provides
Instead of guessing which shader to inherit, you search for what you need.
Installation
- Download from github.com/tebjan/Stride.ShaderExplorer/releases
- Extract and run the exe
Without Stride Installed
Shader Explorer normally requires Stride to be installed. If you only use vvvv and don't want to install Stride Studio (which is several gigabytes), you can install just the shader packages:
Step 1: Make sure this folder exists:
C:\Users\<yourusername>\.nuget\packages
Step 2: Open vvvv, then Quad menu > Manage Nugets > Commandline
Step 3: Navigate to the packages folder:
cd %userprofile%\.nuget\packages
Step 4: Install only the shader packages (no dependencies):
nuget install Stride.Rendering -Version 4.2.0.2188 -DependencyVersion ignore
nuget install Stride.Graphics -Version 4.2.0.2188 -DependencyVersion ignore
Replace the version number with your vvvv's Stride version (check Hamburger menu > About).
Step 5: Run Shader Explorer. It should now find the Stride shaders.
Credit: motzi's forum tutorial
Adding vvvv Shaders
By default, Shader Explorer only shows Stride's built-in shaders. To add vvvv shaders:
- Click the folder icon in the toolbar
- Navigate to:
C:\Program Files\vvvv\vvvv_gamma_...\lib\packs\VL.Stride.Runtime...\stride\Assets\Effects - Click Select Folder
Now you can search VS_PS_Base, TextureFX, FilterBase, ShaderUtils, and other vvvv-specific shaders.
Adding Your Own Shaders
Same process. Add any folder containing .sdsl files:
- Click the folder icon
- Navigate to your project's
shadersfolder - Click Select Folder
Your custom shaders now appear alongside the built-in ones.
Finding What You Need
Workflow:
- Type what you need in the search box (e.g., "WorldViewProjection")
- Results show which shaders contain that term
- Click a shader to see its full definition
- Note the shader name and inherit from it
Example: You need transformation matrices.
- Search "WorldViewProjection"
- Find it in
Transformation - In your shader:
shader MyShader : Transformation { } - Now
WorldViewProjection,World,View,Projectionare all available
Reading the UI
The left panel shows the inheritance tree:
ShaderBaseStream
└── ShaderBase
└── Texturing
└── TextureFX
└── FilterBase
Click any shader to see its code in the right panel.
The code panel shows:
- Variables and their types
- Stream declarations
- Methods (with full signatures)
- What this shader inherits from
Common Searches
| I need | Search | Inherit |
|---|---|---|
| World/View/Projection matrices | WorldViewProjection |
Transformation |
| Vertex position | Position |
PositionStream4 |
| Texture coordinates | TexCoord |
Texturing |
| Normal vectors | Normal |
NormalStream |
| Tangent vectors | Tangent |
TangentStream |
| Vertex colors | Color |
ColorStream |
| Instance ID | InstanceID |
ShaderBaseStream |
| Time | Time |
Global |
| SV_Position output | ShadingPosition |
ShaderBaseStream |
| Pixel output | ColorTarget |
ShaderBaseStream |
| Sampler | Sampler |
Texturing |
| PI and math | PI |
ShaderUtils (vvvv) |