【问题标题】:How to set vertex colors of THREE.Points object in three.js如何在three.js中设置THREE.Points对象的顶点颜色
【发布时间】:2018-12-03 06:50:24
【问题描述】:

我正在尝试编写一个从网格创建点云的函数。我还想控制该点云的每个顶点的颜色。到目前为止,我尝试分配几何颜色,但颜色没有更新。

InteractablePointCloud_simug=function(object, editor){

        var signals=editor.signals;

        var vertexSize=0.3;
        var pointMat= new THREE.PointsMaterial({size:vertexSize , vertexColors:THREE.VertexColors});

        var colors=[];
        var colorStep=0.1;

         for (var i = 0; i < object.geometry.vertices.length; i++) {
            colors.push(new 
            THREE.Color(colorStep*i,colorStep*i,colorStep*i));

         };

        //get points from mesh of original object
        var points=new THREE.Points(object.geometry,pointMat);

        //Update colors
        points.geometry.colors=colors;
        points.geometry.colorsNeedUpdate=true;


        updatePosition();

        //Add points object to scene
        editor.addNoneObjectMesh(points);
   }

【问题讨论】:

标签: three.js


【解决方案1】:

我认为这在其他显卡上可能是可行的,但我的似乎不喜欢它。

理论上..如果您的材质颜色是白色..它应该乘以顶点颜色(这基本上就像使用顶点颜色一样),但是由于您没有指定黑色作为颜色,所以这不是问题)。

如果您的代码不能在您的计算机上运行(也不能在我的计算机上运行),您将不得不使用核...并创建一个新的 selectedPointsGeometry 和一个新的 selectedPointsMesh

从原始中获取几个顶点.. 复制它们.. 将它们放入 vertices 数组中.. 并运行更新方法(您必须每次都重新创建地理和网格.. 至少在我的 PC 上,我尝试调用每一个更新方法,不得不求助于重新创建)

注意咖啡脚本。 @anchor 是容器

  updateSelectedVertices: (vertices) ->
    if @selectedParticles
      @anchor.remove @selectedParticles

    @pointGeometry = new THREE.Geometry()

    @pointGeometry.vertices = vertices

    @selectedParticles = new (THREE.PointCloud)(
      @pointGeometry,
      @selectedPointMaterial
    )
    @pointGeometry.verticesNeedUpdate = true
    @pointGeometry.computeLineDistances()
    @selectedParticles.scale.copy @particles.scale
    @selectedParticles.sortParticles = true
    @anchor.add @selectedParticles

selectedPointMaterial 在别处定义。只需使用与未选择的点云不同的颜色(和不同的大小)。

IE.. 未选中的点云使用黑色和大小 5,选中的点云使用黄色和 10。

我的另一个网格称为@particles.. 我只需要复制比例即可。 (这是未选中的点云)

现在我选择的点显示为黄色

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-28
    • 1970-01-01
    相关资源
    最近更新 更多