mirror of
https://github.com/openglobus/openglobus.git
synced 2025-12-08 19:25:27 +00:00
wip.8
This commit is contained in:
parent
87b08ea35e
commit
990aceed55
@ -30,10 +30,22 @@ class MyScene extends RenderNode {
|
|||||||
shininess: 1
|
shininess: 1
|
||||||
});
|
});
|
||||||
|
|
||||||
|
window.test = () => {
|
||||||
|
parentEntity.setPitch(0);
|
||||||
|
cube2.setPitch(0);
|
||||||
|
cube3.setPitch(0);
|
||||||
|
|
||||||
|
parentEntity.setYaw(0);
|
||||||
|
cube2.setYaw(0);
|
||||||
|
cube3.setYaw(0);
|
||||||
|
|
||||||
|
this.renderer.activeCamera.set(new Vec3(10.5, 0, 0), new Vec3(0, 0, 0), new Vec3(0, 1, 0));
|
||||||
|
}
|
||||||
|
|
||||||
let parentEntity = new Entity({
|
let parentEntity = new Entity({
|
||||||
cartesian: new Vec3(0, 0, 0),
|
cartesian: new Vec3(0, 0, 0),
|
||||||
independentPicking: true,
|
independentPicking: true,
|
||||||
yaw: 45 * Math.PI / 180,
|
//yaw: 45 * Math.PI / 180,
|
||||||
pitch: 45 * Math.PI / 180,
|
pitch: 45 * Math.PI / 180,
|
||||||
geoObject: {
|
geoObject: {
|
||||||
color: "rgb(90,90,90)",
|
color: "rgb(90,90,90)",
|
||||||
@ -47,7 +59,7 @@ class MyScene extends RenderNode {
|
|||||||
let cube2 = new Entity({
|
let cube2 = new Entity({
|
||||||
cartesian: new Vec3(5, 0, 5),
|
cartesian: new Vec3(5, 0, 5),
|
||||||
independentPicking: true,
|
independentPicking: true,
|
||||||
yaw: 45 * Math.PI / 180,
|
//yaw: 45 * Math.PI / 180,
|
||||||
pitch: 45 * Math.PI / 180,
|
pitch: 45 * Math.PI / 180,
|
||||||
geoObject: {
|
geoObject: {
|
||||||
color: "rgb(90,90,90)",
|
color: "rgb(90,90,90)",
|
||||||
@ -59,9 +71,9 @@ class MyScene extends RenderNode {
|
|||||||
});
|
});
|
||||||
|
|
||||||
let cube3 = new Entity({
|
let cube3 = new Entity({
|
||||||
cartesian: new Vec3(-1, 5, 1),
|
cartesian: new Vec3(-1, 3, 1),
|
||||||
independentPicking: true,
|
independentPicking: true,
|
||||||
yaw: 45 * Math.PI / 180,
|
//yaw: 45 * Math.PI / 180,
|
||||||
pitch: 45 * Math.PI / 180,
|
pitch: 45 * Math.PI / 180,
|
||||||
geoObject: {
|
geoObject: {
|
||||||
color: "rgb(90,90,90)",
|
color: "rgb(90,90,90)",
|
||||||
@ -78,7 +90,7 @@ class MyScene extends RenderNode {
|
|||||||
|
|
||||||
collection.addTo(this);
|
collection.addTo(this);
|
||||||
|
|
||||||
this.renderer.activeCamera.set(new Vec3(-10, 10, 10), new Vec3(0, 0, 0));
|
this.renderer.activeCamera.set(new Vec3(0, 10, 10), new Vec3(0, 0, 0));
|
||||||
this.renderer.activeCamera.isOrthographic = true;
|
this.renderer.activeCamera.isOrthographic = true;
|
||||||
|
|
||||||
this.renderer.activeCamera.update();
|
this.renderer.activeCamera.update();
|
||||||
|
|||||||
@ -1345,10 +1345,14 @@ class Renderer {
|
|||||||
|
|
||||||
let screenPos = new Vec4(nx * 2.0 - 1.0, ny * 2.0 - 1.0, depth * 2.0 - 1.0, 1.0);
|
let screenPos = new Vec4(nx * 2.0 - 1.0, ny * 2.0 - 1.0, depth * 2.0 - 1.0, 1.0);
|
||||||
let viewPosition = frustum.inverseProjectionMatrix.mulVec4(screenPos);
|
let viewPosition = frustum.inverseProjectionMatrix.mulVec4(screenPos);
|
||||||
let dir = (px as IBaseInputState).direction || camera.unproject(px.x, px.y);
|
let zView = -viewPosition.z / viewPosition.w;
|
||||||
dist = -(viewPosition.z / viewPosition.w) / dir.dot(camera.getForward());
|
|
||||||
|
|
||||||
return dist;
|
if (camera.isOrthographic) {
|
||||||
|
return zView;
|
||||||
|
}
|
||||||
|
|
||||||
|
let dir = (px as IBaseInputState).direction || camera.unproject(px.x, px.y);
|
||||||
|
return zView / dir.dot(camera.getForward());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user