glsl-proj4-texture

1.0.1 • Public • Published

glsl-proj4-texture

pre-calculate proj4 coordinate transformations as a texture

example

generate proj4 texture data:

var ptex = require('glsl-proj4-texture')
var tex = ptex({
  src: '+proj=longlat +datum=WGS84',
  dst: '+proj=geocent',
  bounds: [-180,-90,180,90],
  size: [256,256]
})
process.stdout.write(Buffer.from(tex.buffer))

in your vertex shader using glslify:

precision highp float;
#pragma glslify: ptex = require('glsl-proj4-texture')
attribute vec2 position;
uniform sampler2D coordmap;
uniform float size;
void main () {
  vec3 pt = ptex(coordmap,vec4(-180,-90,180,90),position);
  gl_Position = vec4(pt.xy,0,1);
}

usage

usage: glsl-proj4-texture

Write a binary coordinate texture to stdout.

  --size    texture width and height in pixels. default: 128
  --src     proj4 source string
  --dst     proj4 destination string

  -w --west   default: -180
  -s --south  default: -90
  -e --east   default: +180
  -n --north  default: +90

js api

var ptex = require('glsl-proj4-texture')

var data = ptex(opts)

Return a Float32Array texture from:

  • opts.size - texture [width,height]. default: [128,128]
  • opts.src - proj4 source string
  • opts.dst - proj4 destination string
  • opts.bounds - [west,south,east,north] in degrees. default: [-180,-90,180,90]

glsl api

#pragma glslify: ptex = require('glsl-proj4-texture')

vec3 pt = ptex(sampler2D texture, vec4 bbox, vec2 lonlat)

Return a vec3 pt from the texture lookup on a texture created with a bbox mapping lonlat in degrees to screen coordinates in pt.

install

npm install glsl-proj4-texture

license

BSD

/glsl-proj4-texture/

    Package Sidebar

    Install

    npm i glsl-proj4-texture

    Weekly Downloads

    4

    Version

    1.0.1

    License

    BSD

    Last publish

    Collaborators

    • hughsk
    • mikolalysenko
    • mattdesl
    • chrisdickinson
    • yoshuawuyts
    • mikkoh
    • rezaali
    • tatumcreative
    • wwwtyro
    • thibauts
    • bpostlethwaite
    • dfcreative
    • erkaman
    • gre
    • rreusser
    • vorg
    • archmoj
    • dy