• Stars
    star
    187
  • Rank 206,124 (Top 5 %)
  • Language
    C++
  • License
    MIT License
  • Created almost 10 years ago
  • Updated almost 3 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

C++17 GLSL-like vector and matrix math lib

VML

C++17 GLSL vector and matrix math library. Tweaked for best debug code gen.

Quick Usage

Introduce the GLSL types
using vec3 = vml::vector<float, 0, 1, 2>;
using mat3 = vml::matrix<float, vml::vector, vml::indices_pack<0, 1, 2>, vml::indices_pack<0, 1, 2>>;
Compile shader code as C++
void mainImage( out vec4 fragColor, in vec2 fragCoord )
{
    // Normalized pixel coordinates (from 0 to 1)
    vec2 uv = fragCoord/iResolution.xy;

    // Time varying pixel color
    vec3 col = 0.5 + 0.5*cos(iTime+uv.xyx+vec3(0,2,4));

    // Output to screen
    fragColor = vec4(col,1.0);
}

Debug!

debug

About

Inspired by and borrowed major ideas from CxxSwizzle but mine is engineered for best possible debug code gen.

It includes a SDL based sample app that runs GLSL shaders in a software rasterizer. It can get decent framerates for simple/medium complexity shaders.