Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

New Feature: NTSC Volume #22

Open
wants to merge 23 commits into
base: master
Choose a base branch
from
Open

Conversation

PixelDough
Copy link
Collaborator

@PixelDough PixelDough commented Oct 20, 2021

Produces a filtered image that resembles the output of an old television using Quadrature Amplatude Modulation. Use this as an alternative to the Cathode Ray Tube volume to achieve a different but distinct retro look.

  • Enabled: Controls whether the NTSC effect is active, which creates color bleeding and a natural blurriness.
    IMPORTANT: This effect is not compatible with the Cathode Ray Tube Volume, and using them together can yield strange results.
  • Horizontal Carrier Frequency: The carrier wave is driven by a very fast oscillator at a fixed frequency. Since the beam is travelling, the phase of the carrier is linear both in time but also in horizontal distance over a scanline. This value determines the frequency of the wave of the horizontal carrier. Ideally, this should be set to a value which makes the scanlines as hidden as possible. Doing it this way will create a "rainbowing" effect along edges, directly related to the scanline frequency produced by this value.
  • Kernel Radius: Controls how many steps the Gaussian blur should take (default 3).
  • Kernel Width Ratio: Controls the scale of the horizontal blur. To achieve the intended effect, this should be used to blur out the vertical lines produced by the Horizontal Carrier Frequency parameter.
  • Sharpen: How much to apply sharpening after blurring.
    Line Phase Shift: Offsets the wave produced by the Horizontal Carrier Frequency. In most cases this value is unnoticable, and is best left at the default of 3.14.
  • Flicker Percent: Represents how fast the flicker effect animates relative to the current FPS.
  • Flicker Scale X: How much to scale the flicker effect horizontally (default 0.1).
  • Flicker Scale Y: How much to scale the flicker effect vertically (default 4).
  • Use Time Scale: Setting this to true will cause the flicker effect to be effected by Time.timeScale.

Special thanks to Cancrizans/Bad_Vertex for helping me figure out how to achieve this effect.
https://cancrizans.itch.io/
https://twitter.com/BadVertexDev

BeforeAfterNTSC1
BeforeAfterNTSC2
NTSCVolume2
NTSCVolume3
NTSCVolume4
NTSCVolume5

Runtime/RenderPipeline/PSXRenderPipeline.cs Outdated Show resolved Hide resolved
Runtime/RenderPipeline/PSXRenderPipeline.cs Outdated Show resolved Hide resolved
Runtime/Volume/NTSCVolume.cs Outdated Show resolved Hide resolved
Runtime/Volume/PrecisionVolume.cs Outdated Show resolved Hide resolved
Runtime/Material/PSXLit/PSXLitPass.hlsl Outdated Show resolved Hide resolved
Runtime/PostProcessing/Shaders/CRT.shader Outdated Show resolved Hide resolved
Runtime/PostProcessing/Shaders/CRT.shader Outdated Show resolved Hide resolved
Runtime/PostProcessing/Shaders/CRT.shader Outdated Show resolved Hide resolved
Runtime/PostProcessing/Shaders/CRT.shader Outdated Show resolved Hide resolved
Runtime/PostProcessing/Shaders/CRT.shader Outdated Show resolved Hide resolved
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants