@luma.gl/shadertools
Version:
Shader module system for luma.gl
40 lines (31 loc) • 722 B
JavaScript
/** @typedef {import('../../types').ShaderModule} ShaderModule */
// TODO - reuse normal from geometry module
const vs = `\
varying vec4 geometry_vPosition;
varying vec3 geometry_vNormal;
void geometry_setNormal(vec3 normal) {
geometry_vNormal = normal;
}
void geometry_setPosition(vec4 position) {
geometry_vPosition = position;
}
void geometry_setPosition(vec3 position) {
geometry_vPosition = vec4(position, 1.);
}
`;
const fs = `\
varying vec4 geometry_vPosition;
varying vec3 geometry_vNormal;
vec4 geometry_getPosition() {
return geometry_vPosition;
}
vec3 geometry_getNormal() {
return geometry_vNormal;
}
`;
/** @type {ShaderModule} */
export const geometry = {
name: 'geometry',
vs,
fs
};