Add existing to tracked

This commit is contained in:
Jay
2026-08-11 09:53:42 -04:00
parent afe07f3055
commit ffd6e3d73c
8531 changed files with 4396230 additions and 0 deletions
@@ -0,0 +1,64 @@
import defined from "../Core/defined.js";
import FeatureDetection from "../Core/FeatureDetection.js";
import RuntimeError from "../Core/RuntimeError.js";
import TaskProcessor from "../Core/TaskProcessor.js";
function GaussianSplatTextureGenerator() {}
GaussianSplatTextureGenerator._maxSortingConcurrency = Math.max(
FeatureDetection.hardwareConcurrency - 1,
1,
);
GaussianSplatTextureGenerator._textureTaskProcessor = undefined;
GaussianSplatTextureGenerator._taskProcessorReady = false;
GaussianSplatTextureGenerator._error = undefined;
GaussianSplatTextureGenerator._getTextureTaskProcessor = function () {
if (!defined(GaussianSplatTextureGenerator._textureTaskProcessor)) {
const processor = new TaskProcessor(
"gaussianSplatTextureGenerator",
GaussianSplatTextureGenerator._maxSortingConcurrency,
);
processor
.initWebAssemblyModule({
wasmBinaryFile: "ThirdParty/wasm_splats_bg.wasm",
})
.then(function (result) {
if (result) {
GaussianSplatTextureGenerator._taskProcessorReady = true;
} else {
GaussianSplatTextureGenerator._error = new RuntimeError(
"Gaussian splat sorter could not be initialized.",
);
}
})
.catch((error) => {
GaussianSplatTextureGenerator._error = error;
});
GaussianSplatTextureGenerator._textureTaskProcessor = processor;
}
return GaussianSplatTextureGenerator._textureTaskProcessor;
};
GaussianSplatTextureGenerator.generateFromAttributes = function (parameters) {
const textureTaskProcessor =
GaussianSplatTextureGenerator._getTextureTaskProcessor();
if (defined(GaussianSplatTextureGenerator._error)) {
throw GaussianSplatTextureGenerator._error;
}
if (!GaussianSplatTextureGenerator._taskProcessorReady) {
return;
}
const { attributes } = parameters;
return textureTaskProcessor.scheduleTask(parameters, [
attributes.positions.buffer,
attributes.scales.buffer,
attributes.rotations.buffer,
attributes.colors.buffer,
]);
};
export default GaussianSplatTextureGenerator;