Skip to content

Instantly share code, notes, and snippets.

@rorydriscoll
rorydriscoll / FullScreenQuad.hlsl
Created December 19, 2011 05:52
A vertex shader that uses the vertex ID to generate a full-screen quad. Don't bind vertex buffer, index buffer or input layout. Just render three vertices!
struct Output
{
float4 position_cs : SV_POSITION;
float2 texcoord : TEXCOORD;
};
Output main(uint id: SV_VertexID)
{
Output output;
@rorydriscoll
rorydriscoll / gist:be1375a63999a272524a
Last active August 30, 2021 07:16
2D Perlin noise with derivatives
static const int permutations[256] =
{
249, 69, 172, 0, 116, 3, 219, 221,
224, 5, 6, 145, 128, 131, 97, 108,
133, 14, 165, 45, 166, 127, 114, 111,
119, 20, 34, 4, 103, 67, 48, 158,
85, 143, 181, 238, 217, 173, 78, 139,
179, 77, 191, 89, 251, 150, 183, 8,
168, 225, 23, 65, 55, 247, 136, 104,
117, 193, 174, 106, 122, 199, 243, 211,
//Maya ASCII 2022 scene
//Name: Test.ma
//Last modified: Wed, Jun 23, 2021 09:24:13 AM
//Codeset: 1252
requires maya "2022";
requires "stereoCamera" "10.0";
currentUnit -l centimeter -a degree -t film;
fileInfo "application" "maya";
fileInfo "product" "Maya 2022";
fileInfo "version" "2022";
@rorydriscoll
rorydriscoll / lua.sublime-build
Created February 17, 2012 18:03
Sublime Text build system for Lua
{
"cmd": ["lua", "$file"],
"file_regex": "^lua: (...*?):([0-9]*):?([0-9]*)",
"selector": "source.lua"
}
@rorydriscoll
rorydriscoll / Generator.cpp
Last active December 14, 2016 21:18
Wave Function Collapse propagation
struct Block
{
__forceinline void Clear()
{
vector[0] = vector[1] = _mm_setzero_si128();
}
__forceinline void Fill()
{
vector[0] = vector[1] = _mm_set_epi64x(0xffffffffffffffff, 0xffffffffffffffff);
@rorydriscoll
rorydriscoll / Shader.glsl
Created November 26, 2011 00:14
Shader experiment
// bind gloss {label:"Gloss", default:0.5, max:1, step:0.01}
// bind cdiff {label:"Diffuse Colour", r:0.6, g:0.0, b:0.0}
// bind cspec {label:"Specular Colour", r:0.3, g:0.3, b:0.3}
// bind lightstrength {label:"Light Strength", default:3, max:100, step:0.1}
// bind envtop {label:"Environment Top", r:0.0, g:0.2, b:0.4}
// bind envmiddle {label:"Environment Middle", r:0.2, g:0.2, b:0.2}
// bind envbottom {label:"Environment Bottom", r:0.01, g:0.1, b:0.01}
// bind refractiveindex {label:"Refracive Index", default:1.5, max:3, step:0.1}
// bind normalmap {label:"Normal Map", default:false}
// bind diffuse {label:"Diffuse", default:true}
@rorydriscoll
rorydriscoll / VS.sublime-build
Created July 10, 2012 18:29
Sublime Text Visual Studio
{
"cmd": ["C:\\Program Files (x86)\\Microsoft Visual Studio 8\\Common7\\IDE\\devenv.com", "C:\\Users\\rdriscoll\\Desktop\\Foo\\Foo.sln", "/Build"]
}
template<unsigned int N, unsigned int I>
struct FnvHash
{
__forceinline static uint32 Hash(const char (&text)[N])
{
return (FnvHash<N, I - 1>::Hash(text) ^ text[I - 1]) * 16777619u;
}
};
template<unsigned int N>
@rorydriscoll
rorydriscoll / Lua.JSON-tmLanguage
Created February 24, 2012 07:02
Lua Grammar for Sublime Text 2. All you need is Lua.tmLanguage (i.e. You don't need the JSON file). Copy Lua.tmLanguage over your existing version and restart Sublime Text.
{
"name": "Lua",
"scopeName": "source.lua",
"fileTypes": [
"lua"
],
"repository": {
"general": {
"patterns": [
{
@rorydriscoll
rorydriscoll / ParseLua.py
Created February 17, 2012 17:48
Sublime Text 2 plugin to parse lua on the fly
import sublime
import sublime_plugin
import re
from subprocess import Popen, PIPE
class ExampleCommand(sublime_plugin.EventListener):
TIMEOUT_MS = 200
def __init__(self):