Development

MySQL full-text indexing & TLAs

full-text mysql TLA

Here’s a quick tip - if you run a technical site and have decided to use MySQL’s full-text indexing feature to make searches faster, you will want to change something out of the box. I’m upgrading the Ogre forum over xmas to phpBB3, and I’d found that the default ‘native’ search index took over 18 hours to build, simply because the forum is so large (and has in fact been ‘pruned’ back to the last 3-4 years now), plus my test server here is a more modest spec.

Read more →

DX10 software rasteriser shows geeky origins

This is what happens when you let Star Trek fans set product codenames. WARP10 Sure, technically it stands for the ‘Windows Advanced Rasterization Platform 10’. But you just know which way around the genesis of that title would have gone, when geeks are involved. In any case, it sounds pretty interesting - basically it’s a Dx10 class software rasteriser which will come built-in to Windows 7. It’s bound to be be nigh-on unusable for a while - after all, people with cheap graphics cards are also likely to have gone a bit cheap on the CPU too, and even the best multicore CPU can’t software rasterise as well as an entry-level GPU right now - but as an eventual fallback target it could be useful.

Read more →

Keyboards & languages

This has bugged me on and off for a while - very, very occasionally I’d be working away in Visual Studio and suddenly my @ symbols would start coming out as double-quotes, a symptom of the condition known as ‘crazy Yankee keyboard syndrome’. I hadn’t figured out what triggered this, especially as all other applications were unaffected, and it happened little enough, and when I was busy enough, that I didn’t take time to find the cause and just lived with it until I restarted VS.

Read more →

What Microsoft should learn from LINQ to SQL backlash

Note: I’m going to pick the way I discuss this carefully, since I have a good friend on the LINQ to SQL team (yes, we Guernseymen do get around) and I feel bad to criticise too much in this area; nevertheless I think there are lessons to be learned and I have a definite angle on this, being an ex-business coder and open source enthusiast. My thoughts here reflect pretty much what I’ve already suggested on his blog, but in more detail, so hopefully this won’t offend him!

Read more →

8000 trees and 2.5M blades of grass? No problem.

I’ve been crazily busy lately trying to get OgreSpeedTree to a fit state for a 1.0 release alongside other projects (such as Ogre of course), so I can really start promoting it. Being the kind of person I am, I find it hard to stop tinkering and perfecting and I can’t let something go out the door without being totally happy with it. The screenshots and videos so far have been good I think, but I’ve been polishing away and making it all just that bit better, and one element of that has been some additional optimisation.

Read more →

Parallel-split Shadow Maps are cool

We’re on the final home straight for Ogre 1.6 (aka Shoggoth), which should hit RC1 next week. One of the final features I wanted to squeeze in was support for Parallel-split Shadow Maps (PSSM), which uses multiple shadow maps per light in a hierarchical fashion to improve the quality while keeping the size down, particularly in outdoor scenes using global directional light. If you’ve played Assassin’s Creed, you will have seen this technique in action already.

Read more →

OgreSpeedTree

Yes, this is the extra library project I’ve been working on recently: There are more details in my OGRE Forum post, but I’m pretty sure you can guess what it does 😀I’m pretty pleased with the shots & speed so far, although I’m refining it more all the time. I’m currently in a closed beta phase with a client, so no demos yet. I’ve written this in partnership with IDV (creators of SpeedTree), who have been very helpful.

Read more →

How did I get started in software development?

memes programming

My old pal-turned-Microsoftie (I try not to hold that against him 😉 ) DamienG meme-tagged me again so here goes… How old were you when you first started in programming? I’m not completely sure, I know I was around 8 or 9 when our primary school got a ZX81 and a BBC Micro around the same time, and I used to mess about with them at lunchtimes and after school whenever I got the chance.

Read more →

Forcing VC++ Debugger to Display Pointers as Arrays

I’m going to risk being called a dunce for not picking up on this until now, because I think there are probably other people with this annoying problem too. When you’re debugging in VC++, by default raw pointers only display a single item when you expand them, like this: Now, if you know this pointer is actually a series of items and not just one, you really want to inspect them all - you can add array indices (pFoo[n]) but this is awkward if you want to browse rather than cherry-pick single items.

Read more →

Great assistance from NVIDIA & Graphic Remedy

I posted recently that we were having some mipmapping issues with NVIDIA’s newest drivers, the 175.x series, on both Windows and Linux when using GL. Thanks to help from the nice chaps at NVIDIA these issues are now resolved for the moment - there does indeed appear to be a bug in some aspects of the hardware mipmap generation implementation in these drivers, but the workarounds exposed a couple of bugs of our own in software mipmap generation code - which hasn’t been used by Ogre on most modern hardware for several years, since we’ve opted for hardware mipmap generation for a long time.

Read more →