javascript - 如何随机化 Three.js 网格中顶点的长度?

标签 javascript three.js

我正在尝试在 Three.js 中随机化网格,类似于 this我今天早些时候看到的 codepen(行星有某种扭曲/不规则的边缘)。我尝试在 codepen 中重现这种效果我制作了(通过从之前链接的代码笔中公然复制一些代码片段)并更改了参数以适合我的(请看第 56 行)。正如您所看到的,所需的效果没有出现并且破坏了代码。

这是不起作用的部分:

var noise = randomRange(1,5);
for(var i=0; i<Ico.vertices.length; i++){
      var v = Ico.vertices[i];
      v.x += -noise/2 + Math.random()*noise;
     v.y += -noise/2 + Math.random()*noise;
     v.z += -noise/2 + Math.random()*noise;
   };

这里有什么我没有考虑到的吗?非常感谢任何帮助。

最佳答案

这就是您解决问题的方法:

function randomRange(min,max) {
    return Math.floor(Math.random()*(max-min+1)+min);
}

//Geometry

var geometry = new THREE.IcosahedronGeometry(25, 3);

var noise = randomRange(1,5);
for(var i=0; i<geometry.vertices.length; i++){
  var v = geometry.vertices[i];
  v.x += -noise/2 + Math.random()*noise;
  v.y += -noise/2 + Math.random()*noise;
  v.z += -noise/2 + Math.random()*noise;
};

//Meshes

var Ico = new THREE.Mesh(geometry, cyanMat);
Ico.rotation.z = 0.5;

关于javascript - 如何随机化 Three.js 网格中顶点的长度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40323789/

相关文章:

javascript - 检查 Canvas 像素是否为给定颜色

javascript - 在一页上使用具有多个表单的日期选择器

javascript - 2D渲染处理P5

three.js - 是否可以在 Threejs 中勾勒出 View 端口?

三.js : Very first setup. ..?

javascript - 单击按钮而不刷新整个页面

javascript - 使用 JS 在 Angular 中创建删除按钮的确认警报

three.js - 在浏览器中进行人体 3d 建模?

javascript - 如何在平面的一侧设置纹理并在另一侧设置颜色?

javascript - 三.js : change texture at runtime