Alternative Creation - Adalmaer/wcrs-map GitHub Wiki
Varianten zum Erzeugen von Systemen
Points mit Sprites
function createSystems_1() {
// create the particle variables
var particles = new THREE.Geometry();
// instantiate a loader
var loader = new THREE.TextureLoader();
//allow cross origin loading
loader.crossOrigin = '';
// Load Texture
var particleTexture = loader.load("http://threejs.org/examples/textures/sprites/ball.png");
/*var pMaterial = new THREE.PointsMaterial({
map: particleTexture,
transparent: true,
size: 300,
color: 0xCC0000
});*/
// Similar for quality 0 and 1
for (i = 0; i < systemList.systems.length; i++) {
// create a particle with position
var pX = parseInt(systemList.systems[i].systemX) + parseInt(systemList.systems[i].quadrantX) * 1500;
var pZ = parseInt(systemList.systems[i].systemY) + parseInt(systemList.systems[i].quadrantY) * 1500;
var pY = 0;
particle = new THREE.Vector3(pX, pY, pZ);
// add it to the geometry
particles.vertices.push(particle);
var label = makeTextSprite(systemList.systems[i].systemName, pX, pY, pZ);
systemGroup.add(label);
}
// create the particle system
var particleSystem = new THREE.Points(
particles,
factionMaterials[systemList.systems[i].factionId]);
//pMaterial);
// add it to the scene
systemGroup.add(particleSystem);
}
Merged Meshes
function createSystems_2() {
var total = new THREE.Geometry();
// Uses sphere geometry
var radius = 50;
var segments = 24;
var rings = segments;
// create the sphere's material
var sphereMaterial = new THREE.MeshLambertMaterial({
color: 0xCC0000
});
// Create system spheres
for (i = 0; i < systemList.systems.length; i++) {
// create a new mesh with
// sphere geometry - we will cover
// the sphereMaterial next!
var sphere = new THREE.Mesh(
new THREE.SphereGeometry(
radius,
segments,
rings),
sphereMaterial);
var pX = (parseInt(systemList.systems[i].systemX) + parseInt(systemList.systems[i].quadrantX-1)*30) * 50;
var pZ = (parseInt(systemList.systems[i].systemY) + parseInt(systemList.systems[i].quadrantY-1)*30) * 50;
var pY = 0;
sphere.position.x = pX;
sphere.position.z = pZ;
sphere.position.y = pY;
// add the sphere to the scene
sphere.updateMatrix();
total.merge(sphere.geometry, sphere.matrix);
var label = makeTextSprite(systemList.systems[i].systemName, pX, pY + 75, pZ,{spritescale:200});
systemGroup.add(label);
}
var mesh = new THREE.Mesh(total, new THREE.MeshLambertMaterial({
color: 0xCC0000
}))
systemGroup.add(mesh);
}
Vollständig mit einzelnen Sphären
function createSystems_3() {
var group = new THREE.Object3D(); //create an empty container
// Uses sphere geometry
var radius = 50;
var segments = 24;
var rings = segments;
// create the sphere's material
var sphereMaterial = new THREE.MeshLambertMaterial({
color: 0xCC0000
});
// Create system spheres
for (i = 0; i < systemList.systems.length; i++) {
// create a new mesh with
// sphere geometry - we will cover
// the sphereMaterial next!
var sphere = new THREE.Mesh(
new THREE.SphereGeometry(
radius,
segments,
rings),
sphereMaterial);
var pX = (parseInt(systemList.systems[i].systemX) + parseInt(systemList.systems[i].quadrantX-1)*30) * 50;
var pZ = (parseInt(systemList.systems[i].systemY) + parseInt(systemList.systems[i].quadrantY-1)*30) * 50;
var pY = 0;
sphere.position.x = pX;
sphere.position.z = pZ;
sphere.position.y = pY;
// add the sphere to the scene
systemGroup.add(sphere);
var label = makeTextSprite(systemList.systems[i].systemName, pX, pY + 75, pZ,{spritescale:200});
systemGroup.add(label);
}
//scene.add(group);
}