BrainVoyager QX 2.0 - Episode 6: Movie Studio
July 16, 2009
BrainVoyager QX 2.0 comes with a new tool called “Movie Studio” allowing to create stunning “brain movies” by animating, among other things, the shape and activation state of mesh representations. An important application of Movie Studio is the creation of activation movies that can help to explain activation results as dynamic activity patterns evoked by experimental conditions. Movies may also be created demonstrating morphing operations such as inflation and flattening with or without overlaid functional data. Movies can also be created for results of the EMEG module allowing to show how activity patterns change over time in cortex source space. Created animations of meshes (typically head and/or cortex representations) may be further enriched by the addition of bitmaps serving either as “virtual screens” for a subject’s head or brain, or as explanatory text/image information.
Creating a movie with Movie Studio is easy and is based on information about chosen rendering scenes. More specifically, Movie Studio distinguishes between state frames (or simply "states") and inter-state frames. While state frames are defined by clicking a button in the “Movie Studio” dialog, inter-state frames are automatically inserted and calculated by linear interpolation from the information stored in the two enclosing state frames. This automatic creation of inter-state frames ensures smooth transitions between successive state frames. The shortest possible movie, thus, requires the specification of two state frames.
When the “Movie Studio” dialog is invoked from the “Scenes” menu, the wokspace layout of BrainVoyager QX changes switching to the sub-window view mode (if tabbed view mode was active before) and the surface window is resized to fit the default size of a movie (720 x 576). Below the surface window, Movie Studio's “Player” pane is shown.
After loading at least one mesh, a new state frame can be defined by clicking the “Add State” button. When a state is created, it will keep the names of all meshes in a list, which are present in the render scene at that time. Later, when a state is reached when running the movie, all meshes stored in the mesh list will be loaded (if not already present in the scene). This allows adding or removing meshes from the scene during a running movie. A state stores also additional information about each available mesh:
- The color of each vertex, which can be used for activation movies
- The coordinates of each vertex, which can be used for morphing movies
- The level of mesh slicing (if any), which can be used to create slicing movies
- The viewpoint of the current scene, which is important for the creation of "fly-around" movies
- One or more bitmaps, which can be used to present a "virtual screen" or explanatory information
As a first example, we create a simple movie consisting of only two states. One goal of the two-state movie is to show the head of a subject, which gradually exposes the brain. To do this, we load not only the head mesh of a subject but also the brain (either two hemispheres, or one mesh consisting of the merged representation of two hemispheres). We expose the brain by letting the movie slice the head mesh beginning with an axial slice showing the head intact and defining in the second state a slicing level with the exposed brain. To activate axial slicing, the respective “Slice Axial” icon has to be clicked. Note that we want to slice the head mesh and not the brain mesh. In order to apply axial slicing to the head, it is most convenient to load the head mesh after the brain mesh(es) since the last mesh loaded gets “focus”, i.e. changes are applied to that mesh. If the brain mesh has focus, you can switch focus to the head mesh using the “Scene Overview” dialog. The second goal of the two-state movie is to show the two roles that bitmaps can take in a movie. The snapshot above shows a bitmap that was added using the “State Bitmaps” pane, which can be invoked by clicking the respective icon in the toolbar of the “Movie Studio” dialog. Clicking the “+” button opens a dialog for selecting a PNG (or JPEG, TIFF, BMP) bitmap. The bitmap is attached to the “current” state frame (state “1”). You may also use standard navigation means to position the head mesh as desired. To create the first state frame, click the “Add State” button. The snapshot above shows the situation for the used meshes and “apple” stimulus bitmap. A bitmap can play two different roles, either it serves as a virtual screen or as explanatory information. If the first bitmap is added, it is automatically assigned the role to sever as a virtual screen. The virtual screen bitmap moves with the head/brain meshes when the viewpoint is changed, i.e. it remains “in front of the subject”. All additional bitmaps serve as explanatory information and are shown within the screen plane (no perspective transformations are applied).