Programmer, explorer, and life enthusiast. Work for Microsoft and part of Havok middleware team. Views expressed here are my own.

Graphics Engine, Houdini, and DOPs

Computer is back and operational today! Got to do some more with the engine today. Almost done with the Overlay system for drawing text and all that. Also added in some more logging code, so that I can track down errors more easily. Finally spent some time with Houdini and DOPs (Dynamic Operators) today…been wanting to do that since Siggraph. First impressions with it have been really good. Relatively easy to set up and manage, and the flexibilty you get is really nice.

Hard drives

As I have quite a few important projects at the moment, being able to back everything up is really important. Problem is, the amount of data to back up on some of these projects is considerable (> 1GB). A backup everyday would result in no hard drive space really quick. To alleviate this problem, I went ahead and bought another 250gb HD meant specifically for backups. Now nightly or weekly backups can be a reallity.

Long day...

Today I sat down, looked at the zip problem again, and had it done in around 30 minutes. Hate when that kindof thing happens. At any rate, it is now implemented into my render engine. All shaders, models, and textures are all loaded from a zip file now (with password protection). I added another level of abstraction for the file management, so that all procedures could read from zips or off the hard drive directly.

Web design and zip files

Today my goal was to get zip files supported in the engine so that I could store all data into a zip file (with password protection) in order to keep data organized. Started with zlib but soon found that it would take far too much code to create a flexible wrapper for it. Searching for a wrapper that would work, however, took much more work than I expected. Finally found ZipArchive which seems to be an excellent library, but for commercial use, it costs money.


Not much programming was done today. Had to get some stuff reorganized for some of my upcoming projects (like the Material Editor). I have some custom controls that I created for Agents, and I would like to use those same controls for the Material Editor. So today I spent some time separating various components in Agents into separate libraries so that I could resuse them. Should’ve done that in the first place, but better late than never.

Fun with the GPU

Got the shader handling classes implemented!! Yay! It now loads the shaders, compiles them, and links them together. The scene manager renders all passes, and each pass uses the correct shaders (vertex and/or fragment) and initializes their parameters properly. Now the task is to get XML working for loading and saving the shaders. These XML files will hold the data for a material in general, so each material doesn’t have to have shaders…it can just use the texture units and traditional blending if that does the trick.