Skip to content
tristan edited this page Sep 19, 2018 · 1 revision

New Features

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.

Geometry instancing UI

true

Without geometry instancing and shadows.

true

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.

true true true

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.

true true

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.

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.

true

Previous without transition.

true

Current with transition.

See #6cfac1.

Refactors

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_FrontMaterial
gl_BackMaterial
gl_LightSource

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

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)
Clone this wiki locally