Skip to content

Commit aa13e37

Browse files
authored
Optimize 16-bit unpacking in gsplat chunks (#8071)
1 parent 0b6410a commit aa13e37

File tree

4 files changed

+4
-4
lines changed

4 files changed

+4
-4
lines changed

src/scene/shader-lib/glsl/chunks/gsplat/frag/gsplatSogsCenters.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ void main(void) {
1717
1818
vec3 l = texelFetch(means_l, uv, 0).xyz;
1919
vec3 u = texelFetch(means_u, uv, 0).xyz;
20-
vec3 n = (l * 255.0 + u * 255.0 * 256.0) / 65535.0;
20+
vec3 n = (l + u * 256.0) / 257.0;
2121
vec3 v = mix(means_mins, means_maxs, n);
2222
vec3 center = sign(v) * (exp(abs(v)) - 1.0);
2323

src/scene/shader-lib/glsl/chunks/gsplat/vert/gsplatSogsData.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ vec3 readCenter(SplatSource source) {
1919
2020
vec3 l = unpack8888(packedSample.x).xyz;
2121
vec3 u = unpack8888(packedSample.y).xyz;
22-
vec3 n = (l * 255.0 + u * 255.0 * 256.0) / 65535.0;
22+
vec3 n = (l + u * 256.0) / 257.0;
2323
vec3 v = mix(means_mins, means_maxs, n);
2424
2525
return sign(v) * (exp(abs(v)) - 1.0);

src/scene/shader-lib/wgsl/chunks/gsplat/frag/gsplatSogsCenters.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ fn fragmentMain(input: FragmentInput) -> FragmentOutput {
1919
2020
let l: vec3f = textureLoad(means_l, uv, 0).xyz;
2121
let u: vec3f = textureLoad(means_u, uv, 0).xyz;
22-
let n: vec3f = (l * 255.0 + u * 255.0 * 256.0) / 65535.0;
22+
let n: vec3f = (l + u * 256.0) / 257.0;
2323
let v: vec3f = mix(uniform.means_mins, uniform.means_maxs, n);
2424
let center: vec3f = sign(v) * (exp(abs(v)) - 1.0);
2525

src/scene/shader-lib/wgsl/chunks/gsplat/vert/gsplatSogsData.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ fn readCenter(source: ptr<function, SplatSource>) -> vec3f {
1818
1919
let l = unpack8888(packedSample.x).xyz;
2020
let u = unpack8888(packedSample.y).xyz;
21-
let n = (l * 255.0 + u * 255.0 * 256.0) / 65535.0;
21+
let n = (l + u * 256.0) / 257.0;
2222
let v = mix(uniform.means_mins, uniform.means_maxs, n);
2323
2424
return sign(v) * (exp(abs(v)) - 1.0);

0 commit comments

Comments
 (0)