UPBGEĀ Documentation



Libload scene target

The user is now able to specify the scene merging a libloaded scene, this scene is the argument scene in function LibLoad.
For example:

bge.logic.LibLoad("//file.blend", "Scene", scene="SceneToMerge")

If this new argument isn't specified or None, the current scene is used instead as the previous behaviour of this function.

See also: 18d5bb1 and bge.logic.LibLoad.

Contact point rolling friction

The combined rolling friction (product of the two bodies rolling friction) can be acceded in KX_CollisionContactPoint.combinedRollingFriction

See also: 65ad95b and bge.types.KX_CollisionContactPoint.combinedRollingFriction.

Character velocity, fall and jump speed

The user can now specify the fall and jump speed in python:

In the same time, it's now possible to apply a velocity to a character during a given time thanks to:
KX_CharacterWrapper.setVelocity(velocity, time, local)

To interrupt the velocity the user can set a velocity with empty time or calling a reset function:

This function also disable the walk direction.

See also: 688c3a2, 58de0a3, 5dd7fc2 and bge.types.KX_CharacterWrapper.

GLSL editor highlighting

The editor now highlight missing function for GLSL scripts, these functions are:

See also: 330e7a4.

Vehicle constraint creation

It's now possible to create a vehicle constraint without the parameters needed for all other types of constraint. The following function permit it:

This function return an empty KX_VehicleWrapper linked to the chassis object used for physics id.

See also: 3341047 and bge.constraints.createVehicle.

Object unique gravity

The user can specify a gravity vector per object thanks to the attribute:

See also: 057b2cb and bge.types.KX_GameObject.gravity.

2D Filter cube map support

The cube map texture are now usable for 2d filters calling the function KX_2DFilter.setCubeMap with the same argument as KX_2DFilter.setTexture. In shader side the corresponding samplerCube will be set before rendering the 2d filter.
KX_2DFilter.setCubeMap(0, bindCode, "cubeTex")


See also: b8153f2 and bge.types.KX_2DFilter.setCubeMap.

Parallax material node

The parallax is no longer limited to the blender internal material and texture setting, it can be applied in a material node tree thanks to the new parallax node. This node have similar options than the texture UI panel excepted the channel property which allow to select the texture channel used for parallax height, e.g the usage of a gray texture is possible.

Example of the node:


See also: 5d8cd9c.

PCF jittering shadow

PCF jittering is a technique to randomize the shadow sampling made in PCF to reduce sharpness. To use this technique the user have to select in UI the option PCF Jitter:


The side effect of this technique is the creation of a little noise.

See also: ca709a6.

Constraint breaking

Constraint breaking is a bullet 3d feature allowing break constraint when the impulse applied to the constraint is too high, when it happens the constraint is set inactive but not destructed.

This feature is implemented in UI and python API, first the user can set the impulse threshold in UI constraint sub panel or in python thanks to KX_ConstraintWrapper.breakingThreshold.


When the constraint is broken, the python attribute KX_ConstraintWrapper.enabled is set to False and the constraint doesn't interact with the objects linked to it, but it is still draw in physics debug mode.

To enable the constraint again the user can set the same attribute KX_ConstraintWrapper.enabled[mono] to [mono]True.

See also: e02e974 bge.types.KX_ConstraintWrapper.breakingThreshold and bge.types.KX_ConstraintWrapper.enabled.

Support mesh auto smooth

Auto smooth is an option to automatically split faces and so vertices normal when the faces angle is two high, the setting of the angle and the auto smooth option are set in mesh UI panel. These settings are now supported in game and produce same render than in viewport when the auto smooth is enabled.

Auto smooth example:

Here the meshes are identically but the right mesh enable auto smooth.

See also: 1028e0c.

Clean up and refactors
- Store shader attributes with pair index : type. (see 5c34883)
- Use KX_BlenderMaterial instead of RAS_IPolyMaterial in KX_Blender[Scene]Converter. (see a0aa88e)
- Implement range loop for CListValue. (see 4fdab9f)
- Remove mesh slot map in RAS_MeshMaterial. (see a31e011)
- Add utilities to convert bullet vector and matrices to moto. (see 5e9e083)
- Add gccfilter support for compiler messages. (see 70052ca)
- Remove extra sg node check and get world transform from node. (see 0d4ca63)
- Implement node dirty flag for multiple users. (see 2b06fad)
- Remove usage of MT_CmMatrix4x4. (see e56dc43)
- Reorder libraries linkage. (see ab41d31)
- Optimize update of matrix in RAS_MeshSlot rendering. (see 9864f03)
- Refactor deformer and display array usage in Rasterizer. (see a1f1210)
- Simplify bullet occlusion. (see a65557c)
- Remove influence of stereo rasterizer member in matrix compute. (see 8e4933f)

Bugs fixed
- Avoid redundant VBO update for deformers. (see e5a06ef)
- Fix variance shadow for spot. (see 164dda3)
- Fix screenshot of invalid framebuffer. (see 1538889)
- Fix crash with KX_2DFilter.setTexture (see 485afb0)
- Fix depth transprency meshes not sorted. (see a1c35a8)
- Fix shader used for all transparency material in shadow render. (see 4cc1ecb)
- Avoid sort polygons for shadow render. (see 4193569)
- Fix image tile animation. (see 3b9afe5)
- Restore framebuffer and renderbuffer in BGL. (see a88c654)
- Fix potential dynamic uniform for material specularity. (see 73c3843)
- Fix parallax and normal tangent. (see a60c590)
- Fix background color according to color management settings (see e8dab53)
- Fix python setUseExternalTime call. (see fa20294)
- Fix first frame timing gap. (see 09866ee)
- Remove SG_[D/Q]List for sensor and fix upper cast. (see 7737f70)
- Fix Texture mipmap with ImageRender. (see 0d5c77e)
- Don't render frame when logic step request exit. (see e54e339)