Skip to content
Back to skills

Shader Graph

ASecurity

ShaderGraph — custom function nodes, sub-graphs, keyword-driven variants, master stack outputs, common patterns for URP effects.

  • 21 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added May 28, 2026
ai-agentsnodeperformance

Security analysis

A100/100

Scanned May 28, 2026

npx -y skills add XeldarAlz/everything-claude-unity --skill shader-graph --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Shader Graph?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Shader Graph
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/xeldaralz-shader-graph/badge)](https://www.skillsdirectory.com/skills/xeldaralz-shader-graph)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: shader-graph
description: "ShaderGraph — custom function nodes, sub-graphs, keyword-driven variants, master stack outputs, common patterns for URP effects."
globs: ["**/*.shadergraph", "**/*.shadersubgraph"]
---

# ShaderGraph

## Overview

ShaderGraph is Unity's visual shader editor. Node-based, works with URP and HDRP. Generates HLSL shader code from the graph.

## Master Stack Outputs

### Vertex Stage
- Position (object/world/absolute world)
- Normal (object/tangent)

### Fragment Stage (URP Lit)
- Base Color, Normal (Tangent), Metallic, Smoothness, Emission, Ambient Occlusion, Alpha

### Fragment Stage (URP Unlit)
- Base Color, Alpha

## Custom Function Nodes

### Inline (small functions)
```hlsl
// In Custom Function node, Type: String
void MyFunction_float(float3 In, out float3 Out)
{
    Out = In * 2.0;
}
```

### External File (complex functions)
Create `.hlsl` file in project:
```hlsl
// Assets/Shaders/MyFunctions.hlsl
void TriplanarMapping_float(
    float3 Position, float3 Normal, float Sharpness,
    UnityTexture2D Tex, UnitySamplerState Sampler,
    out float4 Color)
{
    float3 blend = pow(abs(Normal), Sharpness);
    blend /= dot(blend, 1.0);

    float4 xProj = SAMPLE_TEXTURE2D(Tex, Sampler, Position.yz);
    float4 yProj = SAMPLE_TEXTURE2D(Tex, Sampler, Position.xz);
    float4 zProj = SAMPLE_TEXTURE2D(Tex, Sampler, Position.xy);

    Color = xProj * blend.x + yProj * blend.y + zProj * blend.z;
}
```

Reference in Custom Function node: Source = Asset, File = MyFunctions.hlsl

## Keywords (Shader Variants)

- **Boolean Keyword:** toggle features on/off per material
- **Enum Keyword:** select between N options
- Use `shader_feature` (stripped if unused) not `multi_compile` (always included)
- Use `shader_feature_local` for material-only keywords

Keep total variant count **under 1000** per shader.

## Common Patterns

### Dissolve Effect
1. Sample noise texture (Gradient Noise or texture)
2. Compare noise value to "Dissolve Amount" property (Step or SmoothStep)
3. Multiply with Alpha output
4. Add emission at dissolve edge (edge = small range above threshold)

### Fresnel / Rim Lighting
1. Fresnel Effect node (View Direction, Normal)
2. Multiply by color
3. Add to Emission

### Scrolling UV (Water, Lava)
1. Time node → Multiply by scroll speed
2. Add to UV coordinates
3. Sample texture with modified UVs

### Vertex Displacement (Wind, Waves)
1. Object Position + Time → noise function
2. Multiply by displacement amount
3. Add to Vertex Position output

### Outline (Inverted Hull Method)
Two-pass: Pass 1 = normal render, Pass 2 = vertex-expanded back faces with solid color.
(Requires custom Renderer Feature in URP or ShaderGraph with two materials.)

## Sub-Graphs

Reusable node groups. Create for common operations:
- Triplanar mapping
- Tiling and offset with rotation
- Blend modes (overlay, multiply, screen)
- Parallax mapping

## Performance Tips

- Minimize texture samples per fragment
- Use `half` precision where possible (set in graph settings)
- Avoid branching (use lerp/step instead)
- Fewer keywords = fewer variants = faster build times
- Preview variant count in Shader Inspector

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.