BGE: Allow access to light shadow settings with python

This patch adds a new API which allow us to access light shadow settings from python. The new API can be used to write custom GLSL materials with shadows.

Reviewers: brecht, kupoman, agoose77, panzergame, campbellbarton, moguri, hg1

Reviewed By: agoose77, panzergame, campbellbarton, moguri, hg1

Projects: #game_engine

Differential Revision: https://developer.blender.org/D1690
This commit is contained in:
Ulysse Martin
2016-01-17 18:41:37 +01:00
committed by Thomas Szepe
parent a5c419f4cc
commit c4c2bd1350
9 changed files with 205 additions and 0 deletions

View File

@@ -48,6 +48,78 @@ base class --- :class:`KX_GameObject`
:type: float
.. attribute:: shadowClipStart
The shadowmap clip start, below which objects will not generate shadows.
:type: float (read only)
.. attribute:: shadowClipEnd
The shadowmap clip end, beyond which objects will not generate shadows.
:type: float (read only)
..attribute:: shadowFrustumSize
Size of the frustum used for creating the shadowmap.
:type: float (read only)
..attribute:: shadowBindId
The OpenGL shadow texture bind number/id.
:type: int (read only)
..attribute:: shadowMapType
The shadow shadow map type (0 -> Simple; 1 -> Variance)
:type: int (read only)
..attribute:: shadowBias
The shadow buffer sampling bias.
:type: float (read only)
..attribute:: shadowBleedBias
The bias for reducing light-bleed on variance shadow maps.
:type: float (read only)
..attribute:: useShadow
Returns True if the light has Shadow option activated, else returns False.
:type: boolean (read only)
.. attribute:: shadowColor
The color of this light shadows. Black = (0.0, 0.0, 0.0), White = (1.0, 1.0, 1.0).
:type: :class:`mathutils.Color` (read only)
.. attribute:: shadowMatrix
Matrix that converts a vector in camera space to shadow buffer depth space.
Computed as:
mat4_perspective_to_depth * mat4_lamp_to_perspective * mat4_world_to_lamp * mat4_cam_to_world.
mat4_perspective_to_depth is a fixed matrix defined as follow:
0.5 0.0 0.0 0.5
0.0 0.5 0.0 0.5
0.0 0.0 0.5 0.5
0.0 0.0 0.0 1.0
Note:
There is one matrix of that type per lamp casting shadow in the scene.
:type: Matrix4x4 (read only)
.. attribute:: distance
The maximum distance this light can illuminate. (SPOT and NORMAL lights only).