28 lines
733 B
Python
28 lines
733 B
Python
import math
|
|
from OpenGL.GL import *
|
|
from OpenGL.GLU import *
|
|
from dusk.defs import defs
|
|
|
|
pixelsPerUnit = float(defs.get('RPG_CAMERA_PIXELS_PER_UNIT'))
|
|
yOffset = float(defs.get('RPG_CAMERA_Z_OFFSET'))
|
|
fov = float(defs.get('RPG_CAMERA_FOV'))
|
|
scale = 8.0
|
|
|
|
def setupCamera(vw, vh):
|
|
z = (vh / 2.0) / (
|
|
(pixelsPerUnit * scale) * math.tan(math.radians(fov / 2.0))
|
|
)
|
|
lookAt = ( 0, 0, 0 )
|
|
aspectRatio = vw / vh
|
|
position = lookAt[0], lookAt[1] - yOffset, lookAt[2] + z
|
|
|
|
glMatrixMode(GL_PROJECTION)
|
|
glLoadIdentity()
|
|
gluPerspective(fov, aspectRatio, 0.1, 1000.0)
|
|
glMatrixMode(GL_MODELVIEW)
|
|
glLoadIdentity()
|
|
gluLookAt(
|
|
position[0], position[1], position[2],
|
|
lookAt[0], lookAt[1], lookAt[2],
|
|
0.0, 1.0, 0.0
|
|
) |