How to use Drips Psx Efx
Version 1.4
How to use Drips Psx Efx
How to install
DripsPsxEfx.blend
1. MainScene
2. Char
3. VertexLight
DripsPsxEfx Setup
1. Vertex Snapping
2. Affine Mapping
3. Culling
4. Vertex Light (Gouraud Shading)
5. Compositing
6. Fake Mist
General Tips
Geometry Nodes
Vertex Snapping - Camera Orthographic
Vertex Snapping - Camera Perspective
Vertex Snapping - World
Focal Length from FOV
Affine Mapping Constructor
Distance Culling
Frustum Culling - Camera Orthographic
Frustum Culling - Camera Perspective
Vertex Light - Ambient
Vertex Light - Directional
Vertex Light - Point
Vertex Light - Spot
Shader Nodes
Affine Mapping Coordinates
Vertex Lit
Pixelate Coordinates
Fake Mist
Posterize - Shader
Compositor Nodes
Dither - Post
Pixelate - Post
Pixelate and Fake Dither - Post
Posterize - Post
Scanlines
PC CRT
TV CRT
How to install
Please note:
Version 1.4 of DripsPsxEfx is compatible only with Blender 4.4 and up.
Version 1.3 of DripsPsxEfx is compatible only with Blender 4.2 and 4.3.
Version 1.2 of DripsPsxEfx is compatible only with Blender 4.1.
If you are using Blender 4.0 or any earlier versions, please make sure to use DripsPsxEfx 1.1.
- Go to Edit > Preferences, and under “File Paths” set up a new path to the directory that contains the “DripsPsxEfx.blend” and the “blender_assets.cats.txt”.

- Choose “Save Preferences” before closing the window.

- By opening the Asset Browser, the content is now available in all of your projects.

DripsPsxEfx.blend
The DripsPsx.blend file contains all the necessary components for working with the DripsPsxEfx effects. It serves as a comprehensive resource, showcasing the setup for various effects and providing concise documentation for each node in the corresponding node editor.
Use the outliner in the top right to select and activate the desired example scene:

MainScene
This scene demonstrates the fundamental setup for DripsPsxEfx. It features a static scene with a simple camera animation. To witness the retro effects in action, press play. For a deeper understanding, explore the Geometry Node Editor, Shader Editor, and Compositor.

Char
In this scene, you’ll find a character with an Armature Modifier and a straightforward animation. Pay attention to the order of modifiers: first, apply the Armature Modifier, and then the Geometry Nodes Modifier containing the DripsPsxEfx Nodes. This sequence ensures that the animation occurs before applying effects like vertex snapping.

VertexLight
This scene showcases the setup for gouraud shading (vertex light). Unlike standard shading, which calculates light for each pixel, gouraud shading computes light for each vertex and interpolates the results between neighboring vertices.

DripsPsxEfx Setup
Let's say we want to apply DripsPsxEfx on this basic scene:

Vertex Snapping
Open the Geometry Node Editor.
Add a new Geometry Node Modifier to the object. You can name the node tree. I’ve named it “PSX FX”.
To apply the effect to all objects in the scene:
Select all the objects. Lastly, select the object that holds the modifier.
Press “Ctrl + L” and choose “Copy Modifiers” to apply the modifier to all selected objects.

Open the Asset Browser.
Navigate to “DripsPsxEfx > Geometry Nodes”.
Depending on the camera type you are using, choose the corresponding vertex snapping node. For a perspective camera, use the “Vertex Snapping - Camera Perspective” Node.
Simply drag and drop it into the Geometry Node Editor.

Connect the vertex snapping node between the input and output nodes.
The node will automatically detect the active camera.

Copy the camera’s Resolution, Focal Length, and Sensor Width values into the node.
Obtain the Resolution from the Output Properties.

Retrieve the Focal Length and the Sensor Width from the camera’s Data Properties.

When everything is set up correctly, the object’s vertices will be snapped to the grid defined by the Vertex Snapping Node.
Toggle “Show Debug Grid” to visualize the grid in the viewport.

Affine Mapping
Open the Asset Browser and navigate to “DripsPsxEfx > Geometry Nodes.” Locate the “Affine Mapping Constructor” Node.
Drag this node into your geometry node tree and connect it after the Vertex Snapping Node.

Ensure that the “UV’s Name” matches the naming of your object’s UV Maps.

Open the Shader Node Editor. From “DripsPsxEfx > Shader Nodes”, add the “Affine Mapping Coordinates” Node to your shader node tree.
Use this newly added node for your texture’s coordinates.

Remember to follow these steps for all the materials in your scene that require the affine mapping effect.
Keep in mind that on objects with few vertices, the distortion might appear extreme, as seen on the ground plane.

This behavior is expected with affine mapping and can be mitigated by adding more geometry.

Culling
Use culling to disable objects or vertices outside the camera’s frustum or those that are far away.
Drag and drop the nodes from “DripsPsxEfx > Geometry Nodes” into your geometry node tree.

For Frustum Culling, don’t forget to copy the camera settings into the node (Resolution, Focal Length, and Sensor Width).

Vertex Light (Gouraud Shading)
Drag the “Vertex Lit” Shader from “DripsPsxEfx > Shader Nodes” into the shader node tree of each material.
Replace the existing Principled BSDF shader with the “Vertex Lit” shader.
This node captures light data that we’ll set up in the geometry node tree.

Drag a Vertex Light Node from “DripsPsxEfx > Geometry Nodes” into your geometry node tree.
It’s advisable to perform vertex lighting after vertex snapping.

To control the position and orientation of a light source, you have two options:
- Set it manually in the node.
- Use a reference object (e.g., an Empty) to control the point light’s position.

Compositing
Open the Compositor and toggle “Use Nodes” in the Compositor.
To observe real-time post-processing in the viewport, go to Viewport Shading settings and set the Compositor to “Camera” or “Always.”

Drag the desired effect from “DripsPsxEfx > Compositor Nodes” into the compositing node tree and connect it appropriately.
In this example, I’ve used the “Better Dither - Post” node.

Fake Mist
Drag the “Fake Mist” Node into the shader node tree of each material.
Connect it after the main shader (in this case, the “Vertex Lit” Shader).

Ensure the sky color matches the mist color.
Switch to the World Shader and adjust the color of the “Background” Node.

General Tips
- When rendering, it’s essential to employ a typical resolution and aspect ratio for the Playstation.
You can refer to the following source for guidance:

Source: Resolution - Emulation General Wiki (gametechwiki.com)
- It is recommended to use the Eevee render engine. While Cycles is also an option, achieving a LoFi (low-fidelity) appearance is easier with Eevee.

- To eliminate anti-aliasing, navigate to the Render Properties and set the Filter Size under the “Film” section to zero pixels.

- For basic color management, choose the “Standard” view transform under the Color Management settings in the Render Properties.

- Disable anti-aliasing in your textures by setting the filtering mode to “Closest” in the Image Texture node of your materials.

- When working with lights, opt for hard, low-resolution shadows or even no shadows at all.
- Since many effects from DripsPsxEfx depend on the camera, it might be convenient to always view your scene through the camera.
Align the view to the camera and toggle “Camera to View”.

Geometry Nodes
Vertex Snapping - Camera Orthographic

Use this node when using an orthographic camera.
Copy the settings for "Camera Resolution X", "Camera Resolution Y", "Camera Orthographic Scale" from your active camera into this node.
Inputs:
- Geometry
> Geometry input - Position
> Position data input - Camera Resolution X
> The x-resolution of the camera (should match the resolution set in the Output Properties) - Camera Resolution Y
> The y-resolution of the camera (should match the resolution set in the Output Properties) - Camera Orthographic Scale
> The camera’s orthographic scale (should match the “Orthographic Scale” in the camera’s Data Properties) - Show Debug Grid?
> Visualizes the grid used for vertex snapping - Grid Resolution X
> X-resolution of the vertex snapping grid - Grid Resolution Y
>Y-resolution of the vertex snapping grid - Snap Factor
> Strength of the vertex snapping - Use Custom Camera Object?
> If toggled off, the active camera will be used - Custom Camera Object
> Define a custom camera object, when not wanting to use the active camera
Outputs:
- Geometry
> Geometry output - Position
> Position data output
Vertex Snapping - Camera Perspective

Use this node when using a perspective camera.
Copy the settings for "Camera Resolution X", "Camera Resolution Y", "Camera Focal Length" and "Camera Sensor Width" from your active camera into this node.
Inputs:
- Geometry
> Geometry input - Position
> Position data input - Camera Resolution X
> The x-resolution of the camera (should match the resolution set in the Output Properties) - Camera Resolution Y
> The y-resolution of the camera (should match the resolution set in the Output Properties) - Camera Focal Length (mm)
> The camera’s focal length in millimeters (should match the “Focal Length” in the camera’s Data Properties) - Camera Sensor Width (mm)
> The camera’s sensor width in millimeters (should match the Sensor Size in the camera’s Data Properties) - Show Debug Grid?
> Visualizes the grid used for vertex snapping - Grid Resolution X
> X-resolution of the vertex snapping grid - Grid Resolution Y
>Y-resolution of the vertex snapping grid - Snap Factor
> Strength of the vertex snapping - Use Custom Camera Object?
> If toggled off, the active camera will be used - Custom Camera Object
> Define a custom camera object, when not wanting to use the active camera
Outputs:
- Geometry
> Geometry output - Position
> Position data output
Vertex Snapping - World

Snaps vertices to absolute world coordinates.
Inputs:
- Geometry
> Geometry input - Position
> Position data input - Increment
> Resolution of the snapping grid - Snap Factor
> Strength of the vertex snapping
Outputs:
- Geometry
> Geometry output - Position
> Position data output
Focal Length from FOV

Converts the field of view to focal length if the camera’s Lens Unit is set to “Field of View”.
Can be used in conjunction with the “Vertex Snapping - Camera Perspective” Node.
Inputs:
- Camera FOV
> The camera’s field of view (should match the “Field of View” in the camera’s Data Properties) - Camera Sensor Width (mm)
> The camera’s sensor width in millimeters (should match the Sensor Size in the camera’s Data Properties)
Outputs:
- Focal Length
> Focal length value (plug this into the “Vertex Snapping - Camera Perspective” Node)
Affine Mapping Constructor

Constructs texture coordinates for affine mapping.
Has to be used in conjunction with the “Affine Mapping Coordinates” shader node.
The object needs an UV map for this node to work.
Set "UV's Name" to the name of your object's UV map (found in Object Data Properties).
Inputs:
- Geometry
> Geometry input - UVs Name
> Name of the object’s UV Map (has to match the name of the UV Maps) - Use Custom Camera Object?
> If toggled off, the active camera will be used - Custom Camera Object
> Define a custom camera object, when not wanting to use the active camera
Outputs:
- Geometry
> Geometry output
Distance Culling

Disables Vertices or Objects based on the distance to the camera.
Inputs:
- Geometry
> Geometry input - Mode
> Choose between “Vertex Mode” and “Object Mode” - Render Distance
> Distance to camera when vertices or objects disappear - Use Custom Camera Object?
> If toggled off, the active camera will be used - Custom Camera Object
> Define a custom camera object, when not wanting to use the active camera
Outputs:
- Geometry
> Geometry output - Mask
> Boolean mask (“True” if object or vertex is culled)
Frustum Culling - Camera Orthographic

Disables vertices or objects if they fall out of the camera’s frustum.
Inputs:
- Geometry
> Geometry input - Mode
> Choose between “Vertex Mode” and “Object Mode” - Camera Resolution X
> The x-resolution of the camera (should match the resolution set in the Output Properties) - Camera Resolution Y
> The y-resolution of the camera (should match the resolution set in the Output Properties) - Camera Orthographic Scale
> The camera’s orthographic scale (should match the “Orthographic Scale” in the camera’s Data Properties) - Tolerance
> Can be used to extend the frustum area - No Culling Near Camera
> Disables culling near the camera - Near Distance
> Adjust the culling distance if “No Culling Near Camera” is toggled on - Use Custom Camera Object?
> If toggled off, the active camera will be used - Custom Camera Object
> Define a custom camera object, when not wanting to use the active camera
Outputs:
- Geometry
> Geometry output - Mask
> Boolean mask (“True” if object or vertex is culled)
Frustum Culling - Camera Perspective

Disables vertices or objects if they fall out of the camera’s frustum.
Inputs:
- Geometry
> Geometry input - Mode
> Choose between “Vertex Mode” and “Object Mode” - Camera Resolution X
> The x-resolution of the camera (should match the resolution set in the Output Properties) - Camera Resolution Y
> The y-resolution of the camera (should match the resolution set in the Output Properties) - Camera Focal Length (mm)
> The camera’s focal length in millimeters (should match the “Focal Length” in the camera’s Data Properties) - Camera Sensor Width (mm)
> The camera’s sensor width in millimeters (should match the Sensor Size in the camera’s Data Properties) - Tolerance
> Can be used to extend the frustum area - No Culling Near Camera
> Disables culling near the camera - Near Distance
> Adjust the culling distance if “No Culling Near Camera” is toggled on - Use Custom Camera Object?
> If toggled off, the active camera will be used - Custom Camera Object
> Define a custom camera object, when not wanting to use the active camera
Outputs:
- Geometry
> Geometry output - Mask
> Boolean mask (“True” if object or vertex is culled)
Vertex Light - Ambient

Lights the object evenly.
Has to be used in conjunction with the “Vertex Lit” shader node.
Inputs:
- Geometry
> Geometry input - Color
> Light Color - Intensity
> Light intensity
Outputs:
- Geometry
> Geometry output
Vertex Light - Directional

Global, directional light.
Has to be used in conjunction with the “Vertex Lit” shader node.
Inputs:
- Geometry
> Geometry input - Use Reference Object?
> Use an object to control the light’s position and rotation - Light Object
> Reference light object that is used when “Use Reference Object?” is toggled on - Manual Position
> Position of the light source (not really relevant for directional lights, but can be used to place the light gizmo in a convenient location) - Manual Rotation
> Direction of the light source - Color
> Light color - Intensity
> Light Intensity - Diffuse Intensity
> Diffuse shading intensity - Specular Intensity
> Specular shading intensity - Specular Roughness
> Material roughness for specular highlight - Show Gizmo?
> Toggles a gizmo object to visualize the light position and rotation. Only visible in the viewport. - Use Custom Camera Object?
> If toggled off, the active camera will be used - Custom Camera Object
> Define a custom camera object, when not wanting to use the active camera
Outputs:
- Geometry
> Geometry output
Vertex Light - Point

Point light.
Has to be used in conjunction with the “Vertex Lit” shader node.
Inputs:
- Geometry
> Geometry input - Use Reference Object?
> Use an object to control the light’s position - Light Object
> Reference light object that is used when “Use Reference Object?” is toggled on - Manual Position
> Position of the light source - Color
> Light color - Intensity
> Light Intensity - Radius
> Point light radius - Diffuse Intensity
> Diffuse shading intensity - Specular Intensity
> Specular shading intensity - Specular Roughness
> Material roughness for specular highlight - Show Gizmo?
> Toggles a gizmo object to visualize the light position and radius. Only visible in the viewport. - Use Custom Camera Object?
> If toggled off, the active camera will be used - Custom Camera Object
> Define a custom camera object, when not wanting to use the active camera
Outputs:
- Geometry
> Geometry output
Vertex Light - Spot

Spotlight.
Has to be used in conjunction with the “Vertex Lit” shader node.
Inputs:
- Geometry
> Geometry input - Use Reference Object?
> Use an object to control the light’s position and rotation - Light Object
> Reference light object that is used when “Use Reference Object?” is toggled on - Manual Position
> Position of the light source - Manual Rotation
> Direction of the light source - Color
> Light color - Intensity
> Light Intensity - Radius
> Spot light radius / angle - Length
> Length of the light cone - Softness
> Softness of the spotlight - Diffuse Intensity
> Diffuse shading intensity - Specular Intensity
> Specular shading intensity - Specular Roughness
> Material roughness for specular highlight - Show Gizmo?
> Toggles a gizmo object to visualize the light position, rotation, radius, length and softness. Only visible in the viewport. - Use Custom Camera Object?
> If toggled off, the active camera will be used - Custom Camera Object
> Define a custom camera object, when not wanting to use the active camera
Outputs:
- Geometry
> Geometry output
Shader Nodes
Affine Mapping Coordinates

Affine mapping texture coordinates.
Has to be used in conjunction with the “Affine Mapping Constructor” geometry node.
Output:
- Vector
> Affine mapping UV coordinates
Vertex Lit

Vertex light shader.
Has to be used in conjunction with the vertex light geometry nodes.
Inputs:
- Color
> Color input - Alpha
> Alpha input
Outputs:
Pixelate Coordinates

Manipulates UV coordinates to let textures appear in low resolution and pixelated.
Inputs:
- Vector
> UV coordinate input - Resolution
> Resolution of the pixelated UV’s
Outputs:
- Vector
> UV coordinate output
Fake Mist

Cheap, shader based mist / fog effect.
Has to be used after your shader node.
Inputs:
- Shader
> Shader input - Color
> Mist color - Start Distance
> Distance to the camera from where the mist / fog starts - End Distance
> Distance to the camera where the mist / fog ends - Alpha
> Alpha mask input. Defines transparent areas of the output material
Outputs:
Posterize - Shader

Reduces the color depth of the input.
Inputs:
- Color
> Color input - Color Depth
> Color depth
Outputs:
Compositor Nodes
Dither - Post

Combines pixelation, posterization and dithering.
Inputs:
- Image
> Image input - Pixel Size
> Pixel Size - Color Depth
> Color depth - Edge
> Shifts the area where the dithering happens between 2 color values. Defines the width of the dither area. - Dither Type
> Choose between 4 different dither types: 2x2 bayer, 4x4 bayer, 8x8 bayer, 16x16 bayer - Dither Randomize
> Randomizes the dither pattern - Dither Threshold
> Threshold value for the dithering - Filter Type
> Filter type used for pixelation (0=Nearest, 1=Bilinear, 2=Bicubic) - Sample Area
> Relative sample area for pixelation
Outputs:
Pixelate - Post

Pixel effect.
Inputs:
- Image
> Image input - Pixel Size
> Pixel Size - Filter Type
> Filter type used for pixelation (0=Nearest, 1=Bilinear, 2=Bicubic) - Sample Area
> Relative sample area for pixelation
Outputs:
Pixelate and Fake Dither - Post

Pixel effect and dither overlay.
Inputs:
- Image
> Image input - Pixel Size
> Pixel Size - Blend Dither
> Dither intensity
Outputs:
Posterize - Post

Color depth reduction.
Inputs:
- Image
> Image input - Color Depth
> Color depth
Outputs:
Scanlines

Scanline effect.
Works best with a large pixel size.
Inputs:
- Image
> Image input - Image Width
> Image width in pixels - Image Height
> Image height in pixels - Mix Factor
> Intensity of the scanlines - Pattern Scale
> Scale of the scanlines - Brightness
> Brightness adjustment (default is 2) - Sample Area
> Relative sample area for pixelation - Blurriness
> Image blurriness - Screen Distort
> Screen distortion - Screen Dispersion
> Dispersion effect
> Color depth
Outputs:
PC CRT

PC CRT effect.
Inputs:
- Image
> Image input - Image Width
> Image width in pixels - Image Height
> Image height in pixels - Mix Factor
> Intensity of the CRT pattern - Pattern Scale
> Scale of the CRT pattern - Grid Shape
> Shape/softness of the CRT pattern - Grid Blend
> Strength of the CRT pattern - Brightness
> Brightness adjustment (default is 3) - Sample Area
> Relative sample area for pixelation - Blurriness
> Image blurriness - Screen Distort
> Screen distortion - Screen Dispersion
> Dispersion effect
Outputs:
TV CRT

TV CRT effect.
Inputs:
- Image
> Image input - Image Width
> Image width in pixels - Image Height
> Image height in pixels - Mix Factor
> Intensity of the CRT pattern - Pattern Scale
> Scale of the CRT pattern - Pattern Scale X
> Width of the CRT pattern - Pattern Offset
> Offsets the CRT pattern every second row - Brightness
> Brightness adjustment (default is 3) - Sample Area
> Relative sample area for pixelation - Blurriness
> Image blurriness - Screen Distort
> Screen distortion - Screen Dispersion
> Dispersion effect
Outputs: