2016-08-11 34 views
0

我有一个基本的three.js场景,我试图从Blender导出对象(如带有嵌入式变体的JSON文件),以便使用和更新它们的形状用户输入。THREE.js-morphTargetInfluences导入的JSON网格没有得到结果

下面是测试场景 http://onthez.com/temphosting/three-js-morph-test/morph-test.html

板坯被简单地缩放一个盒子,这是工作就好了,而不变种调整。

我必须缺少一些基本的东西,在顶部的小纪念碑。它有3个变体(宽度,深度,高度),旨在允许其调整大小。

我正在使用此代码来实现基于用户dat.gui输入的变形。

folder1.add(params, 'width', 12, 100).step(1).name("Width").onChange(function() { 
    updateFoundation(); 
    building.morphTargetInfluences['width'] = params.width/100; 
    roofL.morphTargetInfluences['width'] = params.width/100; 
    roofR.morphTargetInfluences['width'] = params.width/100; 
    building.updateMorphs(); 
}); 

building,roofL和roofR各自的材质都设置为true。 我已经去了这里的three.js所例子: http://threejs.org/examples/?q=morph#webgl_morphtargets_human 以及#webgl_morphtargets和#webgl_morphtargets_horse

任何想法或输入将不胜感激!

回答

1

我相信我已经达到了我的问题,我的印象是,JSON的装载机被保留了变形目标名,在地方与morphTargetInfluences索引号的使用

像morphTargetInfluences [”的解决方案myMorphTargetName'] 但是,在控制台中仔细检查之后,它应该像morphTargetInfluences [0]

一样被称为数字。不是最直观的,但我可以使用它。

+0

为了进一步阐述这一点,我注意到morphTargetDictionary []可以通过将每个变形目标的名称与其分配的索引相关联来帮助解决这个问题。使用myObject.morphTargetInfluences [myObject.morphTargetDictionary ['myMorphTargetName']] = 1;获取适当的变形目标并应用该值。 – jds580s