spotlight

This commit is contained in:
ericrius1 2015-11-03 13:26:39 -08:00
parent 443df042a4
commit 58587a5780

View file

@ -1,16 +1,16 @@
var modelURL = "https://s3.amazonaws.com/hifi-public/eric/models/helicopter.fbx"; var modelURL = "https://s3.amazonaws.com/hifi-public/eric/models/helicopter.fbx?v3";
var center = Vec3.sum(MyAvatar.position, Vec3.multiply(3, Quat.getFront(Camera.getOrientation()))); var center = Vec3.sum(MyAvatar.position, Vec3.multiply(2, Quat.getFront(Camera.getOrientation())));
// These constants define the Spotlight position and orientation relative to the model // These constants define the Spotlight position and orientation relative to the model
var MODEL_LIGHT_POSITION = { var MODEL_LIGHT_POSITION = {
x: -2, x: 2,
y: 0, y: 0,
z: 0 z: -5
}; };
var MODEL_LIGHT_ROTATION = Quat.angleAxis(-90, { var MODEL_LIGHT_ROTATION = Quat.angleAxis(0, {
x: 0, x: 0,
y: 1, y: 0,
z: 0 z: 1
}); });
// Evaluate the world light entity positions and orientations from the model ones // Evaluate the world light entity positions and orientations from the model ones
@ -27,31 +27,46 @@ var helicopter = Entities.addEntity({
type: "Model", type: "Model",
name: "Helicopter", name: "Helicopter",
modelURL: modelURL, modelURL: modelURL,
position: center dimensions: {x: 12.13, y: 3.14, z: 9.92},
// rotation: Quat.fromPitchYawRollDegrees(0, -90, 0),
position: center,
collisionsWillMove: true
}); });
var modelProperties = Entities.getEntityProperties(helicopter, ['position', 'rotation']);
var lightTransform = evalLightWorldTransform(modelProperties.position, modelProperties.rotation);
var spotlight = Entities.addEntity({ var spotlight = Entities.addEntity({
type: "Light", type: "Light",
name: "helicopter light", name: "helicopter light",
position: lightTransform.p,
rotation: lightTransform.q,
intensity: 2, intensity: 2,
color: {red: 200, green: 200, blue: 255}, color: {
intensity: 2, red: 200,
exponent: 0.3, green: 200,
cutoff: 20 blue: 255
},
intensity: 10,
dimensions: {
x: 2,
y: 2,
z: 200
},
exponent: .1,
cutoff: 10,
isSpotlight: true
}); });
var debugLight = Entities.addEntity({ var debugLight = Entities.addEntity({
type: "Box", type: "Box",
position: lightTransform.p, dimensions: {
rotation: lightTransform.q, x: .1,
dimensions: {x: 4, y: 1, z: 1}, y: .1,
color: {red: 200, green: 200, blue: 0} z: .3
},
color: {
red: 200,
green: 200,
blue: 0
}
}); });
function cleanup() { function cleanup() {
@ -61,4 +76,19 @@ function cleanup() {
} }
function update() {
var modelProperties = Entities.getEntityProperties(helicopter, ['position', 'rotation']);
var lightTransform = evalLightWorldTransform(modelProperties.position, modelProperties.rotation);
Entities.editEntity(spotlight, {
position: lightTransform.p,
// rotation: lightTransform.q
});
Entities.editEntity(debugLight, {
position: lightTransform.p,
rotation: lightTransform.q
});
}
Script.update.connect(update);
Script.scriptEnding.connect(cleanup); Script.scriptEnding.connect(cleanup);