Skip to content

Instantly share code, notes, and snippets.

View paulhoux's full-sized avatar
🏠
Working from home

Paul Houx paulhoux

🏠
Working from home
View GitHub Profile
@paulhoux
paulhoux / FixedTimestepApp.cpp
Created May 21, 2015 22:52
Sample showing how to perform a fixed number of updates per second, resulting in frame rate independent animation.
#include "cinder/app/App.h"
#include "cinder/app/RendererGl.h"
#include "cinder/gl/gl.h"
#include "cinder/params/Params.h"
#include "cinder/Rand.h"
using namespace ci;
using namespace ci::app;
using namespace std;
#include "cinder/app/AppNative.h" // Contains the AppNative class and the events.
#include "cinder/gl/gl.h" // Contains most OpenGL convenience functions.
#include "cinder/Camera.h" // For our camera.
using namespace ci;
using namespace ci::app;
using namespace std;
class CinderProjectApp : public AppNative {
@paulhoux
paulhoux / UnprojectApp.cpp
Created October 26, 2014 21:35
Clean example of rotating and scaling a rectangle, using glm::unProject to convert from mouse to world coordinates.
#include "cinder/app/AppNative.h"
#include "cinder/app/RendererGl.h"
#include "cinder/gl/gl.h"
#undef near
#undef far
using namespace ci;
using namespace ci::app;
using namespace std;
/*
Copyright (c) 2014, Paul Houx - All rights reserved.
This code is intended for use with the Cinder C++ library: http://libcinder.org
Redistribution and use in source and binary forms, with or without modification, are permitted provided that
the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this list of conditions and
the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
@paulhoux
paulhoux / spectrum2.frag
Created June 22, 2014 20:34
Alternative shader for the AudioVisualizer sample. See: https://github.com/paulhoux/Cinder-Samples
#version 110
void main(void)
{
// calculate glowing line strips based on texture coordinate
const float resolution = 64.0;
const float center = 0.5;
const float width = 0.02;
float f = fract( resolution * gl_TexCoord[0].s + 2.0 * gl_TexCoord[0].t );
@paulhoux
paulhoux / ParticlesOnSphereApp.cpp
Last active August 29, 2015 14:02
One way to create a particle system where all particles move across a unit sphere surface.
#include "cinder/app/AppNative.h"
#include "cinder/gl/gl.h"
#include "cinder/gl/Vbo.h"
#include "cinder/Camera.h"
#include "cinder/MayaCamUI.h"
#include "cinder/Quaternion.h"
#include "cinder/Rand.h"
using namespace ci;
using namespace ci::app;
#version 150
uniform sampler2D uTexture;
in VertexData {
vec3 baricentric;
vec4 color;
vec2 texcoord;
} vVertexIn;
#version 150
uniform sampler2D uTexture;
in VertexData {
noperspective vec3 distance;
vec4 color;
vec2 texcoord;
} vVertexIn;
@paulhoux
paulhoux / DebugMesh.cpp
Created January 24, 2014 22:55
Test application for the Cinder framework, showing that recalculated normals (based on the average of all connected triangle faces) is just as precise as the original normals (calculated from sphere mathematics).
#include "DebugMesh.h"
using namespace ci;
using namespace ci::geom;
using namespace std;
DebugMesh::DebugMesh(void)
{
enable( Attrib::POSITION );
enable( Attrib::COLOR );
@paulhoux
paulhoux / AudioShaderApp.cpp
Last active March 2, 2018 13:19
Adaptation of ShaderToy's AudioSurf shader for Cinder. Actual audio data is replaced with random noise to keep it simple. I kept the original shader code without making any changes. Note that ```iResolution``` must be passed as a Vec3f.
#include "cinder/app/AppNative.h"
#include "cinder/gl/gl.h"
#include "cinder/gl/GlslProg.h"
#include "cinder/gl/Texture.h"
#include "cinder/Rand.h"
using namespace ci;
using namespace ci::app;
using namespace std;