3.JS错误加载2网格,带有和不带有变形



最初没有变形的没有变形,并克隆了几何形状。使用Webworker读取单独包含morphtargets的文件,并使用此代码转换为三个对象

i = timeStep;
dstVertices = [];
srcVertices = morphTargets.vertices;
for (v = 0, vl = srcVertices.length; v < vl; v += 3) {
    var vertex = new THREE.Vector3();
    vertex.x = srcVertices[ v ];
    vertex.y = srcVertices[ v + 1 ];
    vertex.z = srcVertices[ v + 2 ];
    dstVertices.push(vertex);
}
geo.morphTargets.push(dstVertices);
timeStep += 1;

在后期创建了新的几何形状,包括克隆几何和dstvertices的顶点和面孔。

从场景中删除了先前创建的网格,并添加了包含morphtargets的新创建的网格。

控制台正在抛出此错误:

Uncaught TypeError: Cannot read property '52' of undefined
    at setMeshBuffers (three_70.js:18797)
    at updateObject (three_70.js:21142)
    at THREE.WebGLRenderer.renderBuffer (three_70.js:19970)
    at renderObjects (three_70.js:20681)
    at THREE.WebGLRenderer.render (three_70.js:20544)
    at animate (index1.php:70)

有人可以指导我出错的地方吗?

我假设您解析了一个图形文件,并且您正在尝试在Web Worker中创建WebGL对象。当我解析3D文件并使用Web Worker启动WebGL对象时,我面临着同样的问题。首先,我遇到了像您一样的错误,然后我意识到每个网络工作者都有自己的范围。因此,我将值(后)传递给了我的main.js。

您可以使用Postmessage方法发布V,V 1和V 2值,您可以在定义并称为Web Worker的位置创建三个Vivator对象。

我想说的是,您不应该启动三个。网络工作者中的向量对象,因为很难处理。不要忘记Web Worker支持简单的对象传输后的消息传输。因此,您应该尝试使其变得简单。不要尝试发布三个。使用邮政postemage时向量对象。

最新更新