Subgraphs
You already have six drop-in subgraphs: Flat/Triplanar/Spherical for Diffuse (color) and Normal. Using these, you can add the hex-based seamless logic to any Shader Graph (Unlit, Lit–Built-in/URP/HDRP

What each subgraph does
Flat (Diffuse): makes a regular UV-mapped texture seamless.
Flat (Normal): same logic, but for a normal map so it stays in sync with the color path.
Triplanar (Diffuse/Normal): seamless + axis-blended projection; great for cliffs/rocks or broken UVs.
Spherical (Diffuse/Normal): seamless spherical mapping; removes polar seams on round meshes.
Each subgraph takes the texture and the seamless controls, then outputs the final value you should plug into your master node (Base Color / NormalTS, etc.).
Ports you’ll see (names may vary slightly)
From the screenshot:
Texture (Texture2D)– the map to sample (albedo for Diffuse, normal for Normal).UV (Vector2)– source UV (usually UV0 for Flat).Scale (Float)– hex cell size/density.Ratio (Float)– UV scale mode: 0=Standard, 1=Auto, 2=Free.Tiling (Vector2)– classic tiling multiplier.Offset (Vector2)– classic UV offset.Focus (Float)– border softness between hex cells.Rotate (Float)– per-cell random rotation amount.Zoom (Float)– per-cell random scale amount (around 1×).ZoomLerp (Vector2)– min/max scale range for Zoom (e.g., 0.95–1.05).Axis (Vector3)– used by Triplanar (xyz axis weights); ignored by Flat.Style (Float)– 0=Texture, 1=Both, 2=Debug.
Sphere subgraphs also expose spherical controls (e.g., Side Line, Side Smoothness, Polar Point, Polar Smoothness).
Flat (regular UV) — Diffuse
Open your Shader Graph.
Drag
SeamlessConverter (Diffuse)into the graph.Wire:
Texture→ your albedo texture property.UV→ TEXCOORD0 (UV0).Tiling/Offset→ your material properties.Scale,Focus,Rotate,Zoom,ZoomLerp,Ratio,Style→ expose as material controls (recommended).
Connect the subgraph output to Base Color/Albedo of your master node.
Result: your original shading stays the same, only the sampling becomes seamless.
Flat — Normal
Drag
SeamlessNormalConverter.Wire it exactly like the Diffuse path, but set
Textureto your normal map.Ensure the texture import is Texture Type: Normal Map.
Output → NormalTS (URP/HDRP) or Normal input on Built-in PBR Master.
Color and normal now share the same seamless UV logic—no mismatches.
Triplanar — Diffuse & Normal
Use
TriplanarSeamlessConverter(Diffuse) andTriplanarSeamlessNormalConverter(Normal).Provide world data if the subgraph asks for it (e.g., Position (World), Normal (World)—via Shader Graph nodes).
Set
Axis(Vector3) to control axis weights (start with (1,1,1)).Connect Diffuse output → Base Color, Normal output → NormalTS.
Ideal for cliffs/meshes with stretched or missing UVs; hex logic still breaks repetition.
Spherical — Diffuse & Normal
Use
SphereUV(Diffuse) andSphereNormalUV(Normal).Wire the seamless controls as usual; then tune sphere-specific ports:
Side Line / Side Smoothness – equator band width/softness.
Polar Point / Polar Smoothness – pole radius/blend strength.
Outputs → Base Color / NormalTS.
Great for planets, bulbs, and any rounded props that suffer from pole seams.
Recommended property ranges
Focus: 0.15–0.6 (higher = softer borders)
Rotate: 0–30 (use degrees or normalized amount per your subgraph)
Zoom: ~0.9–1.2 (subtle variation reads best)
ZoomLerp: (0.95, 1.05) as a safe default
Tiling: avoid extreme values—let the hex variation do the work
Scale: pick a value that yields ~2–6 hex cells across the visible area, then adjust
Per-object variation (optional)
If you want each instance to look slightly different, add a Seed float to your material and feed it to the subgraph (if exposed).
Alternative: derive a seed from Object ID or hashed World Position inside your graph.
Pipeline notes
Built-in: Connect outputs to your PBR/Unlit master as usual.
URP/HDRP: Use Base Color and NormalTS; enable SRP Batcher for CPU savings.
Magenta materials: Import the correct variant from
SeamlessConverter/Renderers/.
Common pitfalls
Normal looks wrong: Not imported as Normal Map, or color/normal aren’t using the same seamless path.
Still repetitive: Increase Rotate/Zoom, raise Focus, and keep Tiling moderate.
Banding on spheres: Adjust Side Line/Side Smoothness/Polar parameters.
Debug in builds: Set
Styleback to Texture for release.
Last updated