我有一个基本的three.js场景,其中我试图从Blender导出对象(作为带有嵌入变形的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的材质都将morphTargets设置为true。 我在这里看过三个例子: http://threejs.org/examples/?q=morph#webgl_morphtargets_human 以及#webgl_morphtargets和#webgl_morphtargets_horse
非常感谢任何想法或意见!
答案 0 :(得分:1)
我相信我已经为我的问题找到了一个解决方案,我认为JSON加载器保留了变形目标名称,而不是使用morphTargetInfluences
来代替索引号像morphTargetInfluences ['myMorphTargetName'] 但是,在控制台中进行仔细检查后,似乎应该像morphTargetInfluences [0]
那样引用它们。不是最直观的,但我可以使用它。