How did all these floors get so wet anyway?

OGRE 14 Comments

I was playing about with working in Photoshop today because I needed to polish off a logo for the new product I’ve been working on during what time I could find in the last few weeks (which has often been evenings and weekends), and while I was at it I decided to update the Ogre logo a little bit.

Yeah, I know - it’s totally derivative and shamelessly jumping on the ‘wet floor’ bandwagon, but I don’t care; I like it. :) I thought about putting a shimmery effect on the floor or something but I was already short of time.

I’ll be able to reveal the product I’m talking about soon, the legals have now all been signed so I’m getting ready to go. All I’ll say right now is that it’s a commercial Ogre add-on component which I hope will be quite popular among the higher-end Ogre users. I want to spend a little more time polishing it with my closed beta users before opening it up to a wider audience - the prospect came up on rather short notice so I want to concentrate on the loose ends and make sure the quality is there before unleashing it. I have standards to maintain :)

Ogre + Macs + Museum = Interactive Education

OGRE 4 Comments
This is the kind of thing that gets me up in the morning. This is a new interactive exhibit at the Australian Museum in Sydney called ‘Dangerous Australians‘; it’s a 6-metre long table with motion tracking cameras, allowing people to interact with 10 of Australia’s most dangerous creatures. It looks great, and I’m glad to say it’s running on Ogre (among other things). The table is in fact driven by 4 Macs, each with a projector and camera setup.
I love this kind of thing - it’s 3D, it’s interactive, it’s fun, but it’s also educational. Games are great, but really I can’t help but feel a little extra pride when I see projects like this, because I feel like they have more of a positive real-world aura about them. It’s a lot like the sort of project that EDMStudio and axyzimages have been involved in before (also Ogre users), so I’m glad to see more companies coming on board with Ogre in this sector. Serious games is also another growth area for Ogre these days if the kind of calls I’m getting are anything to go by, with companies such as IncredibleSims using Ogre in that space. It’s great, and I’m certainly doing all I can to help promote and support Ogre being used in this sort of environment. Just because there’s a serious goal, doesn’t mean we can’t render it in kick-ass 3D :)

LinkedIn OGRE Group

OGRE, Uncategorized, Web No Comments

I consider LinkedIn to be one of the few genuinely useful things to come out of the whole Web 2.0 gold rush, since it’s a business-oriented, generally ‘fluffless’ site (if I see one more virtual gift or stupid time-wasting Facebook application, I’ll lose all will to live) - as such I actually do use it fairly regularly. I finally got around to creating an OGRE Group - feel free to join if you’re a professional OGRE user / contributor. I use LinkedIn to remind me who I can refer OGRE-related jobs to, so it might be worth your while :)

Sinbad picks up: Healing Potion

Food, OGRE, Personal 2 Comments

I’ve been having a bit of a crappy week, with a particular project taking way longer than I had expected and causing me to explore the darkest crevices of my mind looking for new and creative ways to swear at it, with only mixed success. Cue long hours, too much coffee and Red Bull, and some seriously knotted shoulder muscles. That’s why it was an especially nice surprise this morning to find a box on my doorstep, containing an unexpected gift from a friend & long-time Ogre user in France (tuan kuranes) - a bottle of Champagne and also a bottle of a local speciality, Chartreuse.

I’m not much of a drinks expert, despite this not being the first time I’ve received locally-themed alcohol from people using / benefitting from Ogre, so I looked it up, and it has quite a history - originally developed (or learned / adapted from an earlier alchemical recipe, details are sketchy) in the early 17th century by Carthusian monks as an ‘elixir of long life’ and all-round healing potion.  Even though it’s produced on a larger scale now it’s ingredients are still only known by 2 monks at one time, allegedly. It’s also incredibly alcoholic, at 110 proof (55%) - guaranteed to put hairs on your chest. Or remove the hair from your entire body - it’s probably 50:50.

All in all, very interesting stuff. I immediately thought of Absinthe when I saw it, but it’s mostly the colour and strength that they have in common I think. I’ve tried a little already with some ice as advised, and its very, very unusual. The best way I can describe the taste is if you imagine grazing on the more herbal elements of your spice rack and then gargling with lit paraffin. I’m sure I can taste oregano and thyme in there, as well as the more obvious anise - but there are 130 plants in there somewhere according to the site. It certainly does taste medicinal! It’s a bit much for me undiluted, I’m going to experiment with mixing it later - orange juice and hot chocolate seem to be popular options. It’s apparently good to cook with too, in small doses.

In any case, it’s great to experience unusual local produce like this; I always like to try local food / drink when I’m away on holiday or business, and I’m grateful to Paul for sending a little bit of France my way, brightening my week, and generally spreading the Ogre love. Kudos for picking something as green as the big dude himself, too :)

Memory, Man

OGRE, Uncategorized 7 Comments

We’ve had ‘custom memory allocators’ on our upcoming features list for a while. Last year a student did some work on this during the Summer of Code, but the system ended up being a little too ambitious with its use of templates and got a bit too costly in terms of the template instantiation requirements. Unfortunately the student never returned, so I picked up the baton recently, and I felt it was worth writing about some of the things I’ve done, since most of the C++ allocator discussions on the net are pretty shallow and only deal with the simple cases. This is quite a big and fairly technical discussion, so I’ve placed the bulk of it after the jump to spare those who don’t care about this sort of thing! :)

Read the rest of this entry »

A busy time

OGRE 6 Comments

I’ve been rather busy these last few weeks which will hopefully go some way to excusing (or at least explaining) my often multi-day absences from the OGRE forums lately. I’ve had an influx of work propositions, on top of the projects I already have running and it’s been a struggle to juggle it all. In a way it’s nice to have to turn down work because I’m not likely to be able to fit it in for a few months, but at the same time, since in the past there have been times where work has been short, it feels so wrong. I’ve thought about subcontracting some of the extra out to other people I know, but came to the realisation that I wouldn’t even have the time to manage that process and give full attention to the projects I’m closely involved with, so in the end have just made some recommendations for other people to contact, and offered to act as a 1-man backup strike team if they get stuck. As well as contract work, I have an OGRE add-on product in the works that I hope to be able to post about in a few weeks.

Personal life has been busy too, my wife just had to go into hospital to have some wisdom teeth removed so she’s been delicate and in need of some looking after. We have a trip to Paris booked for next month and we keep saying we should plan what we’re going to do, but I’m betting we’ll probably just end up winging it :) I haven’t even sorted out what else I’m doing at Siggraph yet, except for the work assignments I have, really have to put some thought in. I’ve been putting some more time into the revised memory system for OGRE when I can (which isn’t as often as I’d like), I’ll post about that separately.  I’m doing a training presentation to my local developer group later this week to cover a few more advanced aspects of Subversion, so preparing for that has taken a little time. Rock Band is still soaking up what leisure time is left, although even that’s been far more neglected than usual.

So, there you go - a rambling post to explain why you might not have seen much of me lately. I haven’t in fact withdrawn to a mountain retreat to contemplate the deeper mysteries (that’s next month), I’m just a little busy :)

Booked in for Siggraph 08

Business, OGRE, Travel 2 Comments

I’ve only been to Siggraph once before, in 2006 when it was held in Boston. It happened to coincide with a trip I wanted to make to see some friends / clients of mine anyway so it dovetailed in quite well - I also held a Birds of a Feather (BOF) meet-up for the OGRE community while I was there, and it was good to meet a few of our users.

I enjoyed the experience but given my small / micro business status it’s hard to justify the expense to get out there, especially with airline prices seemingly increasing by the second. It’s generally just more cost- and time-effecient to cherry-pick the papers I’m interested in afterwards, unless I have a specific business case to be there in person.

Nevertheless the thing I enjoyed most about it last time was meeting people, so I’m glad to say I’m going again this year, as part of the entourage for a company whose project I’ve been working on quite a lot over the past 6 months. As such I’ll be spending a fair amount of time manning a booth, but there should still be sufficient time to enjoy the event and meet up with people. I haven’t decided whether I want to run an official OGRE BOF this time around, or even if I’ll have time for it - I’m actually thinking an informal meet-up at a bar nearby or something instead might be better. If you’re going too and you have any ideas or suggestions, let me know! This will be my first trip to LA but I’m expecting to have some reliable guides ;)

MOTORM4X on GameTrailers.com, release soon

OGRE 4 Comments

Someone spotted that the latest video for MOTORM4X, an off-road driving game made using Ogre which is being released commercially imminently, turned up on the front page of GameTrailers.com, which was nice to hear. Here it is, since it’s already been buried:

I think it’s looking very nice - ok it’s not quite GT5 as some of the comments have so eloquently pointed out, but considering both the size of the team and relative budgets involved (I understand they have only one full-time programmer!) I think it’s a fantastic achievement. I’m certainly looking forward to getting my copy!

Great assistance from NVIDIA & Graphic Remedy

Business, Development, OGRE, Uncategorized 1 Comment

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.

One was that we had been retrieving the internal format of a GL texture after construction using glGetTexLevelParameteriv with GL_INTERNAL_FORMAT, in accordance with recommendations. However we made a mistake in that for cubic textures we were passing the type enum GL_TEXTURE_CUBE_MAP instead of the target enum GL_TEXTURE_CUBE_MAP_POSITIVE_X et al. Subtle, and for whatever reason it must have worked fine on older drivers, but the 175.x drivers became more strict and were throwing an error. Unfortunately our other sin was that we weren’t checking the error code after that call (after all, what could go wrong with something that simple? :) ) so we completely missed it, and the internal format, which we then used later on to generate software mipmaps, was nonsense.

As it happens, I’ve been trying out Graphic Remedy’s gDEBugger again recently - I’d previously tried it a couple of years ago and couldn’t get it to work properly with Ogre for some reason, and my post in their forum about it had gone without a resolution, so I let it expire without buying it. However, I really have come to miss having some way to easily diagnose GL issues, like you do with the D3D debug runtime (and various GL intercept / dump tools are ok, but generate so much data it’s hard to sift through it), and it’s clear to me that the error above may well have been highlighted by a tool such as this before the driver started to bork on it. So, I emailed GR to see if they’d be willing to give me an extended trial license and some assistance with resolving the problems I was having. They got back to me really quickly, and via our correspondence identified an issue that they will resolve in the next version of gDEBugger, but which I could also work around in Ogre for now. I haven’t had a lot of time with it yet but I intend to give it a workout over the next couple of weeks, and buy a permanent license if it turns out to be as useful as I expect.

I really appreciate being able to get help like this when I need it, I’m in debt to the people at NVIDIA (especially Kevin) and Graphic Remedy for the assistance. Thanks chaps!

Fighting nvidia 175.16 mipmapping issues

OGRE 1 Comment

Nvidia released their new 175.16 drivers about 10 days ago, and I was glad to see that the stalling issues we’d had on multicore CPUs with OpenGL / XP in the previous 169.21 driver were fixed. However, to my dismay a set of new problems have appeared with mipmapping, again on OpenGL only.

I’ve done quite a bit of testing over the past week to try to narrow the issues down, but the bottom line is currently this:

  1. Generating mipmaps in hardware using the GL_SGIS_generate_mipmap extension no longer functions correctly. OGRE uses this whenever it’s advertised to speed up mipmap construction, but now it results in corrupted mipmaps. The current workaround is to detect an nvidia card and ignore the advertised support for this extension until it’s resolved.
  2. Even with this extension disabled, software generation of mipmaps via gluBuild2DMipmaps works only for uncompressed 2D textures. Using it on any texture compressed with DXT / S3TC, or any cube map surface, results in missing or corrupt mipmaps. The only current workaround for these 2 scenarios is to use the DDS format, and to pregenerate mipmaps and save them in the DDS file using a tool such as DxTex, Texture Tools, or CubeMapGen. Provided the mipmaps are loaded rather than calculated, they work fine (our DDS codec will happily load the custom mips contained in the file and use them). You could also use OGRE’s own HardwarePixelBuffer interface to generate mip levels in code yourself of course.

I’ve reported this to nvidia and hopefully we’ll get a resolution in the near future, but in the mean time you can use the workarounds above. You can also discuss the issue in the forum thread I created for it. I’ve always been a bit of a cheerleader for nvidia on GL so it’s a bit disappointing to find these kinds of issues in the latest couple of drivers, but they are at least talking to me about it so I’m hopeful for a resolution.