UNPKG

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.

22 lines (20 loc) 849 B
//#region src/core/shaders/chunks/utils/hammersley-2D.ts /** Hammersley 2D WGSL function. */ const hammersley2D = ` fn radicalInverse_VdC(inputBits: u32) -> f32 { var bits: u32 = inputBits; bits = (bits << 16u) | (bits >> 16u); bits = ((bits & 0x55555555u) << 1u) | ((bits & 0xAAAAAAAAu) >> 1u); bits = ((bits & 0x33333333u) << 2u) | ((bits & 0xCCCCCCCCu) >> 2u); bits = ((bits & 0x0F0F0F0Fu) << 4u) | ((bits & 0xF0F0F0F0u) >> 4u); bits = ((bits & 0x00FF00FFu) << 8u) | ((bits & 0xFF00FF00u) >> 8u); return f32(bits) * 2.3283064365386963e-10; // / 0x100000000 } // hammersley2d describes a sequence of points in the 2d unit square [0,1)^2 // that can be used for quasi Monte Carlo integration fn hammersley2d(i: u32, N: u32) -> vec2f { return vec2(f32(i) / f32(N), radicalInverse_VdC(i)); } `; //#endregion export { hammersley2D };