---
title: "Stylized Lines Control"
canonical: "https://rmanwiki-27.pixar.com/space/REN27/869007361/Stylized%20Lines%20Control"
format: markdown
---
![PxrStylizedLinesControl.png](media://75d56edc-9f81-4f17-852f-f9ef0c4d57c7)


> ℹ️ *PxrStylized****LinesControl*** was introduced in RenderMan v27.2


***PxrStylizedLinesControl***: Procedural stylized line extraction using curvature, Sobel edge detection on maps, and custom input signals. Supports distortion, color tinting, masking, and reflection‑aware line output.

  
PxrStylizedLinesControl is an in‑shader line‑generation pattern node. It computes stylized outlines and thin‑line accents using curvature, Sobel filtering, or user‑supplied signals, and outputs a color result suitable for compositing into stylized looks display filters. It also writes multiple NPR AOVs for downstream display filters and stylized pipelines.

  
Use it to drive toon lines, curvature‑based accents, Sobel edges, and stylized outlines directly in the shading network while staying compatible with PxrSurface, PxrLama, and downstream Stylized Looks display & sample filters.

## OVERVIEW HIGHLIGHTS

- **In‑shader** stylized line extraction
- Curvature Thin Line mode for **clean lines** from built in curvature
- Sobel Map mode for **texture‑driven edge detection** for full control
- Custom Input mode for user‑defined line masks
- Optional line **distortion** (procedural or input‑driven)
- Line color tinting via HSV
- Reflection‑aware line output for NPRreflection workflows
- Integrates with PxrSurface, PxrConstant, PxrLama BxDF’s via utilityPattern or userColor
- Works with **denoiser **(interactive & offline)


## PARAMETERS


**Result**  
Specify what goes to resultRGB.  
Use when: previewing line output or compositing lines over Input RGB.  
Range: mapper

- Lines — outputs only the extracted line result.
- inputRGB Passthrough — outputs the Input RGB color unchanged.
- Lines On Input RGB — composites lines over the Input RGB.
- RM Builtin Curvature — visualizes RenderMan’s builtin curvature.

**Input RGB**  
Base albedo color passed through when using passthrough modes. Also written to NPRalbedo AOV.  
Use when: feeding a base color into stylized line compositing.  
Range: color.

**Primary Hit Only**  
Restrict AOV writes to primary rays.  
Use when: disabling secondary‑bounce AOV writes in XPU.  
range: switch ON/OFF.


**LINE DETECT PAGE**  


**Line Detect Mode**  
Choose the line extraction method.  
Use when: selecting curvature‑based lines, Sobel edges, or a custom signal.  
Range: mapper (Curvature Thin Line / Sobel Map / Custom Input).

- Curvature Thin Line — generates thin lines from curvature values.
- Sobel Map — extracts edges using Sobel filtering on a texture.
- Custom Input — uses a user‑supplied float as the line signal.

**Custom Input**  
User‑supplied float used as the line signal when Line Detect Mode = Custom Input.  
Use when: driving lines from PxrCurvature (ray-traced curvature sampled), or any float pattern.  
Range: 0.0 – 1.0.

**Line Detect Map**  
Texture sampled for Sobel edge detection.  
Use when: extracting edges from a texture (normals, albedo, patterns).  
Range: texture asset path.

**Projection**  
Projection mode for Sobel Map sampling.  
Use when: choosing UV, screen‑space, or triplanar sampling.  
Range: mapper (Screen / UV / Triplanar).

- Screen — samples the Sobel texture in screen space.
- UV — samples using mesh UV coordinates.
- Triplanar — blends three planar projections for stable mapping.

**Flip T**  
Flip V coordinate for UV sampling.  
Use when: correcting vertically flipped textures.  
range: switch ON/OFF.

**Blur Texture Amount**  
Blur applied to Sobel texture lookups.  
Use when: stabilizing noisy textures or softening edge detection.  
Range: 0.0 – 0.5.

**Map Frequency (Screen only)**  
Frequency multiplier for screen‑space Sobel sampling.  
Use when: tiling or scaling the Sobel texture in screen projection.  
Range: 0.0 – 10.0.

**Sobel Threshold**  
Minimum edge magnitude required to produce a line.  
Use when: controlling sensitivity of Sobel edges.  
Range: 0.0 – 1.0.

**Sobel Softness**  
Softens the transition around the threshold.  
Use when: producing smoother, more painterly Sobel lines.  
Range: 0.0 – 1.0.

**Thickness (Sobel Offset)**  
Texel offset used for Sobel sampling.  
Use when: controlling line thickness in Sobel mode.  
Range: 0.0 – 5.0.

**Sobel Gamma**  
Gamma applied to edge magnitude.  
Use when: adjusting contrast of Sobel lines.  
Range: 0.0 – 1.0.

**Curvature Thin Line Picker**  
Curvature value at which a thin line is drawn.  
Use when: generating toon‑style curvature linework.  
Range: 0.0 – 50.0.

**Quantize Curvature**  
Quantize curvature before thin‑line evaluation.  
Use when: creating stepped, graphic curvature lines.  
Range: integer 0 – 20.

**Curvature Thin Line Layers**  
Add multiple thin‑line layers at different curvature levels.  
Use when: creating layered, multi‑band curvature lines.  
Range: 0 – 20.

**Layers Precision**  
Precision of curvature layer matching.  
Use when: controlling thinness of layered curvature lines.  
Range: 1 – 3.

**Enable Thickness Variation**  
Enable a second curvature picker for variable thickness.  
Use when: modulating line thickness using an upstream float.  
range: switch ON/OFF.

**Picker 2**  
Upper curvature bound for thickness variation.  
Use when: defining the second curvature threshold.  
Range: 0.0 – 50.0.

**Thickness Multiplier**  
Blend between Picker and Picker 2 based on upstream float.  
Use when: driving thickness variation from PxrFractal, PxrTexture, etc.  
Range: 0.0 – 1.0.

**Enable Mask / Mask**  
Optional mask to attenuate line intensity.  
Use when: restricting lines to specific regions.  
Range: 0.0 – 1.0.


### LINE COLOR PAGE  


**Line Color From**  
Choose the source of line color.  
Use when: coloring lines from a swatch, NPRalbedo, or section IDs.  
Range: mapper (Color / NPRalbedo / Sections).

- Color — uses the Line Color swatch.
- NPRalbedo — uses the Input RGB albedo.
- Sections — uses random per‑ID section colors.

Line Color  
Color used when Line Color From = Color.  
Use when: setting a uniform line color.  
Range: color.

BG Color  
Background color behind lines.  
Use when: previewing lines on a flat background.  
Range: color.

Hue / Saturation / Value Tint  
HSV tints applied to line color.  
Use when: stylizing or shifting line color.  
Range: 0.0 – 1.0.

Line Invert  
Invert line mask and colors.  
Use when: switching between black‑on‑white and white‑on‑black.  
range: switch ON/OFF.

Lines in Reflections  
Write line detect data into reflection-only surfaces for downstream display / sample filters.  
Use when: adding stylized lines to reflective surfaces.  
Range: mapper (OFF / Lines).

- OFF — disables line output in reflection rays.
- Lines — writes line color into NPRreflection for reflected edges.

Line Output RGB AOV / Line Output Alpha AOV  
Names of AOVs written by the shader.  
Use when: customizing AOV routing for display filters.  
Range: string.


### LINE DISTORT PAGE

  
**Enable**  
Enable line distortion.  
Use when: adding wobble, jitter, or stylized irregularity to lines.  
range: switch ON/OFF.

**Distort Source**  
Choose procedural or input‑driven distortion.  
Use when: using PxrFractal or procedural turbulence to distort lines.  
Range: mapper (Procedural / Input Connection).

- Procedural — uses built‑in fBm turbulence for distortion.
- Input Connection — uses upstream float inputs for distortion.

**Distort Input U / V**  
Upstream distortion values when using Input Connection.  
Use when: feeding noise or masks into distortion.  
Range: –1.0 – 1.0.

**Distort Input U/V Scale**  
Scale for input distortion.  
Use when: controlling distortion strength.  
Range: 0.0 – 0.2.

**Remap**  
Remap input distortion from [0..1] to [–1..1].  
Use when: centering distortion around zero.  
range: switch ON/OFF.

**Offset**  
Global distortion multiplier.  
Use when: increasing or decreasing overall distortion.  
Range: –20 – 20.

**Procedural Octaves / Frequency / Amplitude**  
Parameters for procedural fBm turbulence.  
Use when: generating organic, hand‑drawn distortion.  
Range:

- Octaves: 1 – 8
- Frequency: 0.1 – 32
- Amplitude: 0.01 – 5.0


### NOTES  


Read‑only notes including required AOVs and setup guidance.  
Use when: referencing required NPR AOVs for Stylized Looks.  
(From shader source)  
“Required AOVs: NPRoutline, NPRsections, NPRlineNZ, NPRcurvature…”


### OUTPUTS

  
resultRGB (color) — final line output or passthrough color.  
resultAOV (int) — ensures shader evaluation when only AOVs are written.


## QUICK USAGE TIPS


- Use Curvature Thin Line for crisp lines based on object curvature and clean graphic edges.
- Use Sobel Map for texture‑driven edges or normal‑map‑based outlines for full control.
- Add Distortion for hand‑drawn wobble or stylized jitter.
- Use HSV Tint to shift line color without repainting textures.
- Enable Lines in Reflections for stylized chrome, glass, and mirrors.
- Use Line Output AOVs with Stylized Looks display filters for final compositing.