playcanvas
Version:
PlayCanvas WebGL game engine
21 lines (19 loc) • 608 B
JavaScript
var gsplatSourceVS = `
attribute vec3 vertex_position;
attribute uint vertex_id_attrib;
uniform uint numSplats;
uniform highp usampler2D splatOrder;
bool initSource(out SplatSource source) {
uint w = uint(textureSize(splatOrder, 0).x);
source.order = vertex_id_attrib + uint(vertex_position.z);
if (source.order >= numSplats) {
return false;
}
ivec2 orderUV = ivec2(source.order % w, source.order / w);
source.id = texelFetch(splatOrder, orderUV, 0).r;
source.uv = ivec2(source.id % w, source.id / w);
source.cornerUV = vertex_position.xy;
return true;
}
`;
export { gsplatSourceVS as default };