优化:太阳光初始化参数和太阳光界面数据显示

fix_light_type
ChenX 3 years ago
parent 29959cbc21
commit 75dde40728

@ -102,6 +102,8 @@ export class Database
this.idIndex = 80; this.idIndex = 80;
this.AmbientLight = new AmbientLight(); this.AmbientLight = new AmbientLight();
this.SunLight = new DirectionalLight(); this.SunLight = new DirectionalLight();
this.SunLight.OCSNoClone.setPosition(4000, -4000, 4000);
this.HemisphereLight = new HemisphereLight(); this.HemisphereLight = new HemisphereLight();
this.SunLight.Visible = true; this.SunLight.Visible = true;
this.HemisphereLight.Visible = true; this.HemisphereLight.Visible = true;

@ -116,7 +116,9 @@ export class DirectionalLight extends Light
helper.matrix = light.matrix; helper.matrix = light.matrix;
helper.lightPlane.lookAt(this._Target); helper.lightPlane.lookAt(this._Target);
helper.targetLine.lookAt(this._Target); helper.targetLine.lookAt(this._Target);
helper.targetLine.scale.z = this._Target.distanceTo(this.Position); let dist = this._Target.distanceTo(this.Position);
helper.targetLine.scale.set(dist, dist, dist);
helper.targetLine.updateMatrix();
} }
} }

@ -60,11 +60,11 @@ export class SunLightStore
this.sunLightColor = `#${light.Color.getHexString()}`; this.sunLightColor = `#${light.Color.getHexString()}`;
let rotateV = light.Position.sub(light.Target).normalize(); let rotateV = light.Position.sub(light.Target).normalize();
let theta = Math.atan2(rotateV.y, rotateV.x) * MathUtils.RAD2DEG;//旋转 let theta = Math.atan2(rotateV.y, rotateV.x) * MathUtils.RAD2DEG;//旋转
if (theta < 0) theta += 360; if (theta < 0) theta += 360;
let phi = Math.asin(rotateV.z) * MathUtils.RAD2DEG;//抬头 let phi = Math.asin(rotateV.z) * MathUtils.RAD2DEG;//抬头
if (phi < 0) phi = 180 - phi;
this.sunLightElevationDeg = Math.round(phi); this.sunLightElevationDeg = Math.round(phi);
this.sunLightRotateDeg = Math.round(theta); this.sunLightRotateDeg = Math.round(theta);
} }

Loading…
Cancel
Save