playcanvas
Version:
PlayCanvas WebGL game engine
97 lines (95 loc) • 2.33 kB
JavaScript
var litMainVS = `
attribute vertex_color: vec4f;
varying vMask: vec2f;
varying vTiledUv: vec2f;
var<private> dMaskGlobal: vec2f;
var<private> dTiledUvGlobal: vec2f;
uniform innerOffset: vec4f;
uniform outerScale: vec2f;
uniform atlasRect: vec4f;
var<private> dPositionW: vec3f;
var<private> dModelMatrix: mat4x4f;
attribute vertex_texCoord0: vec2f;
attribute vertex_texCoord1: vec2f;
uniform matrix_view: mat4x4f;
attribute vertex_tangent: vec4f;
@vertex
fn vertexMain(input : VertexInput) -> VertexOutput {
var output : VertexOutput;
output.position = getPosition();
output.vPositionW = getWorldPosition();
output.vNormalW = getNormal();
output.vTangentW = normalize(dNormalMatrix * vertex_tangent.xyz);
output.vBinormalW = cross(output.vNormalW, output.vTangentW) * vertex_tangent.w;
output.vObjectSpaceUpW = normalize(dNormalMatrix * vec3f(0.0, 1.0, 0.0));
var uv0: vec2f = getUv0();
output.vUv0 = uv0;
var uv1: vec2f = getUv1();
output.vUv1 = uv1;
output.vVertexColor = vertex_color;
output.vLinearDepth = -(uniform.matrix_view * vec4f(output.vPositionW, 1.0)).z;
unpackMsdfParams();
output.outline_color = dOutlineColor;
output.outline_thickness = dOutlineThickness;
output.shadow_color = dShadowColor;
output.shadow_offset = dShadowOffset;
output.vMask = dMaskGlobal;
output.vTiledUv = dTiledUvGlobal;
return output;
}
`;
export { litMainVS as default };