Skip to content

Commit

Permalink
Remove on-demand refersh logic.
Browse files Browse the repository at this point in the history
  • Loading branch information
kwokcb committed Sep 9, 2024
1 parent 7354f64 commit b3f5a87
Show file tree
Hide file tree
Showing 4 changed files with 9 additions and 84 deletions.
9 changes: 3 additions & 6 deletions javascript/MaterialXView/source/helper.js
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ function fromMatrix(matrix, dimension)
* @param {mx.Uniforms} uniforms
* @param {THREE.textureLoader} textureLoader
*/
function toThreeUniform(viewer, type, value, name, uniforms, textureLoader, searchPath, flipY)
function toThreeUniform(type, value, name, uniforms, textureLoader, searchPath, flipY)
{
let outValue = null;
switch (type)
Expand Down Expand Up @@ -156,8 +156,6 @@ function toThreeUniform(viewer, type, value, name, uniforms, textureLoader, sear
// Add texture to ThreeJS cache
if (checkCache)
THREE.Cache.add(texturePath, texture);

viewer.scheduleUpdate();
},
undefined,
function (error) {
Expand Down Expand Up @@ -330,7 +328,7 @@ export function registerLights(mx, lights, genContext)
* @param {mx.shaderStage} shaderStage
* @param {THREE.TextureLoader} textureLoader
*/
export function getUniformValues(viewer, shaderStage, textureLoader, searchPath, flipY)
export function getUniformValues(shaderStage, textureLoader, searchPath, flipY)
{
let threeUniforms = {};

Expand All @@ -344,8 +342,7 @@ export function getUniformValues(viewer, shaderStage, textureLoader, searchPath,
const variable = uniforms.get(i);
const value = variable.getValue()?.getData();
const name = variable.getVariable();
//console.log('fill uniform, name:', name, ', value:', value);
threeUniforms[name] = new THREE.Uniform(toThreeUniform(viewer, variable.getType().getName(), value, name, uniforms,
threeUniforms[name] = new THREE.Uniform(toThreeUniform(variable.getType().getName(), value, name, uniforms,
textureLoader, searchPath, flipY));
}
}
Expand Down
26 changes: 3 additions & 23 deletions javascript/MaterialXView/source/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,6 @@ function init()
orbitControls.addEventListener('change', () =>
{
viewer.getScene().setUpdateTransforms();
viewer.scheduleUpdate();
})

// Add hotkey 'f' to capture the current frame and save an image file.
Expand All @@ -92,7 +91,6 @@ function init()
if (event.key === 'f')
{
captureRequested = true;
viewer.scheduleUpdate();
}
});

Expand Down Expand Up @@ -131,7 +129,6 @@ function init()

}).then(() =>
{
viewer.scheduleUpdate();
animate();
}).catch(err =>
{
Expand All @@ -149,7 +146,6 @@ function init()
viewer.getMaterial().loadMaterials(viewer, materialFilename);
viewer.getEditor().updateProperties(0.9);
viewer.getScene().setUpdateTransforms();
viewer.scheduleUpdate();
});

setSceneLoadingCallback(file =>
Expand All @@ -158,7 +154,6 @@ function init()
console.log('Drop geometry to:', glbFileName);
scene.setGeometryURL(glbFileName);
scene.loadGeometry(viewer, orbitControls);
viewer.scheduleUpdate();
});

// enable three.js Cache so that dropped files can reference each other
Expand All @@ -170,12 +165,10 @@ function onWindowResize()
viewer.getScene().updateCamera();
viewer.getScene().setUpdateTransforms();
renderer.setSize(window.innerWidth, window.innerHeight);
console.log('resize refresh....');
viewer.scheduleUpdate();
}

function animate()
{
{
requestAnimationFrame(animate);

if (turntableEnabled)
Expand All @@ -186,19 +179,8 @@ function animate()
viewer.getScene().setUpdateTransforms();
}

// Only re-render when an update request was made
if (viewer.needUpdate() || turntableEnabled)
{
renderer.render(viewer.getScene().getScene(), viewer.getScene().getCamera());

if (viewer.getScene().getUpdateTransforms())
{
viewer.getScene().updateTransforms();
viewer.getScene().setUpdateTransforms(false);
}

viewer.finishUpdate();
}
renderer.render(viewer.getScene().getScene(), viewer.getScene().getCamera());
viewer.getScene().updateTransforms();

if (captureRequested)
{
Expand All @@ -215,11 +197,9 @@ function handleKeyEvents(event)
if (event.keyCode == V_KEY)
{
viewer.getScene().toggleBackgroundTexture();
viewer.scheduleUpdate();
}
else if (event.keyCode == P_KEY)
{
turntableEnabled = !turntableEnabled;
viewer.scheduleUpdate();
}
}
58 changes: 3 additions & 55 deletions javascript/MaterialXView/source/viewer.js
Original file line number Diff line number Diff line change
Expand Up @@ -857,14 +857,12 @@ export class Material
assigned += viewer.getScene().updateMaterial(matassign);
matassign.setGeometry(temp);
assignedSolo = true;
viewer.scheduleUpdate();
break
}
}
else
{
assigned += viewer.getScene().updateMaterial(matassign);
viewer.scheduleUpdate();
}
}
}
Expand All @@ -873,7 +871,6 @@ export class Material
this._defaultMaterial = new MaterialAssign(this._materials[0].getMaterial(), ALL_GEOMETRY_SPECIFIER);
this._defaultMaterial.setShader(this._materials[0].getShader());
viewer.getScene().updateMaterial(this._defaultMaterial);
viewer.scheduleUpdate();
}

if (assigned > 0)
Expand Down Expand Up @@ -929,8 +926,8 @@ export class Material
let theScene = viewer.getScene();
let flipV = theScene.getFlipGeometryV();
let uniforms = {
...getUniformValues(viewer, shader.getStage('vertex'), textureLoader, searchPath, flipV),
...getUniformValues(viewer, shader.getStage('pixel'), textureLoader, searchPath, flipV),
...getUniformValues(shader.getStage('vertex'), textureLoader, searchPath, flipV),
...getUniformValues(shader.getStage('pixel'), textureLoader, searchPath, flipV),
}

Object.assign(uniforms, {
Expand Down Expand Up @@ -966,7 +963,6 @@ export class Material
if (logDetailedTime)
console.log("- Per material generate time: ", performance.now() - startGenerateMat, "ms");

viewer.scheduleUpdate();
return newMaterial;
}

Expand Down Expand Up @@ -1023,7 +1019,6 @@ export class Material
}
viewer.getMaterial().updateMaterialAssignments(viewer, this._soloMaterial);
viewer.getScene().setUpdateTransforms();
viewer.scheduleUpdate();
}

//
Expand Down Expand Up @@ -1246,10 +1241,6 @@ export class Material
}
const w = currentFolder.add(material.uniforms[name], 'value', minValue, maxValue, step).name(path);
w.domElement.classList.add('peditoritem');
w.onChange(function (value)
{
viewer.scheduleUpdate();
});
}
break;

Expand Down Expand Up @@ -1313,10 +1304,6 @@ export class Material
{
let w = currentFolder.add(material.uniforms[name], 'value', minValue, maxValue, step).name(path);
w.domElement.classList.add('peditoritem');
w.onChange(function (value)
{
viewer.scheduleUpdate();
});
}
else
{
Expand All @@ -1342,7 +1329,6 @@ export class Material
{
material.uniforms[name].value = value;
}
viewer.scheduleUpdate();
}
const defaultOption = enumList[value]; // Set the default selected option
const dropdownController = currentFolder.add(enumeration, defaultOption, enumeration).name(path);
Expand All @@ -1358,11 +1344,6 @@ export class Material
{
let w = currentFolder.add(material.uniforms[name], 'value').name(path);
w.domElement.classList.add('peditoritem');
w.onChange(function (value)
{
viewer.scheduleUpdate();
});

}
break;

Expand Down Expand Up @@ -1406,10 +1387,6 @@ export class Material
let w = vecFolder.add(material.uniforms[name].value,
key, minValue[key], maxValue[key], step[key]).name(keyString[key]);
w.domElement.classList.add('peditoritem');
w.onChange(function (value)
{
viewer.scheduleUpdate();
});
})
}
break;
Expand All @@ -1431,7 +1408,6 @@ export class Material
{
const color3 = new THREE.Color(value);
material.uniforms[name].value.set(color3.toArray());
viewer.scheduleUpdate();
});
w.domElement.classList.add('peditoritem');
}
Expand All @@ -1455,11 +1431,7 @@ export class Material
let item = currentFolder.add(dummy, 'thevalue');
item.name(path);
item.disable(true);
let w = item.domElement.classList.add('peditoritem');
w.onChange(function (value)
{
viewer.scheduleUpdate();
});
item.domElement.classList.add('peditoritem');
}
break;
default:
Expand Down Expand Up @@ -1503,30 +1475,6 @@ export class Viewer

this.fileLoader = new THREE.FileLoader();
this.hdrLoader = new RGBELoader();

this.updates = 0
}

scheduleUpdate()
{
this.updates++;
//console.log('Schedule update: ', this.updates)
}

finishUpdate()
{
if (this.updates > 0)
{
this.updates--;
//console.log('Finish update: ', this.updates)
}
}

needUpdate()
{
//if (this.updates > 0)
// console.log('Need update: ', this.updates > 0)
return this.updates > 0;
}

//
Expand Down
Binary file removed resources/Geometry/sphere.glb
Binary file not shown.

0 comments on commit b3f5a87

Please sign in to comment.