一个。我在3ds max中有一个默认球体
湾我将它在X轴上缩小10次然后导出到obj。
℃。将缩小的球体导入3JS,然后再将X放大10倍。
d。我希望球体看起来像步骤A - 在缩小之前 - 我需要保持导入的顶点法线,而不是在3JS中计算
____
我想缩放非制服进口网格以重复使用不同形状
请提出一些有关如何摆脱此问题的建议?非常感谢每一个想法!
答案 0 :(得分:1)
那是因为你的法线都在x方向上被压扁了。你必须深入研究BufferGeometry
的属性并手动“拉伸”这些法线:
尝试使用以下代码替换JSFiddle中的onclick
回调:
document.getElementById("scaleButton").onclick = function(){
object.scale.set(10,1,1);
// Get the 'normal' attribute of the geometry
var normals = object.children[0].geometry.getAttribute("normal");
// Manually stretch the x-value of the normal by 10
for(var i3 = 0; i3 < normals.length; i3 +=3){
normals.array[i3] = normals.array[i3] * 10;
}
// Inform the renderer that the attribute was altered
normals.needsUpdate = true;
}