boards. The synapses are rendered connected to the
hierarchy of the lines or branches that are visible.
Figure 4: The visualization pipeline.
2.2 Regular Grid
The world of computer graphics consists mainly in
tradeoffs between complexity and performance: level
of detail (LOD) is a method offering such compro-
mises and is explained in detail in the book (Luebke
et al., 2002). Several examples of usage of this tech-
nique can also be seen in the papers (Gumhold et al.,
2003) and (Schaufler and St¨urzlinger, 1995) and Sec-
tion 4 of this paper.
LODs are used to group branches in a priority or-
der, going from always visible (LOD 0) to less im-
portant branches (LOD 2). Those LODs are com-
puted when the neuron data is integrated into the reg-
ular grid with the help of a recursive algorithm which
will be discussed later. This computation need to be
done once, in an initialization phase at the launching
of the program. During this phase, each neuron is
inserted into the grid and its branches are distributed
among the buffersof each LOD. Before going more in
depth into the procedure, it is necessary to recall how
a neuron is defined. It contains one root, from which
several branches reach out, that in turn can be sub-
branched. They are organized in sections which allow
representing the whole hierarchy of the neuron easily.
More precisely, those sections indicate the linkage of
each node going from the root to the extremities.
Figure 5: Neuron morphology branching numbering. No-
tice how at each branching only one section keeps the father
number.
2.2.1 Insertion Into Lods
The insertion into LOD buffers is done according to
a certain branch priority. The branching computation
is done for each neuron morphology independently.
It is made by going through each existing branch of
a neuron, using the corresponding section map, and
then attributing an index to each segment correspond-
ing to the actual priority of its branch. To define this
priority, a recursive algorithm is used, which looks
at the depth of each branching and gives higher pri-
orities to the longer ones. For a better understand-
ing of this, it is possible to represent this scheme as
a tree, where the nodes represent the splitting points
between two branches taking as value the actual dis-
tance from the root (the neuron soma). Assuming the
aim of the algorithm is to compute the sorting of one
of the branches starting from the root; the path with
the highest priority is going from the root to the ex-
tremity children with the largest distance; denoted as
the longest branch of the tree (see Figure 5). Once
this main branch is known, it starts from the root and
goes through all the nodes of the tree. At intersection
i (node i) it keeps the current priority for the longest
branch of the sub-tree with node i as root and the other
branch gets this priority increased by 1. Like that we
will have branching index from 0 to a maximum of
255 (fixed limit). From those indices we can enter
each vertices inside the corresponding LOD array re-
specting some ranges defined by the user (e.g. Lod-0:
0,1 / Lod-1: 2,3 / Lod-2: 4,...,255). Then each branch
of a neuron will be rendered or not by comparing its
LOD with the current LOD of the cell. In a similar
manner synapses also need to be rendered condition-
ally to the LOD level.
2.2.2 Usage of the Lods
Employing a LOD system, allows splitting the render-
ing into several levels of detail yielding better perfor-
mance. Those levels are defined by cells accordingly
to the distance to the camera position, such that the
closer cell to the viewer the better its definition is.
2.2.3 Update Function
Another particularity regarding the implementation of
the regular grid is the use of an update target function
which allows to have a per branch visibility capacity
and a per cell representation mode. Each time a neu-
ron state is changed (visibility or representation), the
data is checked once and the right indices of the visi-
ble neurons are entered into the grid. The line buffer
and the mesh buffer are used depending on the cur-
rent cell representation. Since drawing is done using
REALTIME NEOCORTICAL COLUMN VISUALIZATION
285