gpu-curtains
Version:
gpu-curtains is a 3D WebGPU rendering engine. It can be used as a standalone 3D engine, but also includes extra classes focused on mapping 3d objects to DOM elements; It allows users to synchronize values such as position, sizing, or scale between them.
28 lines (24 loc) • 897 B
JavaScript
//#region src/core/shaders/full/vertex/get-default-projected-vertex-shader-code.ts
/** Default vertex shader code for projected meshes. */
const getDefaultProjectedVertexShaderCode = `
struct VSOutput {
position: vec4f,
uv: vec2f,
normal: vec3f,
worldPosition: vec3f,
viewDirection: vec3f,
};
fn main(
attributes: Attributes,
) -> VSOutput {
var vsOutput: VSOutput;
vsOutput.position = getOutputPosition(attributes.position);
vsOutput.uv = attributes.uv;
vsOutput.normal = getWorldNormal(attributes.normal);
let worldPosition: vec4f = getWorldPosition(attributes.position);
vsOutput.worldPosition = worldPosition.xyz / worldPosition.w;
vsOutput.viewDirection = camera.position - vsOutput.worldPosition;
return vsOutput;
}`;
//#endregion
export { getDefaultProjectedVertexShaderCode };