Skip to content

Instantly share code, notes, and snippets.

@automat
automat / index.js
Last active November 6, 2024 18:09
single file glsl es-> split spirv -> spirv-opt -> spirv-cross to glsl es -> remerge to single glsl
const fs = require('fs');
const { exec } = require('child_process');
const path = require('path');
process.chdir(__dirname);
const args = process.argv.slice(2);
if (args.length === 0) {
console.error("Usage: {in_file} {out_file}");
process.exit(1);
@automat
automat / gist:6818f6318ba4517b4441d08ccc0501bc
Created January 7, 2022 13:49
pkm ETC2 c++11 parse test
#include <string>
#include <memory>
#include <fstream>
#include <cerrno>
#include <algorithm>
#include <cassert>
#include <iostream>
static constexpr char PKM_FILE_EXTENSION[] = "pkm";
static constexpr size_t PKM_HEADER_SIZE = 16;
@automat
automat / shader.glsl
Created May 17, 2017 20:15
Line Data Encode
#ifdef VERTEX_SHADER
/*--------------------------------------------------------------------------------------------------------------------*/
// VERTEX SHADER
/*--------------------------------------------------------------------------------------------------------------------*/
precision highp float;
attribute vec4 aPosition;
attribute vec2 aTexCoord;
@automat
automat / index.js
Created December 20, 2016 14:31
bit mask encode decode 5
function encode(column){
const out = [0,0,0,0];
for(let i = 0; i < 8; ++i){
out[0] |= column[i+0 ] << i;
out[1] |= column[i+8 ] << i;
out[2] |= column[i+16] << i;
}
out[3] = column[column.length - 1] << 0;
return out;
}
ffmpeg -r 30 -f image2 -s 9200x1080 -i prototype-%04d.png -pix_fmt yuv420p test.mp4
/** *
* @param {String} a - hex
* @param {String} b - hex
* @param {Number} x - interpolation step
* @example
* const result = lerpedHexGamma('#0000ff','#ff0000',0.5)
*/
function lerpedHexGamma(a,b,x){
const gamma = 2.2;
const _1_gamma = 1.0 / gamma;
ffmpeg -i in.mov -vf scale=800:-1 -r 10 -f image2pipe -vcodec ppm - | convert -delay 5 -layers Optimize -loop 0 - out.gif
var Context = require('pex-context/Context');
var isBrowser = require('is-browser');
var EventDispatcher = require('./EventDispatcher');
var WindowEvent = require('./WindowEvent');
var WindowBrowser = require('./WindowBrowser');
var WindowPlask = require('./WindowPlask');
var ResourceLoader = require('./ResourceLoader');
var Time = require('./Time');
var Mouse = require('./Mouse');
var MouseEvent = require('./MouseEvent');
@automat
automat / obj3dsMaxVertexAndGroups.js
Created July 14, 2015 15:44
obj3dsMaxVertexAndGroups
// Remove everything from 3ds Max obj except vertices,indices & groups
var colors = require('colors'),
argv = require('minimist')(process.argv.slice(2),{string:['o']}),
fs = require('fs'),
path = require('path');
function logUsageAndExit(){
console.log(('Usage: [pathTo3dsMaxObjFile] -o [pathToOutObjFile] [-m] [-p]').yellow);
process.exit();
@automat
automat / obj3dsMax.js
Created July 14, 2015 15:42
obj3dsMax
// Converts 3ds Max .obj to valid general .obj file.
var colors = require('colors'),
argv = require('minimist')(process.argv.slice(2),{string:['o']}),
fs = require('fs'),
path = require('path');
function logUsageAndExit(){
console.log(('Usage: [pathTo3dsMaxObjFile] -o [pathToOutObjFile] [-m] [-p]').yellow);
process.exit();