All Projects → svofski → Crt

svofski / Crt

Software composite PAL modulation/demodulation experiments

Labels

Projects that are alternatives of or similar to Crt

Glsl Pathtracer
A GLSL Path Tracer
Stars: ✭ 634 (+7825%)
Mutual labels:  glsl
Glsl Scale Log
A logarithmic scale for glslify
Stars: ✭ 5 (-37.5%)
Mutual labels:  glsl
Nau
Nau - OpenGL + Optix 3D Engine
Stars: ✭ 18 (+125%)
Mutual labels:  glsl
Polygon Shredder
The polygon shredder that takes many cubes and turns them into confetti
Stars: ✭ 686 (+8475%)
Mutual labels:  glsl
Imguicolortextedit
Colorizing text editor for ImGui
Stars: ✭ 772 (+9550%)
Mutual labels:  glsl
Bonzomatic
Live shader coding tool and Shader Showdown workhorse
Stars: ✭ 829 (+10262.5%)
Mutual labels:  glsl
Slang
Making it easier to work with shaders
Stars: ✭ 627 (+7737.5%)
Mutual labels:  glsl
Wagner
Effects composer for three.js
Stars: ✭ 930 (+11525%)
Mutual labels:  glsl
Renderpipeline
Physically Based Shading and Deferred Rendering for the Panda3D game engine
Stars: ✭ 814 (+10075%)
Mutual labels:  glsl
Maples Retro Extravaganza
minecraft shader pack to emulate retro console graphics
Stars: ✭ 17 (+112.5%)
Mutual labels:  glsl
Shaderman
Convert ShaderToy to Unity HLSL/CG
Stars: ✭ 734 (+9075%)
Mutual labels:  glsl
Superpowers Asset Packs
CC0-licensed asset packs for your games
Stars: ✭ 766 (+9475%)
Mutual labels:  glsl
Regl Fire
Fire particle system made with regl
Stars: ✭ 16 (+100%)
Mutual labels:  glsl
Imogen
GPU Texture Generator
Stars: ✭ 648 (+8000%)
Mutual labels:  glsl
Jitter Glsl Shaders
Custom GLSL Shaders for Max/MSP/Jitter
Stars: ✭ 19 (+137.5%)
Mutual labels:  glsl
Glsl Blend
glsl photoshop blending modes. glslify formatted.
Stars: ✭ 633 (+7812.5%)
Mutual labels:  glsl
Postprocess Glsl
Stars: ✭ 6 (-25%)
Mutual labels:  glsl
Unity Xyz
C# lightweight tile viewer
Stars: ✭ 25 (+212.5%)
Mutual labels:  glsl
Fieldplay
A vector field explorer
Stars: ✭ 922 (+11425%)
Mutual labels:  glsl
Leaf3d
A lightweight 3D rendering engine based on modern OpenGL
Stars: ✭ 16 (+100%)
Mutual labels:  glsl

Software composite video modulation/demodulation experiments

The idea is to reproduce in GLSL shaders realistic composite-like artifacting by applying PAL modulation and demodulation. Digital texture, passed through the model of an analog channel, should suffer same effects as its analog counterpart and exhibit properties, such as dot crawl and colour bleeding, that may be desirable for faithful reproduction of look and feel of old computer games.

The project contains 2 main parts: purely software simulation, and GLSL shader implementation. The GLSL part consists of a Python host which can be used to experiment with fragment shaders in general, and the shaders themselves.

Shaders

Currently there are 3 different implementations of composite shader that aim to reproduce the same model.

mpass

3-stage processing:

  1. modulate source RGB signal to B&W image
  2. demodulate U and V, pass (Modulated, U, V) in (R,G,B) channels
  3. lowpass filter UV at baseband, remodulate again and subtract from Modulated to recover Luma. Convert back to RGB

oversampling

SDLMESS uses very small textures for multipass shading, which makes them not very practical for purposes of storing intermediate values. This method is an attempt to pack 2x more intermediate values in unused texture channels. It differs from mpass in that it passes U,V,U,V in (RGBA), thus packing 2x more bandwidth in same amount of pixels.

singlepass

I was afraid that this method would be very slow because a lot of things are calculated over and over again for the purpose of filtering. But it seems to be doing fine even on slower GPUs. This is the best method. Because it has no intermediate passes, it takes colour signal samples at 4x colour subcarrier frequency regardless of source texture resolution.

Requirements:

  • Software-only model: Python 2.7, PyPNG
  • GLSL model: Python 2.7, PyGame, PyOpenGL

SDLMESS/SDLMAME compatibility

This toy is designed with SDLMESS compatibility in mind, so shaders designed with it can be used with SDLMESS almost without modifications.

Acknowledgements

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].