UPBGEĀ Documentation

0.2.3

https://i.imgur.com/dcPufM6.png

Object activity culling

Object activity such as physics or logic can be suspended depending on the distance between the object and the closest camera thanks to UI options:

https://i.imgur.com/mekoIkr.png

These options determine what kind of culling to proceed and the distance to cull. They are also found in python API under names:

KX_GameObject.logicCulling
KX_GameObject.physicsCulling
KX_GameObject.logicCullingRadius
KX_GameObject.physicsCullingRadius


Also the user can choose which camera are implied in distance computing or choose if a scene enable activity culling. These option as the previous ones are both in UI and python:

https://i.imgur.com/a7IIH5K.png


https://i.imgur.com/SLm0WTT.png

KX_Camera.activityCulling
KX_Scene.activityCulling


See also: f9d7e24


Object collision test

It's now possible to test if two objects are colliding without skim all the collisions of an object through a callback. To do so the user have to call the function:

KX_GameObject.collide(otherObject)


This function return a pair tuple, if no collision happened between the objects, the pair is (False, None), else the first element of the pair is True and the second a KX_CollisionContactPoint similar to the one passed to collision callback function.

See also: ed9c14a


Camera custom viewport UI

The user is able to specify a custom viewport for camera using a subset of the full viewport. This viewport is specified thanks to ratio of left, right, top and bottom edge of the full viewport. The UI in camera panel is presented as follow:

https://i.imgur.com/OEmndJ4.png

Example of two cameras defining a custom viewport in UI:
https://i.imgur.com/lILEcE5.png

See also: a09bc02


Character max slope

Character max slope is used to limit character motion when the slope of the ground is greater than a specific angle specified in the UI physics panel:

https://i.imgur.com/TQZmnPz.png

This value can also be set in python thanks to:
KX_CharacterWrapper.maxSlope


See also: d83c2fa


Clean up and refactors
- Improve vertex memory architecture. (see 5d84885)
- Use float array for vertex conversion. (see f874e52)
- Implement client/server update utilities. (see 094696e)
- Use KX_GameObject directly instead of KX_CullingNode. (see 5577969)
- Implement python fast keyword parsing. (see 3f9e0b5)
- Replace SetActiveAction by SetLastFrame in BL_DeformableGameObject. (see fe84de3)
- Avoid checking deformer skip transform every frame. (see 5193049)
- Use memory pool to allocate vertex data. (see a3e48cc)
- Implement PyObjectFrom with float array. (see 4326995)
- Move restrict animation update management in KX_Scene. (see 066db11)
- Rename BlenderBulletCharacterController by CcdCharacter. (see 9fc369b)
- Cleanup KX_CollisionEventManager.[h/cpp]. (see b6cd494)
- Refactor material attributes management. (see 60756bc)
- Replace math library from Moto to Mathfu. (see a30aef6)


Bugs fixed
- Fix KX_ObjectActuator.torque value affected by servo control. (see d45086e)
- Fix parent for physics object conversion. (see 067da32)
- Fix occlusion culling. (see 8166b30)
- Fix inertia form factor. (see ca95d10)
- Don't tag empty display array for bounding box update. (see 99a7910)
- Fix near/radar sensors. (see e5bd8a5)
- Fix contact point list for ghost objects. (see 3c43e14)
- Fix custom shader UV layers. (see 11214b7)
- Avoid normal recalculation for modifiers. (see d6c81a0)
- Fix duplication of action actuator. (see 462a705)
- Fix parent scaling. (see a536bbd)