小编HS_*_*rix的帖子

Threejs拖拽点

我必须生成大量可以单独拖动的对象。此外,这些对象仅限于平面形式(例如矩形或圆形)。起初我使用简单的 CircleGeometries,它们被放置在另一个几何图形(平面)内。拖动它们也很容易,但正如预期的那样,其中大约 200000 个的性能非常差。然后我决定使用点/粒子系统。平面内的定位效果很好,但我无法设法使粒子系统的各个点可拖动。我在threejs文档中找到了交互式粒子示例,但仍然没有clou,如何将它们与dragcontrols结合。这是我创建粒子系统并用这些点填充平面的代码:

//Create a plane geometrie, that is later filled with points
var geometry2 = new THREE.CircleGeometry(30,32);
var material2 = new THREE.MeshBasicMaterial( {color: 0x666666, side: THREE.DoubleSide, wireframe:true} );
var mat1 = new THREE.MeshBasicMaterial( {color: 0x00ff00, wireframe:false} );
var plane1 = new THREE.Mesh(geometry2, material2);
geometries.push(plane1);    //push to object for draggable elements
scene.add(plane1);        

var positionsX;

       positionsX = inGeometry.inGeometry(plane1.geometry,  200000); // get positions for points inside plane1

      var geometry = new THREE.Geometry();
      for (var i = 0; i < positionsX.length; i++) …
Run Code Online (Sandbox Code Playgroud)

javascript particle-system three.js

2
推荐指数
1
解决办法
1906
查看次数

标签 统计

javascript ×1

particle-system ×1

three.js ×1