UPBGEĀ Documentation

0.0.4

Release notes UPBGE 0.0.4

Geometry instancing
The geometry instancing was finally implemented. It allow you to draw a thousand of little instances faster than regular draw system. The performance average given is 70% faster. But geometry instancing doesn't like draw big meshes (more than 100-200 polys). To active geometry instancing you have to check an option in material panel, subpanel "Option" "Geometry Instancing".
Because of the use of a special vertex shader, the custom shaders can't use the geometry instancing, it's just disabled.

http://i.imgur.com/BHcZMv1.png

http://i.imgur.com/9DSCfqS.png
Without geometry instancing and shadows.

http://i.imgur.com/cVBQ5Yg.png
With geometry instancing and shadows.
The difference is about 75% faster here.

See c166ae.

Wire materials
Wire materials are now drawed with edge respect. Previosuly it was broken when the draw mode swithed to triangles instead of quads. It gives us a nice wire draw of a cone or sphere without split faces.

http://i.imgur.com/cODovLQ.png
http://i.imgur.com/FxOQR4J.png
http://i.imgur.com/AsykFf6.png
There you can see the difference between BF BGE (first), early UPBGE (second) and current UPBGE (third).

See 372760.

Sky background render
The sky render as viewport is now implemented in the game engine. Everything is supported as it reuses the viewport code. The overlay/background scene's background are treated draw the sky only for the first scene. The user can also disable the sky background render by uncheck the option "World Background" in Render panel, subpanel "Shading". This option is disabled for old files (to respect old render), but enabled as default for new files.

http://i.imgur.com/sDR652z.png
http://i.imgur.com/ImTSLJU.png
Sky render with cube map texture.

See b89ff6, da69af, e3b9e8 and be7d36.

UPBGE version in bge.app
As we can access to blender version, the bge.app module now exposes the UPBGE version and subversion.
The python API is:
bge.app.upbge_version
bge.app.upbge_version_string

Which for the moment gives:
(0, 0, 4)
0.0 (sub 4)

See df5c9b.

Remove multitexturing render
The multitexturing was old and not too useful. The time to remove it comes. By removing this rendering mode it removed a lot of UI options, the viewport shading mode is removed. Other than than no more UI changement. For the python API, some function are now deprecated:
- bge.render.setMaterialMode(mode)
- bge.render.getMaterialMode()
- bge.render.KX_TEXFACE_MATERIAL
- bge.render.KX_BLENDER_MULTITEX_MATERIAL
- bge.render.KX_BLENDER_GLSL_MATERIAL

Even if multitexturing is removed, builtin OpenGL shader variables are still updated for custom shaders. e.g:
- gl_Color
- gl_[Front/Back]Material
- gl_LightSource

See 4ee917, 92b16d, 452ad5, aa0cf9, bed723, 1f42ea, 74072c.

Use parallax transition for edge discarding
When the parallax transition was implemented we forgot to use it to discard edge too. This is now fixed.

http://i.imgur.com/8nVuVNs.png
Previous without transition.
http://i.imgur.com/sRAfALV.png
Current with transition.

See 6cfac1.

Bugs fixed
- Fix zombie object for parented group object in hidden layer. (see c6faae)
- Fix color in wireframe render. (see 6f1c59)
- Fix texture size for parallax mapping. (see a54ab8, 95d6e4)
- Fix python representation of BL_Shader when vertProg or fragProg are NULL. (see d23d66)
- Dissalow shadow buffer render when the lamp is hidden. (see c7b6e0)