// make material uniforms
if (materialIdToUniforms.get(material.id) === undefined) {
const materialParameters = material.getParameters();
const materialUniforms: UniformValueMap = {};
for (const uniformName of Object.keys(materialParameters)) {
const uniformValue = materialParameters[uniformName];
// convert from Parameters to Uniforms
if (uniformValue instanceof Texture) {
const texture = uniformValue as Texture;
const textureId = texture.id;
let texImage2D = textureIdToTexImage2D.get(textureId);
if (texImage2D === undefined) {
texImage2D = makeTexImage2DFromTexture(context, texture);
textureIdToTexImage2D.set(textureId, texImage2D);
}
materialUniforms[uniformName] = texImage2D;
} else {
materialUniforms[uniformName] = uniformValue;
}
}
This part of scene compiler is very slow: