Skip to content

Commit 4f99fd7

Browse files
authored
Use default projection matrix in visualizer third person mode (#26)
1 parent 9f04dfe commit 4f99fd7

File tree

2 files changed

+11
-2
lines changed

2 files changed

+11
-2
lines changed

python/cli/visualization/visualizer.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
os.environ['PYGAME_HIDE_SUPPORT_PROMPT'] = "hide"
1010
import pygame
1111

12-
from .visualizer_renderers.util import lookAt, getOrthographicProjectionMatrixOpenGL
12+
from .visualizer_renderers.util import lookAt, getPerspectiveProjectionMatrixOpenGL, getOrthographicProjectionMatrixOpenGL
1313
from .visualizer_renderers.renderers import *
1414

1515
class CameraMode(Enum):
@@ -363,7 +363,7 @@ def __render(self, cameraPose, width, height, image=None, colorFormat=None):
363363
target = cameraToWorld[0:3, 3]
364364
if self.cameraSmooth: eye, target = self.cameraSmooth.update(eye, target, self.shouldPause)
365365
viewMatrix = self.cameraControls3D.transformViewMatrix(lookAt(eye, target, up))
366-
projectionMatrix = cameraPose.camera.getProjectionMatrixOpenGL(near, far)
366+
projectionMatrix = getPerspectiveProjectionMatrixOpenGL(60.0, self.aspectRatio, near, far)
367367
elif self.cameraMode == CameraMode.TOP_VIEW:
368368
eye = cameraToWorld[0:3, 3] + np.array([0, 0, 15])
369369
target = cameraToWorld[0:3, 3]

python/cli/visualization/visualizer_renderers/util.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,3 +44,12 @@ def getOrthographicProjectionMatrixOpenGL(left, right, bottom, top, near, far):
4444
[0, 0, 2 / (far - near), -(far + near) / (far - near)],
4545
[0, 0, 0, 1]
4646
], dtype=np.float32)
47+
48+
def getPerspectiveProjectionMatrixOpenGL(fovy, aspect, near, far):
49+
f = 1.0 / np.tan(np.radians(fovy) / 2.0)
50+
return np.array([
51+
[f / aspect, 0, 0, 0],
52+
[0, -f, 0, 0],
53+
[0, 0, (far + near) / (far - near), -2.0 * far * near / (far - near)],
54+
[0, 0, 1, 0]
55+
], dtype=np.float32)

0 commit comments

Comments
 (0)