浏览代码

Simplified webgl_camera_logarithmicdepthbuffer example.

Mr.doob 10 年之前
父节点
当前提交
1f54435044
共有 1 个文件被更改,包括 13 次插入14 次删除
  1. 13 14
      examples/webgl_camera_logarithmicdepthbuffer.html

+ 13 - 14
examples/webgl_camera_logarithmicdepthbuffer.html

@@ -122,9 +122,9 @@
 				{ size: 3400000,       scale: 1.0,  label: "moon-sized (3,400 Km)", scale: 1 },
 				{ size: 12000000,      scale: 1.0,  label: "planet-sized (12,000 km)", scale: 1 },
 				{ size: 1400000000,    scale: 1.0,  label: "sun-sized (1,400,000 km)", scale: 1 },
- 				{ size: 7.47e12,       scale: 1.0,  label: "solar system-sized (50Au)", scale: 1 },
-   				{ size: 9.4605284e15,  scale: 1.0,  label: "gargantuan (1 light year)", scale: 1 },
-   				{ size: 3.08567758e16, scale: 1.0,  label: "ludicrous (1 parsec)", scale: 1 },
+				{ size: 7.47e12,       scale: 1.0,  label: "solar system-sized (50Au)", scale: 1 },
+				{ size: 9.4605284e15,  scale: 1.0,  label: "gargantuan (1 light year)", scale: 1 },
+				{ size: 3.08567758e16, scale: 1.0,  label: "ludicrous (1 parsec)", scale: 1 },
 				{ size: 1e19,          scale: 1.0,  label: "mind boggling (1000 light years)", scale: 1 },
 				{ size: 1.135e21,      scale: 1.0,  label: "galaxy-sized (120,000 light years)", scale: 1 },
 				{ size: 9.46e23,       scale: 1.0,  label: "... (100,000,000 light years)", scale: 1 }
@@ -183,6 +183,8 @@
 				var colorskip = ['black', 'antiquewhite', 'bisque', 'beige', 'blanchedalmond', 'darkblue', 'darkcyan'];
 				var colorkeys = Object.keys( THREE.ColorKeywords );
 
+				var geometry = new THREE.SphereBufferGeometry(0.5, 24, 12);
+
 				for (var i = 0; i < labeldata.length; i++) {
 					var scale = labeldata[i].scale || 1;
 					var labelgeo = new THREE.TextGeometry( labeldata[i].label, {
@@ -204,24 +206,21 @@
 
 					var material = new THREE.MeshPhongMaterial( materialargs );
 
+					var group = new THREE.Group();
+					group.position.z = -labeldata[i].size * scale;
+					scene.add(group);
+
 					var textmesh = new THREE.Mesh( labelgeo, material );
 					textmesh.scale.set(scale, scale, scale);
 					textmesh.position.z = -labeldata[i].size * scale;
 					textmesh.position.y = labeldata[i].size / 4 * scale;
-					textmesh.updateMatrix();
+					group.add(textmesh);
 
-					var dotmesh = new THREE.Mesh(new THREE.SphereGeometry(labeldata[i].size * scale / 2, 24, 12), material);
+					var dotmesh = new THREE.Mesh(geometry, material);
 					dotmesh.position.y = -labeldata[i].size / 4 * scale;
-					dotmesh.updateMatrix();
-
-					var merged = new THREE.Geometry();
-					merged.merge( textmesh.geometry, textmesh.matrix );
-					merged.merge( dotmesh.geometry, dotmesh.matrix );
-
-					var mesh = new THREE.Mesh(merged, material);
-					mesh.position.z = -labeldata[i].size * 1 * scale;
+					dotmesh.scale.multiplyScalar(labeldata[i].size * scale);
+					group.add(dotmesh);
 
-					scene.add(mesh);
 				}
 
 				var renderer = new THREE.WebGLRenderer({ antialias: true, logarithmicDepthBuffer: logDepthBuf });