【发布时间】:2022-01-06 04:38:48
【问题描述】:
我有一个这样的方法的扩展,当我调用这个方法改变材质(颜色为红色)时,对象变得透明,控制台中出现以下错误
WebGLRenderer.js:5561 WebGL: INVALID_VALUE: uniform3fv: no array
[.WebGL-0000737C06582900] GL_INVALID_OPERATION: Active draw buffers with missing fragment shader outputs.
setColorToItem = (id) => {
const material = this.createMaterial('#ff0000');
const model = this.viewer.model;
const frags = model.getFragmentList();
model.unconsolidate();
this.tree.enumNodeFragments(
id,
(fragId) => {
frags.setMaterial(fragId, material);
this.viewer.impl.getFragmentProxy(model, fragId).updateAnimTransform();
},
true,
);
this.viewer.impl.invalidate(true);
};
createMaterial = (color) => {
const threeColor = new THREE.Color(color);
const material = new THREE.MeshPhongMaterial({
side: THREE.DoubleSide,
flatShading: true,
color: threeColor,
});
const materials = this.viewer.impl.matman();
materials.addMaterial('CustomMaterial' + color.toString(), material, true);
return material;
};
可能是什么问题? 我尝试使用不同的材料(MeshBasicMaterial、MeshLambertMaterial) 版本伪造查看器 7 版本threejs 0.71 如此处所示https://forge.autodesk.com/en/docs/viewer/v7/developers_guide/viewer_basics / 也试过最新的
【问题讨论】:
标签: autodesk-forge autodesk-viewer