pre-calculate proj4 coordinate transformations as a texture
npm install glsl-proj4-texturepre-calculate proj4 coordinate transformations as a texture
generate proj4 texture data:
`` js`
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:
` glsl`
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: 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`
var ptex = require('glsl-proj4-texture')
Return a Float32Array texture from:
* opts.size - texture [width,height]. default: [128,128][west,south,east,north]
* opts.src - proj4 source string
* opts.dst - proj4 destination string
* opts.bounds - in degrees. default: [-180,-90,180,90]
` glsl`
#pragma glslify: ptex = require('glsl-proj4-texture')
Return a vec3 pt from the texture lookup on a texture created with a bboxlonlat
mapping in degrees to screen coordinates in pt`.
npm install glsl-proj4-texture
BSD