Instantly share code, notes, and snippets.

# Ignaciocastano

• Sort options
Last active Oct 31, 2018
View Sphere.cpp
 // This code is in the public domain -- Ignacio Castaño #include "Sphere.h" #include "Vector.inl" #include "Box.inl" #include // FLT_MAX using namespace nv;
Created Mar 30, 2017
Least Squares Vertex Quantization
View gist:b05863af48138dab368b23a0ab86e735
 I didn't think there was much to gain from optimizing quantization intervals for vertex compression, but I thought it would give it a try and see it for myself. I have a set of vertices X that I want to quantize. The trivial way to do that is to transform them to the [0,1] range and store them using an integer UNORM format. At runtime the vertices are reconstructed as follows: X = Q * m + a Where:
Created Jun 20, 2014
Hemicube Integrator
View hemicube.cpp
 #include "hemicube.h" #define PACK_HEMICUBES 1 static void get_hemicube_face_normal(int index, Vector3 *forward, Vector3 *left, Vector3 *up) { // Unwrapped hemicube with positive-Z in the middle. switch (index) { case 0: *forward = Vector3(+1, 0, 0); *left = Vector3( 0, 1, 0); break;
Created Jul 24, 2013
Various ways to emulate D's scope statements in C++. See http://the-witness.net/news/2012/11/scopeexit-in-c11/
View scope.cpp
 // For C++11 support compile with: // clang++ -std=c++11 -stdlib=libc++ scope.cpp #include #include template struct ScopeExit { ScopeExit(F f) : f(f) {} ~ScopeExit() { f(); }
Created Jun 15, 2012
Old b-spline interpolation and approximation code
View BSpline.cpp
 /*=========================================================================== Title: BSpline.cpp Module: Pi/MathLib Author: Ignacio Castaño Date: 29/05/2000 License: Public Domain ===========================================================================*/ /*---------------------------------------------------------------------------- Doc:
Created Mar 21, 2012
ISPC half to float conversion
View half_to_float_test.cpp
 #include // __rdtsc #include typedef unsigned int uint; typedef unsigned short uint16; typedef unsigned long long uint64; // ISPC functions: extern "C" void half_to_float_test(const uint16 * vin, float * vout, int count); extern "C" void half_to_float_test_fast(const uint16 * vin, float * vout, int count);
You can’t perform that action at this time.