提交 44f71782 编写于 作者: M Mr.doob

Code clean up.

上级 24e9fe96
......@@ -361,61 +361,74 @@ THREE.SceneLoader.prototype = {
// lights
// lights
} else if (objJSON.type === "PointLight" || objJSON.type === "AmbientLight" || objJSON.type === "SpotLight" || objJSON.type === "HemisphereLight" || objJSON.type === "AreaLight") {
function rotate(x, y, z, vector3) {
var target = new THREE.Matrix4(
vector3[0], 0, 0, 0
, vector3[1], 0, 0, 0
, vector3[2], 0, 0, 0
, 0 , 0, 0, 0
);
var rotateX = new THREE.Matrix4(),
rotateY = new THREE.Matrix4(),
rotateZ = new THREE.Matrix4();
rotateX.makeRotationX(x);
rotateY.makeRotationY(y);
rotateZ.makeRotationZ(z);
var rotateM = new THREE.Matrix4();
rotateM.multiplyMatrices(rotateX, rotateY, rotateZ);
target.multiplyMatrices(rotateM, target);
return target;
}
var intensity = objJSON.intensity;
var color = objJSON.color;
var distance = objJSON.distance;
var position = objJSON.position;
var rotation = objJSON.rotation;
if (objJSON.type === "PointLight") {
light = new THREE.PointLight(color, intensity, distance);
light.position.fromArray(position);
} else if (objJSON.type === "SpotLight") {
light = new THREE.SpotLight(color, intensity, distance, 1);
light.angle = objJSON.angle;
light.position.fromArray(position);
var target = rotate(rotation[0], rotation[1], rotation[2],
[position[0], position[1] - distance, position[2]]);
light.target.position = new THREE.Vector3(target.elements[0], target.elements[1], target.elements[2]);
} else if (objJSON.type === "AmbientLight") {
light = new THREE.AmbientLight(color);
} else if (objJSON.type === "HemisphereLight") {
light = new THREE.DirectionalLight(color, intensity, distance);
var target = rotate(rotation[0], rotation[1], rotation[2],
[position[0], position[1] - distance, position[2]]);
light.target.position = new THREE.Vector3(target.elements[0], target.elements[1], target.elements[2]);
} else if (objJSON.type === "AreaLight") {
light = new THREE.AreaLight(color, intensity);
light.position.set(position[0], position[1], position[2]);
light.width = objJSON.size;
light.height = objJSON.size_y;
}
parent.add( light );
light.name = objID;
result.lights[ objID ] = light;
result.objects[ objID ] = light;
// cameras
} else if (objJSON.type === "PointLight" || objJSON.type === "AmbientLight" || objJSON.type === "SpotLight" || objJSON.type === "HemisphereLight" || objJSON.type === "AreaLight") {
function rotate(x, y, z, vector3) {
var target = new THREE.Matrix4(
vector3[0], 0, 0, 0,
vector3[1], 0, 0, 0,
vector3[2], 0, 0, 0,
0 , 0, 0, 0
);
var rotateX = new THREE.Matrix4();
var rotateY = new THREE.Matrix4(),
var rotateZ = new THREE.Matrix4();
rotateX.makeRotationX(x);
rotateY.makeRotationY(y);
rotateZ.makeRotationZ(z);
var rotateM = new THREE.Matrix4();
rotateM.multiplyMatrices(rotateX, rotateY, rotateZ);
target.multiplyMatrices(rotateM, target);
return target;
}
var intensity = objJSON.intensity;
var color = objJSON.color;
var distance = objJSON.distance;
var position = objJSON.position;
var rotation = objJSON.rotation;
if (objJSON.type === "PointLight") {
light = new THREE.PointLight(color, intensity, distance);
light.position.fromArray(position);
} else if (objJSON.type === "SpotLight") {
light = new THREE.SpotLight(color, intensity, distance, 1);
light.angle = objJSON.angle;
light.position.fromArray(position);
var target = rotate(rotation[0], rotation[1], rotation[2],
[position[0], position[1] - distance, position[2]]);
light.target.position = new THREE.Vector3(target.elements[0], target.elements[1], target.elements[2]);
} else if (objJSON.type === "AmbientLight") {
light = new THREE.AmbientLight(color);
} else if (objJSON.type === "HemisphereLight") {
light = new THREE.DirectionalLight(color, intensity, distance);
var target = rotate(rotation[0], rotation[1], rotation[2],
[position[0], position[1] - distance, position[2]]);
light.target.position = new THREE.Vector3(target.elements[0], target.elements[1], target.elements[2]);
} else if (objJSON.type === "AreaLight") {
light = new THREE.AreaLight(color, intensity);
light.position.set(position[0], position[1], position[2]);
light.width = objJSON.size;
light.height = objJSON.size_y;
}
parent.add( light );
light.name = objID;
result.lights[ objID ] = light;
result.objects[ objID ] = light;
// cameras
} else if ( objJSON.type === "PerspectiveCamera" || objJSON.type === "OrthographicCamera" ) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册