After those basic improvements were made, I have cut the render-list gather time down to 1 millsecond, and the render time to 6ms. this is a pretty awsome improvement all around compared with yesterdays results.
Next big objective
I need to get started on putting the whole structure into a new file format. First step is to take the current prototype for the loader and accessor, and turn it into seperate classes for loading from certain file formats and holding the mesh in memory ready for loading.
Classes that I will likely need in order to obey single responsibility principle:
LOADERS:
class AC3DLoader - loads from the intermediate file format .ac
class NativeLoader - loads from the native file format of the system
WRITERS:
class NativeWriter - writes data to the native file format.
class EntityWriter - puts entities in database.
STORAGE IN MEMORY:
class Streamer - controls the other classes, and transparently loads the world. Manages the loading and unloading of chunks according to the parameters it is given.
class SceneGraph - uses the streamer and a database to load and store the entire world transparently, including entities, and provides an interface to manage the addition of new entities, and the removal of old ones.
The names of the last two classes are uncertain, since Im not planning to have any streaming functionality in the first prototype. Im starting a thread in General Programming to discuss exactly what this will all look like.
Objective for tomorrow:
Refactor current prototype into several classes each with with a single responsibility, all within a namespace.