Check out our latest project ✨ OpenChapter.io: free ebooks the way its meant to be 📖

Low Resolution to Non-Pixel Upscaling

An asset by SourCandyLime
The page banner background of a mountain and forest
Low Resolution to Non-Pixel Upscaling hero image

Quick Information

0 ratings
Low Resolution to Non-Pixel Upscaling icon image
SourCandyLime
Low Resolution to Non-Pixel Upscaling

Tired of Pixels? Try Hexels and Trixels!

Supported Engine Version
4.1
Version String
v1.0.0
License Version
MIT
Support Level
community
Modified Date
2 months ago
Git URL
Issue URL

Pixelation Shaders for Godot 4

Transform your game into retro pixel-art style with hexagon or triangle pixels instead of traditional squares!

![Preview Image Here]

Features

  • 🔷 Hexel Shader - Hexagonal pixel rendering
  • 🔺 Trixel Shader - Triangular pixel rendering
  • 🎮 Ready-to-use templates - Drop in and start creating
  • Real-time rendering - Efficient shader-based approach
  • 🎨 Low-res aesthetic - Perfect for retro-style games

Installation

  1. Download and extract to res://addons/AlternatePixels/
  2. Enable the plugin in Project → Project Settings → Plugins
  3. Check the console for confirmation message

Quick Start

  1. Navigate to res://addons/AlternatePixels/templates/ in the FileSystem dock
  2. Drag HexelRoot.tscn or TrixelRoot.tscn into your scene
  3. Add your game content as a child of the SubViewport node
  4. Run your game!

Method 2: Manual Setup

If you want to add the shader to an existing scene:

  1. Copy the shader from Shaders/Hexel.gdshader or Shaders/Trixel.gdshader
  2. Apply to a TextureRect that displays your SubViewport texture
  3. Set the shader parameter src_tex to your SubViewport's texture

Usage

Viewport Resolution

Adjust the resolution property in the inspector to change the internal rendering resolution:

  • Hexel: Standard aspect ratios work fine (e.g., 320x180 for 16:9)
  • Trixel: Use 2:1 aspect ratio content (e.g., 320x90 for 16:9 display)

For Smooth Rendering (Triangle)

To avoid edge jittering with the triangle shader:

  • Snap horizontal movement to 2-pixel increments
  • Snap vertical movement to 1-pixel increments

Example in your character controller:

velocity.x = round(velocity.x / 2.0) * 2.0  # Snap to 2px
velocity.y = round(velocity.y)  # Snap to 1px

Adding Game Content

Your game content goes inside the SubViewport node:

HexelRoot (or TrixelRoot)
├─ SubViewport
│  └─ Screen  ← Add your content here
│     ├─ Player
│     ├─ TileMap
│     └─ etc...
└─ Control
   └─ Shader (shader applied automatically)

Technical Details

Hexel Shader

  • Uses axial coordinate system for perfect hexagon rounding
  • Flat-top hexagon orientation
  • Works with standard aspect ratios

Trixel Shader

  • Equilateral triangle tessellation
  • Alternating up/down triangle pattern
  • Important: Requires 2:1 aspect ratio game content
    • A 4x4 square in your game becomes a 2x4 rectangle in screen space
    • This displays as 4x4 equilateral triangles on screen

Aspect Ratio Guide

Hexel Shader

Display Ratio Viewport Resolution
16:9 320x180, 640x360
4:3 320x240, 640x480
21:9 420x180

Trixel Shader

Display Ratio Game Content Ratio Viewport Resolution
16:9 32:9 320x90, 640x180
4:3 8:3 320x120
21:9 42:9 420x90

Tips & Tricks

  • Performance: Lower viewport resolutions run faster
  • Art Style: Triangles give sharper diagonal lines than hexagons
  • Camera Movement: For smoothest results, consider pixel-snapped movement
  • UI: Place UI elements outside the SubViewport for crisp text

Troubleshooting

Q: The triangles look stretched!
A: Make sure your game content is authored at 2:1 aspect ratio

Q: Edges are jittery when I move!
A: Snap your camera/character movement to pixel increments (2px horizontal, 1px vertical for triangles)

Q: Input isn't working!
A: Make sure you haven't removed the RootHandler.gd script from the root node

Credits

Created by Taggert S. Allred Inspired by Hexagons are the Bestagons by CGPGray

License

MIT License © 2025 Taggert S. Allred

Free to use in your projects, both personal and commercial. See LICENSE.md for details.

Tired of Pixels? Try Hexels and Trixels!

Reviews

0 ratings

Your Rating

Headline must be at least 3 characters but not more than 50
Review must be at least 5 characters but not more than 500
Please sign in to add a review

Quick Information

0 ratings
Low Resolution to Non-Pixel Upscaling icon image
SourCandyLime
Low Resolution to Non-Pixel Upscaling

Tired of Pixels? Try Hexels and Trixels!

Supported Engine Version
4.1
Version String
v1.0.0
License Version
MIT
Support Level
community
Modified Date
2 months ago
Git URL
Issue URL

Open Source

Released under the AGPLv3 license

Plug and Play

Browse assets directly from Godot

Community Driven

Created by developers for developers