Giter Club home page Giter Club logo

colormap-shaders's Introduction

colormap-shaders

A collection of shaders to draw color map like this:

rainbow.

usage

Each *.frag shader sources provides a colormap function, which takes an float argument x (x should be: 0.0 <= x <= 1.0). The colormap function returns a vec4 value which represents an RGBA color.

vec4 colormap(float x);

void main() {
    gl_FragColor = colormap(gl_TexCoord[0].x);
}

/* include "shaders/rainbow.frag" here, for example. */

special case

gnuplot.frag

This shader emulates gnuplot's rgbformulae, and the signature of colormap is:

vec4 colormap(float x, int red_type, int green_type, int blue_type);

It takes additional 3 arguments, with same meanings to rgbformulae's 3 arguments respectively.

usage from c++

#include <colormap/colormap.h>
#include <iostream>

int main()
{
    using namespace colormap;

    // Print RGB table of MATLAB::Jet colormap.
    MATLAB::Jet jet;
    std::cout << "category: " << jet.getCategory() << std::endl;
    std::cout << "title:    " << jet.getTitle() << std::endl;
    int const size = 256;
    for (int i = 0; i < size; ++i) {
        float const x = i / (float)size;
        Color c = jet.getColor(x);
        std::cout << x << "\t" << c.r << "\t" << c.g << "\t" << c.b << std::endl;
    }

    // Dump category and title of all colormaps.
    for (std::shared_ptr<Colormap const> const& c : ColormapList::getAll()) {
        std::cout << c->getCategory() << " : " << c->getTitle() << std::endl;
    }
    return 0;
}

samples

MATLAB

name sample
MATLAB_autumn
MATLAB_bone
MATLAB_cool
MATLAB_copper
MATLAB_hot
MATLAB_hsv
MATLAB_jet
MATLAB_parula
MATLAB_pink
MATLAB_spring
MATLAB_summer
MATLAB_winter

gnuplot

name sample
rgbformulae(7, 5, 15)
rgbformulae(3, 11, 6)
rgbformulae(23, 28, 3)
rgbformulae(21, 22, 23)
rgbformulae(30, 31, 32)
rgbformulae(33, 13, 10)
rgbformulae(34, 35, 36)

IDL

name sample
IDL_Black-White_Linear
IDL_Blue-White_Linear
IDL_Green-Red-Blue-White
IDL_Red_Temperature
IDL_Blue-Green-Red-Yellow
IDL_Standard_Gamma-II
IDL_Prism
IDL_Red-Purple
IDL_Green-White_Linear
IDL_Green-White_Exponential
IDL_Green-Pink
IDL_Blue-Red
IDL_16_Level
IDL_Rainbow
IDL_Steps
IDL_Stern_Special
IDL_Haze
IDL_Blue-Pastel-Red
IDL_Pastels
IDL_Hue_Sat_Lightness_1
IDL_Hue_Sat_Lightness_2
IDL_Hue_Sat_Value_1
IDL_Hue_Sat_Value_2
IDL_Purple-Red+Stripes
IDL_Beach
IDL_Mac_Style
IDL_Eos_A
IDL_Eos_B
IDL_Hardcandy
IDL_Nature
IDL_Ocean
IDL_Peppermint
IDL_Plasma
IDL_Blue-Red_2
IDL_Rainbow_2
IDL_Blue_Waves
IDL_Volcano
IDL_Waves
IDL_Rainbow_18
IDL_Rainbow+White
IDL_Rainbow+Black
IDL_CB-Accent
IDL_CB-Dark2
IDL_CB-Paired
IDL_CB-Pastel1
IDL_CB-Pastel2
IDL_CB-Set1
IDL_CB-Set2
IDL_CB-Set3
IDL_CB-Blues
IDL_CB-BuGn
IDL_CB-BuPu
IDL_CB-GnBu
IDL_CB-Greens
IDL_CB-Greys
IDL_CB-Oranges
IDL_CB-OrRd
IDL_CB-PuBu
IDL_CB-PuBuGn
IDL_CB-PuRdn
IDL_CB-Purples
IDL_CB-RdPu
IDL_CB-Reds
IDL_CB-YIGn
IDL_CB-YIGnBu
IDL_CB-YIOrBr
IDL_CB-BrBG
IDL_CB-PiYG
IDL_CB-PRGn
IDL_CB-PuOr
IDL_CB-RdBu
IDL_CB-RdGy
IDL_CB-RdYiBu
IDL_CB-RdYiGn
IDL_CB-Spectral

transform

name sample
transform_rainbow
transform_apricot
transform_carnation
transform_ether
transform_grayscale_banded
transform_hot_metal
transform_lava_waves
transform_malachite
transform_seismic
transform_space
transform_morning_glory
transform_peanut_butter_and_jerry
transform_purple_haze
transform_rose
transform_saturn
transform_supernova

kbinani

name sample
kbinani_altitude

license

The MIT License. See 'LICENSE' file for detail.

colormap-shaders's People

Contributors

kbinani avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.