浏览代码

Fix for PCD Loader to display proper RGB values

This fixes #12207 to ensure the right color values are displayed. This fixes both ascii and binary data file renderings.
Babatunde Ogunfemi 6 年之前
父节点
当前提交
6f41c43af2
共有 1 个文件被更改,包括 8 次插入8 次删除
  1. 8 8
      examples/js/loaders/PCDLoader.js

+ 8 - 8
examples/js/loaders/PCDLoader.js

@@ -205,11 +205,11 @@ THREE.PCDLoader.prototype = {
 
 				if ( offset.rgb !== undefined ) {
 
-					var c = new Float32Array( [ parseFloat( line[ offset.rgb ] ) ] );
-					var dataview = new DataView( c.buffer, 0 );
-					color.push( dataview.getUint8( 0 ) / 255.0 );
-					color.push( dataview.getUint8( 1 ) / 255.0 );
-					color.push( dataview.getUint8( 2 ) / 255.0 );
+					var rgb = parseFloat( line[ offset.rgb ] );
+					var r = ( rgb >> 16 ) & 0x0000ff;
+					var g = ( rgb >> 8 ) & 0x0000ff;
+					var b = ( rgb >> 0 ) & 0x0000ff;
+					color.push( r / 255, g / 255, b / 255 );
 
 				}
 
@@ -251,9 +251,9 @@ THREE.PCDLoader.prototype = {
 
 				if ( offset.rgb !== undefined ) {
 
-					color.push( dataview.getUint8( row + offset.rgb + 0 ) / 255.0 );
-					color.push( dataview.getUint8( row + offset.rgb + 1 ) / 255.0 );
 					color.push( dataview.getUint8( row + offset.rgb + 2 ) / 255.0 );
+					color.push( dataview.getUint8( row + offset.rgb + 1 ) / 255.0 );
+					color.push( dataview.getUint8( row + offset.rgb + 0 ) / 255.0 );
 
 				}
 
@@ -285,7 +285,7 @@ THREE.PCDLoader.prototype = {
 
 		if ( color.length > 0 ) {
 
-			material.vertexColors = true;
+			material.vertexColors = THREE.VertexColors;
 
 		} else {