Skip to content

Instantly share code, notes, and snippets.

View Erkaman's full-sized avatar

Eric Arnebäck Erkaman

View GitHub Profile
@Erkaman
Erkaman / create_grass_atlas.py
Created July 1, 2016 19:01
Python script that creates a simple Minecraft grass atlas.
# this python script simply creates a simple grass atlas image.
# the atlas is used in this small minecraft renderer:
# https://github.com/mikolalysenko/regl/pull/21
import png
import os
import noise
# open file
/*
<p>Metaball rendering demo. Many ideas and code taken from <a href="https://www.clicktorelease.com/code/bumpy-metaballs">here</a></p>
*/
const regl = require('../regl')()
const isosurface = require('isosurface')
const normals = require('angle-normals')
const mat3 = require('gl-mat3')
const camera = require('./util/camera')(regl, {
distance: 1,
@Erkaman
Erkaman / viewmesh.cpp
Created December 18, 2016 18:56 — forked from alecjacobson/viewmesh.cpp
Command line program to view 3D meshes from files, standard input and pipes
#include <igl/guess_extension.h>
#include <igl/read_triangle_mesh.h>
#include <igl/viewer/Viewer.h>
#include <Eigen/Core>
#include <iostream>
#include <string>
#include <cstdio>
#include <unistd.h>
int main(int argc, char * argv[])
/*
GLM
*/
#include <glm/glm.hpp>
#include <glm/gtc/matrix_transform.hpp>
#include <glm/gtc/type_ptr.hpp>
#include <sstream>
#include <fstream>
#include <stdio.h>
@Erkaman
Erkaman / cloud_gen.cpp
Last active December 28, 2016 17:30
program that outputs a single vector cloud
// program that outputs a single vector cloud.
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <float.h>
#include <vector>
#include <string>
using std::vector;
@Erkaman
Erkaman / main.cpp
Created December 31, 2016 11:50
black-white-animation. Source code of this https://twitter.com/erkaman2/status/815151845068992512
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <vector>
#include <string>
using std::vector;
using std::string;
using std::to_string;
/*
The MIT License (MIT)
Copyright (c) 2016 Eric Arnebäck
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
@Erkaman
Erkaman / gist:84403e52ce194a168e5112b13ca4e85a
Created January 29, 2017 13:10
Cholesky Decomposition Explanation.
############################################################
How to solve a matrix equation with Cholesky Decomposition
############################################################
We want to solve the matrix equation Ax=b. So we want x. The Cholesky decomposition of A is just
the matrix product A = L(L^T). Where L is some lower triangular matrix, and L^T is its transpose.
So L^T is upper triangular. See wikipedia an example of such a decomposition:
https://en.wikipedia.org/wiki/Cholesky_decomposition#Example
If we now substitute our decomposition of A into our equation we get
@Erkaman
Erkaman / broken_shader.fs
Created February 20, 2017 16:39
broken_shader.vs is the broken shader.
// empty fragment shader.
void main()
{
}
@Erkaman
Erkaman / fragment_shader.glsl
Last active April 5, 2017 19:37
broken shader. please check the comments at end of fragment shader.
#version 430
#define GLUINT_MAX 4294967295
#define NULL_NODE (GLUINT_MAX - 0)
#define SUBDIVIDE_NODE (GLUINT_MAX - 1)
#define LEAF_NODE (GLUINT_MAX - 2)
// node in the octree.
struct OctNode {