New concept art for Merki has been released, along with a look at the artwork pipeline.
From the Programmer
Written by Invisible
Last week I created a model viewer for our artist, GreyKnight. I was unable to find a 3D modeling program which allowed enough fine-tuning of the camera and projection. The artwork needs to be drawn at an orthographic custom-isometric angle so that the texture looks correct after being applied to a mesh. The closest I was able to get was Wings3D, but it wasn't quite close enough. While powerful, their custom camera coordinate editor wasn't designed with this kind of thing in mind. I finally settled on setting up a special copy of the isometric workbench which loads a model called test.ms3d and displays it. It would have been nice to keep model editing and capturing in the same tool, but this works fine.
It turns out that it was a good thing I created that model viewer. One of the requirements for it was a lighting system. The reason for this is to make it easier for GreyKnight to find the edges between polygons; with flat shading, the only way you will see them is if you color them separately in the model editor. I already had a usable lighting system jury-rigged to the vertex projection system (the testbed uses software transformation currently), but the lighting would change as you moved the camera around, and it wasn't at quite the right angle. So I created a basic light which could be moved around until we found the correct angle. Unfortunately, as I moved the light around I noticed it was flashing in and out at certain positions. After double-checking the code, I found what appeared to be the problem: the dot product was taking into account the w component of the vectors. Thinking it must have been a copy+paste error, I removed the code and tried the demo again... To find that everything had disappeared. You may have already guessed it; that w in the dot product calculation was being used in projection. To make matrix-vector multiplication code easier to read, I was creating temporary vectors from the matrix and performing a dot product between them and the vector. Unfortunately, the w component is infact required for this to work correctly. After I found what the root problem was, the solution was rather direct: create separate 3x3 and 4x4 matrix classes, as well as 3D and 4D vectors. The math system is once again working correctly, as far as I can tell.
I was two days into the design of the rendering pipeline when I stumbled on an interesting technique: instancing. Instancing, in reference to rendering, is where you have one copy of a mesh's geometry which is drawn over and over again for each instance of its use. For example, you would send the geometry for a tree to the graphics card, and then just send a bunch of draw operations with different world matrices to position the tree in the correct location and orientation. Without instancing, you would need to send the geometry for that tree in addition to each world transform to the graphics card with each draw operation. I started work on a new design, but the events I mentioned previously held me up for most of the week. I plan on finishing the design next week, and hopefully I will be posting a video showing off the new renderer.
Written by GreyKnight
iScribble Sketches #26
(Click to enlarge)
(Click to enlarge)
Written by jaythemage
Over the past week, a challenge was issued to the SAO community: If we donate a total of $500 to IfThen Software, the development team will update SAO.
There has been much debate over what would happen should this actually occur, but the general consensus is that if anyone has a few extra dollars, he/she would donate a little. Maybe over time, the $500 mark will be reached.
To contribute to future community spotlight articles, please visit this forum: http://www.ifthensoftware.net/forums/index.php?showforum=37
Funny Quote of the Week
From the IRC chatroom
Background information: Pifreak (an SAO moderator) was talking with the people in SAO, and tried giving a link to the forums using a non-existent HAL command. HAL shows the SAO in-game chat in real-time, which is prefixed with "
pifreak: .say forums
InvisibleMan: Wow, it worked