Convert Figma logo to code with AI

keijiro logoKino

A collection of custom post processing effects for Unity

2,081
149
2,081
3

Top Related Projects

Post Processing Stack

Unity Graphics - Including Scriptable Render Pipeline

Unity Post Processing Stack Library | Unity引擎的高品质后处理库

A bunch of custom passes made for HDRP

Quick Overview

Kino is a collection of custom post-processing effects for Unity's Universal Render Pipeline (URP). It provides a set of high-quality visual effects that can be easily integrated into Unity projects to enhance the overall look and feel of games and applications.

Pros

  • Easy integration with Unity's Universal Render Pipeline
  • High-quality visual effects that can significantly improve the aesthetics of a project
  • Customizable and extensible, allowing developers to tweak effects to their needs
  • Regular updates and maintenance from the developer

Cons

  • Limited to projects using Unity's Universal Render Pipeline
  • May have performance impact on lower-end devices
  • Learning curve for developers unfamiliar with post-processing effects
  • Some effects may require additional setup or configuration

Code Examples

  1. Adding a glitch effect:
using Kino;

public class GlitchEffectExample : MonoBehaviour
{
    private Glitch _glitchEffect;

    void Start()
    {
        _glitchEffect = GetComponent<Glitch>();
        _glitchEffect.intensity = 0.5f;
    }
}
  1. Applying a color grading effect:
using Kino;

public class ColorGradingExample : MonoBehaviour
{
    private ColorGrading _colorGrading;

    void Start()
    {
        _colorGrading = GetComponent<ColorGrading>();
        _colorGrading.temperature = 10f;
        _colorGrading.tint = -5f;
    }
}
  1. Using the motion blur effect:
using Kino;

public class MotionBlurExample : MonoBehaviour
{
    private MotionBlur _motionBlur;

    void Start()
    {
        _motionBlur = GetComponent<MotionBlur>();
        _motionBlur.shutterAngle = 270f;
        _motionBlur.sampleCount = 10;
    }
}

Getting Started

  1. Install Unity and set up a project using the Universal Render Pipeline.
  2. Clone or download the Kino repository from GitHub.
  3. Copy the Kino folder into your Unity project's Assets folder.
  4. In your Unity project, select the main camera and add the desired Kino effect components.
  5. Adjust the parameters of the added effects in the Inspector window to achieve the desired visual result.
  6. If you want to control the effects via script, use the code examples provided above as a starting point.

Competitor Comparisons

Post Processing Stack

Pros of PostProcessing

  • Official Unity package, ensuring long-term support and compatibility
  • Comprehensive set of post-processing effects out-of-the-box
  • Integrated with Unity's Universal Render Pipeline (URP) and High Definition Render Pipeline (HDRP)

Cons of PostProcessing

  • Heavier performance impact due to more complex effects
  • Steeper learning curve for beginners
  • Less flexibility for custom effect implementation

Code Comparison

Kino:

[SerializeField] Texture2D _gradient = null;
[SerializeField, Range(0, 1)] float _intensity = 0.5f;

void OnRenderImage(RenderTexture source, RenderTexture destination)
{
    Graphics.Blit(source, destination, _material);
}

PostProcessing:

[Serializable]
public sealed class ColorGradingSettings
{
    public GradingMode gradingMode = GradingMode.LowDefinitionRange;
    public ColorGradingLutProfile lutProfile;
    [Range(0f, 1f)] public float intensity = 1f;
}

The code snippets demonstrate the difference in approach between Kino's lightweight, customizable effects and PostProcessing's more comprehensive, structured system. Kino uses a simple OnRenderImage method for effect application, while PostProcessing employs a more complex settings structure for its effects.

Unity Graphics - Including Scriptable Render Pipeline

Pros of Graphics

  • Official Unity repository, ensuring compatibility and long-term support
  • Comprehensive coverage of Unity's rendering pipeline and graphics features
  • Extensive documentation and community support

Cons of Graphics

  • Larger codebase, potentially more complex for beginners
  • Slower iteration and update cycle due to its scale and official nature

Code Comparison

Kino (Post-processing effect):

[RequireComponent(typeof(Camera))]
public class Bloom : MonoBehaviour
{
    public float threshold = 1;
    public float intensity = 1;
    public int iterations = 4;
}

Graphics (Shader Graph node):

[Title("Artistic", "Adjustment")]
class ContrastNode : CodeFunctionNode
{
    public ContrastNode()
    {
        name = "Contrast";
    }
    protected override MethodInfo GetFunctionToConvert()
    {
        return GetType().GetMethod("Unity_Contrast", BindingFlags.Static | BindingFlags.NonPublic);
    }
}

Kino focuses on simple, self-contained post-processing effects, while Graphics provides a more comprehensive set of tools for Unity's rendering pipeline. Kino's code is often more concise and easier to understand, making it ideal for quick prototyping and learning. Graphics, being the official repository, offers a wider range of features and integrates more deeply with Unity's systems, but may require more time to navigate and implement.

Unity Post Processing Stack Library | Unity引擎的高品质后处理库

Pros of X-PostProcessing-Library

  • Offers a wider range of post-processing effects
  • Provides more customization options for each effect
  • Includes detailed documentation and examples

Cons of X-PostProcessing-Library

  • May have a steeper learning curve due to its extensive feature set
  • Potentially higher performance overhead for complex effects
  • Less frequent updates compared to Kino

Code Comparison

X-PostProcessing-Library:

[VolumeComponentMenu(VolumeDefine.Environment + "Screen Space Reflection")]
public class ScreenSpaceReflection : VolumeSetting
{
    public ClampedFloatParameter intensity = new ClampedFloatParameter(0f, 0f, 1f);
    public ClampedFloatParameter reflectionMultiplier = new ClampedFloatParameter(1f, 0f, 1f);
    public ClampedIntParameter maxIterations = new ClampedIntParameter(16, 1, 256);
}

Kino:

[System.Serializable]
public sealed class BloomSettings
{
    public float threshold = 0.8f;
    public float intensity = 1;
    public float softKnee = 0.5f;
    public float radius = 2.5f;
    public bool antiFlicker = false;
}

Both libraries provide post-processing effects for Unity, but X-PostProcessing-Library offers a more extensive set of features and customization options. Kino, on the other hand, focuses on simplicity and ease of use. The code comparison shows that X-PostProcessing-Library uses Unity's Volume system, while Kino uses a more straightforward approach with serializable classes.

A bunch of custom passes made for HDRP

Pros of HDRP-Custom-Passes

  • Specifically designed for Unity's High Definition Render Pipeline (HDRP)
  • Offers a wider range of post-processing effects tailored for high-fidelity graphics
  • Provides more flexibility in customizing render passes within the HDRP framework

Cons of HDRP-Custom-Passes

  • Limited to HDRP projects, not compatible with other render pipelines
  • May have a steeper learning curve due to HDRP-specific concepts
  • Potentially higher performance overhead compared to Kino's lightweight approach

Code Comparison

HDRP-Custom-Passes:

[System.Serializable, VolumeComponentMenu("Post-processing/Custom/MyEffect")]
public sealed class MyEffect : CustomPostProcess
{
    public override CustomPostProcessInjectionPoint injectionPoint => CustomPostProcessInjectionPoint.AfterPostProcess;
    public override void Setup() { /* ... */ }
    public override void Render(CommandBuffer cmd, HDCamera camera, RTHandle source, RTHandle destination) { /* ... */ }
}

Kino:

public class MyEffect : MonoBehaviour
{
    void OnRenderImage(RenderTexture source, RenderTexture destination)
    {
        // Apply post-processing effect
    }
}

The code comparison shows that HDRP-Custom-Passes uses a more structured approach with custom post-process injection points, while Kino utilizes Unity's built-in OnRenderImage method for simpler implementation.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

Kino

Kino is a collection of custom post-processing effects for Unity's High Definition Render Pipeline (HDRP).

System Requirements

  • Unity 2019.3
  • HDRP 7.1

Effects

Streak

screenshot

Streak adds horizontally stretched bloom that roughly resembles anamorphic lens flares. Although it's neither physically correct nor energy conserving, it's handy to emphasize shininess of the scene in just a few clicks.

Recolor

screenshot

Recolor is a kind of false color effect that replaces image colors by mapping luminance to a given gradient. It also supports edge detection effect to add contour lines to the images.

Overlay

Overlay simply adds a color gradient to the final output of the post process. It's handy to widen the color spectrum of the output in a nearly subliminal level.

Glitch

gif gif

Glitch is a collection of simple video glitch effects.

  • Block (block noise effect)
  • Drift (color drift effect)
  • Jitter (scan line jitter effect)
  • Jump (vertical jump effect)
  • Shake (horizontal shake effect)

Sharpen

A simple sharpen filter that is similar to ones used in paint software.

Utility

A multi-purpose filter that provides several small effects in a single pass.

  • Hue shift
  • Invert
  • Fade (fade to color)

Slice

Slice

Slice and slide effect.

Test Card

Test Card

A simple test card pattern generator.

How To Install

The Kino package uses the scoped registry feature to import dependent packages. Please add the following sections to the package manifest file (Packages/manifest.json).

To the scopedRegistries section:

{
  "name": "Keijiro",
  "url": "https://registry.npmjs.com",
  "scopes": [ "jp.keijiro" ]
}

To the dependencies section:

"jp.keijiro.kino.post-processing": "2.1.15"

After changes, the manifest file should look like below:

{
  "scopedRegistries": [
    {
      "name": "Keijiro",
      "url": "https://registry.npmjs.com",
      "scopes": [ "jp.keijiro" ]
    }
  ],
  "dependencies": {
    "jp.keijiro.kino.post-processing": "2.1.15",
    ...

Frequently Asked Questions

Nothing happens when I add effects to a volume

Check the Default HDRP Settings in the Project Settings. You have to define custom post processing orders to make them take effect in the pipeline.

HDRP settings

License

Unlicense