# LitPlus

## **Overview**

**LitPlus** is an enhanced material suite for URP, designed to extend and refine the capabilities of the standard URP materials. Built upon the foundation of the URP Lit Shader, **LitPlus** delivers richer visual fidelity, supports a broader range of commonly used effects, and achieves superior runtime performance

## **Features**

* **Render Settings**
  * Fully compatible with all features of the URP Lit Surface Options
  * Offers extended settings with greater flexibility
* **Surface Maps**
  * Base Map
  * Normal Map
  * Height Map
  * Emission Map
  * Detail Map
  * Mask Map
* **Mask Map**
  * Supports dual mask configuration
  * Allows flexible channel mapping for data input (no fixed channel dependency)
  * More compact and efficient in memory usage
* **Lighting** — Physically Based Rendering (PBR) with additional equations for richer visual variations
  * **Ambient** — adjustable brightness for upper and lower hemispheres
  * **Diffuse**
    * Supports shadow lifting
    * Supports Ramp shading
    * Supports skin rendering
  * **Highlights**
    * Supports PBR specular highlights
    * Supports hair rendering
  * **Reflections**
    * Adjustable brightness
    * Adjustable Fresnel intensity
    * Custom CubeMap support
* **Enhanced URP Effects** — extending and improving native URP features while introducing new common effects
  * **Emission**
    * Supports surface flow animation
    * Supports directional control via FlowMap
  * **MatCap**
    * Multiple blend modes supported
    * Multi-layer MatCap blending
  * **Rim**
    * HDR support
    * Adjustable width and falloff
    * Directional intensity control
* **Debug Colors**
  * Geometry Data
  * Texture Colors
  * Surface Data
  * Lighting Data
  * and more
* **Performance**
  * Optimized with half-precision floating-point operations for higher efficiency
  * Macro-based feature toggling to eliminate unnecessary computations

## **Render Settings**

**Render Settings** fully encompasses all features of the URP Lit Surface Options while adding additional controls for specialized needs:

* Depth Test
* Depth Write
* Src Blend, Dst Blend
* Alpha Src Blend, Alpha Dst Blend

![](https://content.gitbook.com/content/5TKI5zdwMx1bXFiVnBUe/blobs/MwaYvKUGFVUFqQgBRX2i/Unknown%20image)

## **Surface Inputs**

**Surface Inputs** define the surface’s input parameters, including:

* **Base Map** — consistent with URP
* **Mask Map** — adds an extra mask compared to URP for more complex effects
* **PBR Data** — more flexible than URP, allowing selection of different mask channels as data sources
* **Normal Map & Height Map** — include explicit toggles for easier debugging and control

![](https://content.gitbook.com/content/5TKI5zdwMx1bXFiVnBUe/blobs/bdZQQvhU5aSPuogiwSrH/Unknown%20image)

### **Mask Map**

Supports dual Mask Maps.

![](https://content.gitbook.com/content/5TKI5zdwMx1bXFiVnBUe/blobs/xOs6dOB9UkSIuPOFR7FS/Unknown%20image)

**Base Mask Map**

* Used for standard data
* Examples: Metallic, AO, Emission Mask, Smoothness

**Extra Mask Map**

* Used for complex effects when Base Mask alone is insufficient
* Examples: Skin Curvature, Emission Mask, Detail Mask

**Precision Recommendations**

* High-precision data → Base Mask with medium or full-size textures (½–1× Base Map)
* Lower-precision data → Extra Mask with smaller textures (¼ Base Map)

### **PBR Data**

Allows configuration of **PBR Data** sources and scaling:

* Supports selecting the source channel from any Mask Map
* No fixed-channel dependency, offering greater flexibility and compactness

![](https://content.gitbook.com/content/5TKI5zdwMx1bXFiVnBUe/blobs/5AHnuvMLAkQGEe9worPo/Unknown%20image)

### **Normal Map**

![](https://content.gitbook.com/content/5TKI5zdwMx1bXFiVnBUe/blobs/UgUZ8B2CZKEoMkiA8vTx/Unknown%20image)

**LitPlus** provides a toggle for the Normal Map, allowing effect comparison without removing the map.

![](https://content.gitbook.com/content/5TKI5zdwMx1bXFiVnBUe/blobs/s9p6t84Brv7pVE6WxynP/Unknown%20image)

### **Height Map**

The **Height Map** functions the same as in URP, simulating height variations through UV offset.

![](https://content.gitbook.com/content/5TKI5zdwMx1bXFiVnBUe/blobs/IHjUEM5zMEM2gpwe5fZ9/Unknown%20image)

We do not recommend using the Height Map, as its UV-offset-based implementation yields only limited visual impact. However, **LitPlus** retains this feature to ensure full compatibility with URP material capabilities.

## **Ambient**

**Ambient** allows independent adjustment of upper and lower brightness.

![](https://content.gitbook.com/content/5TKI5zdwMx1bXFiVnBUe/blobs/r9nRNWmRow77DZG9hEmx/Unknown%20image)

Increasing brightness contrast enhances depth perception, whereas reducing contrast gives a more stylized, cartoon-like effect.

![](https://content.gitbook.com/content/5TKI5zdwMx1bXFiVnBUe/blobs/bi4wCWgwmjjvYQCYEaet/Unknown%20image)

## **Diffuse**

### **Shadow Lift**

Diffuse shading can brighten shadowed areas using the **Shadow Lift** parameter, creating a lighter and more cheerful appearance.

![](https://content.gitbook.com/content/5TKI5zdwMx1bXFiVnBUe/blobs/KmGOsHiUioOOl6MC1s8a/Unknown%20image)

![](https://content.gitbook.com/content/5TKI5zdwMx1bXFiVnBUe/blobs/dgdqxur0Dd0QvIlo2UAY/Unknown%20image)

### **Ramp Mode**

Supports **Ramp**, enabling artistic effects such as stepped lighting or realistic skin shading.

![](https://content.gitbook.com/content/5TKI5zdwMx1bXFiVnBUe/blobs/KkPYZLmZHK8hOMZUCKf3/Unknown%20image)

![](https://content.gitbook.com/content/5TKI5zdwMx1bXFiVnBUe/blobs/0GDqTAZGHp2n31WkJ4Yj/Unknown%20image)

### **Skin Mode**

Supports skin rendering with low performance overhead, making it suitable for mobile platforms.

![](https://content.gitbook.com/content/5TKI5zdwMx1bXFiVnBUe/blobs/iojaO371hD4MTWjb2jYC/Unknown%20image)

**Curvature**

* Represents skin curvature, indicating skin thickness
* Thin skin areas (high curvature) exhibit stronger subsurface scattering
* High curvature usually occurs on thin regions such as the nose and ears
* Low curvature appears on thicker areas like the body and limbs
* Curvature maps can be baked and processed using Substance 3D
* **Curvature Source** specifies which mask channel provides the skin curvature data

**Skin LUT**

* Includes a default Skin LUT as an example
* Custom Skin LUTs can be created for stylized effects

**Params**

* **Brightness** — controls overall skin brightness
* **Light Color Influence**
  * determines how lighting color affects skin tones
  * reducing this influence can enhance visual appeal under varying light colors
* **Shadow Strength**
  * controls shadow intensity on the skin
  * lower values often produce more aesthetically pleasing results
* **Rim Power**
  * adjusts the width of the skin rim effect
  * set to 0 to disable rim effects

![](https://content.gitbook.com/content/5TKI5zdwMx1bXFiVnBUe/blobs/83cDcXQYdFshpcEtI6Z0/Unknown%20image)

## **Highlights**

### **Default Mode**

![](https://content.gitbook.com/content/5TKI5zdwMx1bXFiVnBUe/blobs/1AZqWcCXxF04sUqrN00T/Unknown%20image)

The **Default** mode matches URP Specular Highlights.We’ve added **Highlight HDR** color settings to enhance specular effects, enabling stylized, visually striking results beyond strict realism.

### **Hair Mode**

The **Hair** mode uses the Scheuermann lighting model to render hair specular highlights.

![](https://content.gitbook.com/content/5TKI5zdwMx1bXFiVnBUe/blobs/Wz7MMHiX0taMrdU0DN3P/Unknown%20image)

**Hair Specular**

* **Strength** — overall brightness of the hair highlight
* **Power** — controls the spread of the hair highlight
* **Shift** — adjusts the highlight position (toward roots or tips)
* **Shift From FlowMap Z**
  * uses the Z channel of the Flow Map to fine-tune the highlight position
  * this parameter adjusts the influence of the Flow Map Z channel

**Flow Map**

* **R and G channels** — represent hair flow direction; can be painted using tools like Krita
* **Z channel** — offsets highlight positions, typically used to create serrated highlight effects

**Without Flow Map**

* If hair textures are laid out horizontally, highlights can still render correctly without a Flow Map
* When no flow map is provided, the horizontal direction of the texture is used as the default input for hair highlights

![](https://content.gitbook.com/content/5TKI5zdwMx1bXFiVnBUe/blobs/zwAjswdnCviz4f3IiO38/Unknown%20image)

## **Reflections**

### **Default Mode**

The **Default Mode** produces results consistent with URP Environment Reflections.

![](https://content.gitbook.com/content/5TKI5zdwMx1bXFiVnBUe/blobs/Yf5FsGITYhhKDAbRWE05/Unknown%20image)

We provide two parameters for fine-tuning reflections:

* **Strength** — controls the overall brightness of reflections
* **Fresnel**
  * adjusts the intensity of the reflections’ Fresnel effect
  * default Fresnel brightness may not always be visually optimal

### **Custom Mode**

**Custom Mode** allows using a user-defined CubeMap to override the scene’s environment reflection.

![](https://content.gitbook.com/content/5TKI5zdwMx1bXFiVnBUe/blobs/ta0Jl5ZFGJmrtLJGqIn3/Unknown%20image)

It can be used for localized lighting effects—for example, a CubeMap with multiple highlights can enhance the sparkle in eyes.

![](https://content.gitbook.com/content/5TKI5zdwMx1bXFiVnBUe/blobs/9kjUbEdqlaqxh5JL59cf/Unknown%20image)

## **Emission**

We’ve enhanced URP’s Emission system.

![](https://content.gitbook.com/content/5TKI5zdwMx1bXFiVnBUe/blobs/AeZmGhxha2yw40sHCwwC/Unknown%20image)

### **Mask Source**

Supports masking via channels in the Mask Map. For solid-color emission, a single mask channel is sufficient.

### **Tiling**

Masking enables **tiling**, allowing the creation of repeated emission patterns.

### **Directional Flow**

Supports flow animation—combining a noise texture with movement produces dynamic emission effects.

![](https://content.gitbook.com/content/5TKI5zdwMx1bXFiVnBUe/blobs/d5SeZrNrteuT6FEnBQSd/Unknown%20image)

### **Flow Map**

Supports using a **Flow Map** to control emission direction:

* **R and G channels** — define flow direction; can be painted in tools like Krita
* **Speed** — controls the flow speed (cycle duration)
* **Strength** — controls the amplitude of the flow cycle

A Flow Map enables directional emission on characters, introducing dynamic motion and rhythmic visual effects.

![](https://content.gitbook.com/content/5TKI5zdwMx1bXFiVnBUe/blobs/fDbiDkWeBLHzeHQ7P9ik/Unknown%20image)

![](https://content.gitbook.com/content/5TKI5zdwMx1bXFiVnBUe/blobs/DRklVpnsDE91SqfulF52/Unknown%20image)

## **Detail**

**LitPlus** reproduces the same Detail effect as URP while supporting the use of the **Mask Map** as a Detail Mask—eliminating the need for a separate Detail Mask texture.

![](https://content.gitbook.com/content/5TKI5zdwMx1bXFiVnBUe/blobs/Xr7xYnb3YP8Oidq0P88y/Unknown%20image)

**Usage Recommendation**

* Use Detail only when close-up shots of characters are required
* Avoid using Detail for characters that won’t be viewed up close to prevent unnecessary performance costs

## **MatCap**

**LitPlus** supports four-layer **MatCap** blending, allowing simulation of different lighting component combinations through various blend settings.

![](https://content.gitbook.com/content/5TKI5zdwMx1bXFiVnBUe/blobs/6DJtitwTsRJU1TJkDfC8/Unknown%20image)

Traditionally, **MatCap** was used to simulate lighting for performance, trading memory for computation.

With modern GPUs handling PBR rendering efficiently, MatCap is now primarily employed for artistic lighting effects.

![](https://content.gitbook.com/content/5TKI5zdwMx1bXFiVnBUe/blobs/nzQXeo3ElLlbXkbotNnQ/Unknown%20image)

### **Mask Map**

Uses the **RGBA channels** to mask four MatCap layers: **R** for the first layer, **G** for the second, and so on.

### **Blend Mode**

Supports **four blend modes**:

* **Alpha Blend**
  * uses the MatCap color’s alpha as the blending factor
  * useful for mixing with base color and modifying its appearance
* **Premultiply** — similar to Alpha Blend, but the alpha only affects the base color ratio without altering the MatCap color proportion
* **Additive** — ideal for simulating specular reflections (highlights, environment reflections) or stacking effects like rim light
* **Multiply** — suitable for simulating diffuse shading effects

Params

* **MatCap Strength** — overall intensity of the MatCap effect
* **Base Map Influence**
  * degree to which MatCap is affected by the Base Map color (Base Albedo);
  * calculated as: matCap \*= lerp(1, baseMapColor, baseMapInfluence)
* **Light Color Influence**
* degree to which MatCap is affected by light color
* calculated as: matCap \*= lerp(1, lightColor, lightColorInfluence)
* **Shadow Strength** — real-time shadow intensity applied to MatCap
* **Rotation Degrees** — allows 360° rotation of the MatCap to adjust orientation

## **Rim**

**Rim** is a Fresnel-based edge lighting effect.

![](https://content.gitbook.com/content/5TKI5zdwMx1bXFiVnBUe/blobs/Ov1Viszoy4BGuTususOC/Unknown%20image)

**Features**

* Supports HDR colors, which can be combined with Bloom to enhance edges
* Adjustable width and falloff for narrow or broad rim effects
* Directional control to convey the light’s orientation

![](https://content.gitbook.com/content/5TKI5zdwMx1bXFiVnBUe/blobs/lmha8JeleGaM3qKUlGOh/Unknown%20image)

## **Debug Colors**

![](https://content.gitbook.com/content/5TKI5zdwMx1bXFiVnBUe/blobs/l0JHw6mERnAfoXpRLmZp/Unknown%20image)

The **Debug Colors** feature visualizes specific values using color, facilitating development and debugging.

![](https://content.gitbook.com/content/5TKI5zdwMx1bXFiVnBUe/blobs/260zHa6mYWwGnn2VqmRW/Unknown%20image)

## **Enjoying this package?**

* Give it a quick rating or leave a short review on the Unity Asset Store.
* Your feedback helps us improve and add even more features!
* [Review on Unity Asset Store](https://assetstore.unity.com/packages/slug/328765)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://graphicscat.gitbook.io/graphicscat/documentation/litplus.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
