<h5 dir="auto">Description of the problem</h5>
<p dir="auto">I have created some points using the following code.</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="    let geometry = new THREE.Geometry();
    geometry.vertices.push(new THREE.Vector3( 5, 5, 0));
    geometry.vertices.push(new THREE.Vector3( 10, 5, 0));
    geometry.vertices.push(new THREE.Vector3( 15, 5, 0));

    geometry.colors.push(new THREE.Color(1, 0, 0));
    geometry.colors.push(new THREE.Color(0, 1, 0));
    geometry.colors.push(new THREE.Color(0, 0, 1));

    let material = new THREE.PointsMaterial({size: 2,  alphaTest: 0.5, vertexColors: THREE.VertexColors});
    let mesh =  new THREE.Points(geometry, material);"><pre class="notranslate"><code class="notranslate">    let geometry = new THREE.Geometry();
    geometry.vertices.push(new THREE.Vector3( 5, 5, 0));
    geometry.vertices.push(new THREE.Vector3( 10, 5, 0));
    geometry.vertices.push(new THREE.Vector3( 15, 5, 0));

    geometry.colors.push(new THREE.Color(1, 0, 0));
    geometry.colors.push(new THREE.Color(0, 1, 0));
    geometry.colors.push(new THREE.Color(0, 0, 1));

    let material = new THREE.PointsMaterial({size: 2,  alphaTest: 0.5, vertexColors: THREE.VertexColors});
    let mesh =  new THREE.Points(geometry, material);
</code></pre></div>
<p dir="auto">Now when i want to convert it using <code class="notranslate">mesh.toJSON()</code> the resulting json doesn't contain the colors for the vertices.</p>
<p dir="auto">Here is the working <a href="http://jsfiddle.net/hp5bhf3y/3/" rel="nofollow">jsfiddle</a>.</p>
<h5 dir="auto">Three.js version</h5>
<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> Dev</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> r92</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> ...</li>
</ul>
<p dir="auto">The <code class="notranslate">Geometry</code> for a <code class="notranslate">PointCloud</code> object has no <code class="notranslate">faces</code> (it is an empty array). However, <code class="notranslate">JSONLoader.prototype.parse</code> only parses color referenced through the faces. The bit that loops over the vertices ignores color: <a href="https://github.com/mrdoob/three.js/blob/master/src/loaders/JSONLoader.js#L182">https://github.com/mrdoob/three.js/blob/master/src/loaders/JSONLoader.js#L182</a></p>
<p dir="auto">The consequence of the bug is that <code class="notranslate">PointCloud</code> objects in a JSON file cannot define vertex colors. The following link shows that the JSON defines vertex colors, but the point cloud is rendered black.<br>
<a href="http://jsfiddle.net/J7zp4/166/" rel="nofollow">http://jsfiddle.net/J7zp4/166/</a><br>
The next link shows the point cloud rendered with the defined colors. The only difference is line 29 and 30 have been uncommented.<br>
<a href="http://jsfiddle.net/J7zp4/167/" rel="nofollow">http://jsfiddle.net/J7zp4/167/</a></p>
<p dir="auto">So I think that the JSONLoader should check for vertex colors around line 182 (linked above).</p>