The maze, looming in darkness
Actually, I first modified the geometry shader to cull pipe sections farther away then the center point of the maze. Then I added the distance fog to hide the popping.
As a side note, I've noticed that the app has a noticeably slower frame rate rendering the full maze (above) then it does rendering the menu maze:
The menu maze
I know it's not really a maze. It just serves as a frame for the menu.
But moving around in the menu is smoother than moving around in the maze. It's not bad, yet, but there are no pellets to be drawn or ghosts to artificially intelligentize as yet. So I'm going over how I render the maze.
Currently all straight sections are sent as two points: (0.0f, -0.5f, 0.0f) and (0.0f, 0.5f, 0.0f). These are then transformed in the geometry shader according to the world matrix (which is in a cbuffer updated for each section) and expanded into a pipe.
I'm fairly new to shader programming, but I've read that updating a constant buffer is slow, so I'm considering instancing, keeping the same world matrix for an entire maze side, and passing center point and scaling info in the instance data.
I guess I first need to display exactly what my frame rate is, so I can objectively test it. I probably already would have done this if I were more experienced as a game programmer :p