Three.js-扭曲几何体时固定扭曲的照明
我正在研究一个几何体,它基本上是一根绕z轴扭曲特定角度的杆。这是通过基于沿z方向的位置修改挤出测量的顶点来完成的:Three.js-扭曲几何体时固定扭曲的照明,three.js,Three.js,我正在研究一个几何体,它基本上是一根绕z轴扭曲特定角度的杆。这是通过基于沿z方向的位置修改挤出测量的顶点来完成的: function twistMesh(mesh, helixAngle){ var vertices = mesh.geometry.vertices; for (var i = 0; i < vertices.length; i++) { var angle = helixAngle*vertices[i].z/100; va
function twistMesh(mesh, helixAngle){
var vertices = mesh.geometry.vertices;
for (var i = 0; i < vertices.length; i++) {
var angle = helixAngle*vertices[i].z/100;
var updateX = vertices[i].x * Math.cos(angle)
- vertices[i].y * Math.sin(angle);
var updateY = vertices[i].y * Math.cos(angle)
+ vertices[i].x * Math.sin(angle);
vertices[i].x = updateX;
vertices[i].y = updateY;
}
return mesh;
}
然而,这似乎并不能解决我看到的照明问题
以这种方式扭曲几何体时,如何更新或以其他方式“修复”扭曲的照明?更新顶点后,还需要更新顶点法线 您可以手动执行此操作,您将拥有最多的控制权,也可以使用内置方法:
mesh.geometry.computeVertexNormals();
更新小提琴:
three.js r.95更新顶点后,还需要更新顶点法线 您可以手动执行此操作,您将拥有最多的控制权,也可以使用内置方法:
mesh.geometry.computeVertexNormals();
更新小提琴:
3.js r.95