Skip to content

Instantly share code, notes, and snippets.

@partybusiness
partybusiness / CircleBlur.shader
Last active January 8, 2023 19:16
VHS style camera
Shader "Unlit/CircleBlur"
{
Properties
{
_MainTex ("Texture", 2D) = "white" {}
_Radius ("Radius", float) = 0.8
}
SubShader
{
@partybusiness
partybusiness / TwoPassStencilShader.shader
Last active April 23, 2023 03:20
Testing stencil to prove the order that passes are rendered
Shader "Unlit/TwoPassStencilShader"
{
Properties
{
_Color1("Colour1", Color) = (1,0,0,1)
_Color2("Colour2", Color) = (0,0,1,1)
}
SubShader
{
Tags{
Shader "Unlit/ScreenSpaceGradient"
{
Properties
{
_TopColour("Top Colour", Color) = (0.5,0.5,0.5,1)
_BottomColour("Bottom Colour", Color) = (0.5,0.5,0.5,1)
_Height("Height", float) = 0.0
}
SubShader
{
@partybusiness
partybusiness / random_wang_tiles.gdshader
Created April 2, 2024 21:46
Godot Wang Tile Shaders
shader_type spatial;
render_mode blend_mix, depth_draw_opaque, cull_back, diffuse_lambert, specular_schlick_ggx;
uniform sampler2D Tile_Texture:source_color;
//used for random values on tile
vec2 random(float x, float y) {
vec2 co = round(vec2(x,y));
return vec2(
shader_type particles;
void start() {
if (RESTART_POSITION) {
TRANSFORM[3].xyz = EMISSION_TRANSFORM[3].xyz; //sets to emitter position
float _time = TIME * 200.0;
VELOCITY = vec3(1.*cos(_time),0.,1.*sin(_time)); //sets angle based on time
}
}
@partybusiness
partybusiness / BitmapToArray.gd
Last active May 5, 2024 17:11
Godot shader that treats an array of integers as a tilemap and Godot editor scripts to work with those arrays
@tool
extends EditorScript
class_name BitmapToArray
# this is using a tile map available here:
# https://hexany-ives.itch.io/hexanys-roguelike-tiles
const sourceImage:String = "res://arraydemo/monochrome_16x16.png" #image we get tiles from
const width:int = 32 # how many tiles wide is the source image
const height:int = 32 # how many tiles tall is the source image
@partybusiness
partybusiness / ComputerScreen.gdshader
Last active May 18, 2024 15:34
Displays tile sheet of characters as tiles stored in a byte array.
shader_type spatial;
//render_mode unshaded;
uniform uint tilemap[1024]; // up to 128 8-byte 8x8 tiles
uniform uint screen[1000];// 40 x 25 screen map, 7 bits index one of the 128 tiles, highest bit inverts
uniform uint screenWidth = 40;
uniform uint screenHeight = 25;
@partybusiness
partybusiness / GameOfLife.gd
Last active May 17, 2024 19:46
Conway's Game of Life implemented as a compute shader in Godot
extends Node
@export var display_material:Material
@export var game_state:PackedByteArray
const width:int = 64
const height:int = 64
var rd := RenderingServer.create_local_rendering_device()