Blender Git Loki

Git Commits -> Revision 9425a8f

Revision 9425a8f by Dalai Felinto (master)
April 21, 2015, 20:41 (GMT)
BGE: scene.pre_draw_setup[] callback

This callback allows the user to change the camera data right before the
rendering calculations.

scene.pre_draw[] is not enough here, because if you want to change the
camera matrices (projection/modelview) the culling test is done before
that (after pre_draw_setup[] though).

Reviewers: moguri, campbellbarton

Differential Revision: https://developer.blender.org/D1251

Python sample code using this. The sample scene would need a default
camera (not used for rendering), a dummy camera ('Camera.VR'), and two
cameras ('Camera.Left', 'Camera.Right') that will be used for the actual
rendering.

```
import bge

def callback():
scene = bge.logic.getCurrentScene()
objects = scene.objects

vr_camera = objects.get('Camera.VR')

if bge.render.getStereoEye() == bge.render.LEFT_EYE:
camera = objects.get('Camera.Left')
else:
camera = objects.get('Camera.Right')

vr_camera.worldOrientation = camera.worldOrientation
vr_camera.worldPosition = camera.worldPosition

def init():
scene = bge.logic.getCurrentScene()
main_camera = scene.active_camera
main_camera.useViewport = True

scene.pre_draw_setup.append(callback)

objects = scene.objects
vr_camera = objects.get('Camera.VR')
vr_camera.useViewport = True
vr_camera.setViewport(
0,
0,
bge.render.getWindowWidth(),
bge.render.getWindowHeight() )
```

Commit Details:

Full Hash: 9425a8ff381b51e519e19d9bd7484cf095a78c30
Parent Commit: f2956d5
Lines Changed: +43, -0

4 Modified Paths:

/doc/python_api/rst/bge_types/bge.types.KX_Scene.rst (+6, -0) (Diff)
/source/gameengine/Ketsji/KX_KetsjiEngine.cpp (+4, -0) (Diff)
/source/gameengine/Ketsji/KX_Scene.cpp (+29, -0) (Diff)
/source/gameengine/Ketsji/KX_Scene.h (+4, -0) (Diff)
Tehnyt: Miika HämäläinenViimeksi päivitetty: 07.11.2014 14:18MiikaH:n Sivut a.k.a. MiikaHweb | 2003-2021