Summer news and a look forward.

380 views
Skip to first unread message

Jukka Jylänki

unread,
Jun 11, 2012, 9:14:31 AM6/11/12
to realxt...@googlegroups.com
Hello all,

it's a good time for a status update, a few weeks before retiring for
holidays.

- If you did not catch it already from Toni's earlier mail, realXtend
future goals and expectations were drafted in a roadmap. Find it here:
http://tundra.ludocraft.com/files/RexRoadmap-15052012.pdf

Roughly put, some of the major issues that stand are

1. Performance pain: Issues with rendering performance limit our
possibilities.
2. Platform coverage pain: We want Tundra to extend beyond the desktop
PC architecture.

The roadmap reflects these, and also discusses other goals for the future.

- Comparing Ogre performance:

The Github issue tracker contains an item for Ogre-related performance
woes: https://github.com/realXtend/naali/issues/440 . Recently, we decided
to do a different kind of test. We took a single static scene, and viewed
it in the following three renderers:

- Tundra 2.3.2.
- Urho 3D, an open source cross-platform rendering and game engine
developed by Lasse Öörni from LudoCraft, http://code.google.com/p/urho3d/ .
- A custom (crude and partial) .txml rendering loop written directly on
top of a graphics API tentatively named 'gfxapi'. Gfxapi is an abstraction
of D3D11/OpenGL3/GLES2 for different platforms. See
http://clb.demon.fi/gfxapi/ .

The tests were run on a Core i& 860 @ 2.80GHz (8 logical cores) with a
NVIDIA GeForce GTX 275.

The scene contains 428 Tundra entities, 510 textures worth 154MB, 233
meshes worth 60MB, and 672 materials. There's roughly 700 batches
rendered, ~600k triangles when the scene is observed being fully in view,
and averaging 831 tris/batch.

Results:
- Tundra 2.3.2 (D3D9): 18msecs/frame (54 FPS), consumes 534MB of main
CPU RAM, and 17% of the 8 logical cores.
- gfxapi (D3D11): 3.8msecs/frame (260 FPS), consumes 156MB of main CPU
RAM, and 6% of the 8 logical cores.
- Urho3D (OpenGL 2.0): 2.48msecs/frame (402 FPS), consumes 78MB of main
CPU RAM, and 20% of the 8 logical cores.

It should be noted that the tests are not exactly fair and equivalent in
all aspects: Tundra is considerably more complete in terms of features
compared to Urho 3D, and especially to gfxapi, which is simply a
custom-built test app that stuffs the vertex data to a GPU, without even
any kind of scene management.

In screenshot form:
https://dl.dropbox.com/u/40949268/Ogre/Oulu3D_Tundra232_D3D9.png
https://dl.dropbox.com/u/40949268/Ogre/Oulu3D_gfxapi_D3D11.png
https://dl.dropbox.com/u/40949268/Ogre/Oulu3D_Urho3D_OGL2.png

Given that about 90% of the CPU time in this scene in Tundra is spent in
Ogre rendering, we see here that Ogre is losing out, and by more than a
whopping 10msecs/frame. Note that the renderer in gfxapi did not implement
proper submesh materials for objects, and simply collapsed all submeshes
to a single mesh and used the first material for each of them, therefore
giving incorrect texturing (but hopefully still remaining a valid point
for renderer comparison).

- Tundra 2.3.3.1 release

There have been some problems reported with Tundra 2.3.3 release, related
to rendering crashes. The Ogre 1.8.0 version was released some weeks ago,
and ogre-safe-nocrashes branch has been merged to that. Tundra 2.3.3
shipped without this merge in yet, so we are making a minor release in the
form of 2.3.3.1 to update the renderer.

- Ogre alternatives

Outside the usual Tundra-related development, a few geeks from LudoCraft
are evaluating with their hobby projects the possibilities on how to
proceed to different platforms, and how to deal with the Ogre issues.

Recently the feasibility of using Emscripten to compile a C++ renderer
over to web JavaScript/WebGL environment was studied. The gfxapi code was
ported over to Emscripten for this purpose, and a live demo is available
at https://dl.dropbox.com/u/40949268/emcc/aabb_obb_sphere.html . The
codebase now supports a variety of architectures, see
https://dl.dropbox.com/u/40949268/Platforms.jpg and
https://dl.dropbox.com/u/40949268/code/graphicslib.html .

Lasse Öörni has worked a lot on enabling Urho3D on Android and iOS as
well. The Oulu3D scene was also tested on an Android phone last week. On
an unmodified Oulu3D scene in full view, a Samsung Galaxy S2 phone yielded
about 5fps rendering:
https://dl.dropbox.com/u/40949268/Tundra/AndroidOulu1.png and
https://dl.dropbox.com/u/40949268/Tundra/AndroidOulu2.png . Acer Iconia
Tab A500 with Tegra2 renders at about 8fps. (in street level at Rotuaari
at about 11fps)
https://dl.dropbox.com/u/40949268/Tundra/Urho3D_AcerIconiaTabA500_Oulu3D.png.
Asus Transformer Prime with Tegra3 renders at about 16 fps.

Overall, reaching each platform is not impossible, but seems to require
time (as always) and complete control over the codebase. The performance
on most mobile platforms is so low that it is difficult to afford using
Ogre3D or some other generic library that was not implemented ground up
for the mobile target in mind.

Hopefully we'll be able to focus on these problems with a well-scheduled
project during the fall, and 2013 will then be the year of the mobile
Tundra,

jj
Reply all
Reply to author
Forward
0 new messages