I managed to build a working version of the OGRE XSI exporter for XSI v5.0 using VC.Net 2005 Express today, which is excellent. I had a problem at first because I had all sorts of linker errors with XSI::CString, but it turns out it’s because one of the changes in VC.Net 2005 is that wchar_t is a built-in type, and you can’t link against older libs which aren’t using that option and wide characters (XSI uses wide characters and is built with VC 7.
Ok, so I’ve been looking quickly for free tools for creating MSI files, since deploying the dependent Visual C++ runtime libraries as Merge Modules is the only really supported way of deploying applications built with VC8 on all versions of Windows. The 2 main contenders are MakeMSI and WIX. I haven’t had lots of time to investigate them but here’s my initial assessment. MakeMSI MakeMSI purports to automate the process to some degree, although you are still manually editing text files.
I’m sure you’ve already read about how Sony has effectively turned hacker by installing a rootkit on your PC just because you wanted to listen to some music that you paid them for. That’s customer service for you. Sony’s little tyke of a copyright protection device (developed presumably by a bunch of monkeys at First4Internet who just wanted Sony’s cash and didn’t realise they were doing something really, really dumb) likes to squeeze itself deep into your Windows system calls, intercepting everything you try to do with your CD drive, before sneakily trying to hide itself, cackling manically all the while and rubbing it’s hands with glee.
Ok, after further investigation the origin of the .Net 2.0 dependency on binaries created with VC8 Express is becoming clearer. The major change that has occurred in VC8 is that the core C/C++ runtime libraries and standard libraries like STL, MFC, ATL etc are now configured as ‘side-by-side native assemblies’ rather than the usual simple native DLLs. The point of this is to allow version control over shared libraries so that different applications don’t mess each other up by overwriting shared DLLs.
Well, the OGRE community has been taking it’s first look at VC8 (2005) Express Edition, which on the face of it seems like quite an incredible deal - a free copy of a great IDE with an optimising compiler and all the tools you need to make most native applications with C++ (among other things, but that’s what we’re most interested in). Besides a few minor missing features, such as a resource editor, 64-bit support and profile-specific optimisations, this seemed like the perfect tool for a budding native application writer.
I’ve been catching up on a few of my TODO items, one of which is addressing a few remaining stability issues with the OGRE DirectX7 render system, a plugin which allows you to run OGRE on older computers running Win98 (which can’t run DirectX9) and with perhaps pretty dodgy drivers. It’s not been a priority for a while, since to attract new users it’s generally the newer tech that interests people, but at the same time having a solid solution for older computers makes it more useful for those targetting the shareware market.
Well, I spent the whole of this evening testing security updates to various bits of software that the OGRE website uses and applying them rather carefully to the real thing. I intend to script a sync from the main site to my local copy on a regular basis (I already transfer database dumps) so it’ll take less time to get the test setup running in future. Once again my tiny multi-purpose Gentoo box bore the brunt of the work, being as it is a mail server, database server, proxy server, web server, file server, router, OGRE release builder and probably a few other things too (it used to be a print server until I got my standalone wireless printer earlier in the year).
It’s both flattering an damn annoying at the same time - I fire a query at Google looking for info on a 3D subject, for example ‘ps_3_x’ or ‘hardware skinning’, and frequently, there in the top handful of results is a section from the OGRE manual, the API spec, a post on our forums, the wiki, or something like that. Whilst it’s good to think Google thinks we’re an authority on this subject, I’d really like to get someone else’s opinion too 😉
Well, I managed to get the morph / pose animation enhancements I talked about last week in at the weekend, plus a few other tweaks such as targetting individual vertex data sections in submeshes for performance with combined skeletal / facial setups. I need to do a little more testing on the combos and then think about adding export support for it to XSI. I also managed to bash through a chunk of patches, so the OGRE patch list is a little more manageable now.
I spent some time today with XSI, because I had a bug report queued up from earlier this week that needed some attention, and I wanted to build an OGRE exporter for my fresh copy of XSI v5. Well, the former went well, apart from taking a lot of time to figure out what the issue was. I like XSI’s API, it’s generally very consistent and stable, but it the amount of cross-referencing and re-indexing of data can get very confusing sometimes, especially since the exporter does it’s own set of reorganisations too (to create the best mesh for runtime performance, rather than flexibility like the originating data).