Tag Archives: ogre

Business Development OGRE

Yay, OgreSpeedTree 2.0b is done

I’ve been pushing quite hard to get this done before I head off to Qt DevDays next week, and luckily it all came together in the last few days:

Some of the notable back-of-the-box (if there was a box) items:

  • Upgrade to SpeedTree v5 – supporting all the great new features. See the SpeedTree site for more details on this release.
  • More lighting options – Ambient Occlusion, Ambient Contrast, Specular Lighting, Transmission Lighting, Global Light Scalar, HDR.
  • Improved LOD fading – LOD transitions are now implemented via less perceptible techniques thanks to SpeedTree v5.
  • Dynamic soft self-shadowing via depth shadowmaps – (was also demonstrated on SpeedTree 4.2 in OgreSpeedTree 1.1.0)
  • Improved alpha to coverage support – alpha to coverage rendering has been significantly improved and is now enabled by default (you must render with at least 2xMSAA to see the effect), resulting in significantly smoother foliage edges and smoother fade transitions.

I’m just really, really glad to have got this done. SpeedTree v5 was quite a big change to handle, but hugely worthwhile, the guys at IDV have done a great job. I made the choice from v1 to do a ‘deep’ integration (ie all objects are first-party Ogre objects, everything uses Materials and RenderQueues properly, etc), which made the transition considerably more time consuming than using the higher level pass-through interfaces, so this took some effort. I like it this way though, it means it’s a ‘real’ integration as far as I’m concerned, not just a simplistic bolt-on.

There’s still more to do, not least of which a demo that’s more interesting than just a technical performance test :) But at least I can tick off one of the major things on my TODO now. I’d been putting in quite a few extra hours to try to handle this, and my Qt presentation preparation, and Ogre, and consultancy, and it has taken its toll a bit – I’ve been spending more time at the desk and think that was a contributing factor to me straining my back at the gym last weekend. Hopefully that’s just temporary, I’ve been a lot better these last few months.

Hope you like the shots anyway. I know, I’m pimping them all over the place in my Twitter, here and on the Ogre site, but a guys gotta make a living, right? ;)

OGRE Open Source Personal

My evolving view of open source licenses

smallprintI’ve been involved in open source for a long time – probably what might be considered a ‘generation’ in this industry. I was a fan of open source before I even knew the term existed – during my formative coding years in the early 90′s I was always releasing code for free and encouraging people to tell me why it sucked, and doing the same for them. Of course, most of the discussion went on over FidoNet, BBS-relayed emails, the very early (pre-WWW) internet and code on FTP sites, but the principle was much the same.

It was only when I needed a host for an increasingly large 3D engine I’d been writing in 2000 (which later became the earliest version of OGRE) that I discovered Sourceforge and open-source licenses. At that stage, I didn’t really care much about the minutae and just went with what seemed the most popular choice – the GPL. Fairly soon after this was revised to LGPL because it was clear GPL wasn’t a flexible choice for a library. Over the years I formed the opinion that the LGPL was a good balance for what I was doing – it allowed use in proprietary applications but required that modifications to the open-source part were passed on; and this also, I thought, encouraged contributions back to the core since it’s simpler to have your changes promoted. The downside was that the license is pretty long and full of legalese, and frequently needed explaining & clarifying. Still, I considered that a necessary cost of a license that ‘protected the interests’ of the open source project. I had considered more permissive licenses like zlib and MIT to be too weak -  giving everything away with no conditions encouraging reciprocal contributions or participation.

I only really started to seriously question this long-held opinion recently, shortly after I had to deal with a license violation issue. The details of this are irrelevant (and will not be discussed here), the important thing is that after all the dust had settled, it really made me sit down and take a long, hard look at what open source licenses actually achieve in practice, and which bits I felt were the most important for sustaining my projects.

Purist free software advocates subscribe to the view that all software should be ‘free’ (as in speech), which is, when you boil it down, a philosophical principle. While the intention is often genuinely altruistic – enablement for all developers and users of software – in a practical sense it is also a highly prescriptive, black-and-white approach. Free software licenses like the GPL restrict as much as they enable, on the basis that not to do so would deny future users of the flexibility to alter the software. It’s an understandable point of view, if very hacker-oriented, but it’s not one that I personally sign up to. I’m not involved in open source as a ‘movement’, in order to ensure that all users have access to all the source code of every application they use. Instead, I’m involved in open source because I think it’s a damn good way to get good software written for the benefit of the many, particularly infrastructural elements that can then be used to innovate faster, by smaller teams, to challenge incumbents, and generally shake things up. I’m a firm believer that open source and proprietary software can be good bedfellows, and that each can benefit the other – open source providing solid foundations for proprietary innovation, and proprietary software contributing to the open source projects underpinning it, in terms of code and funds. In that context, the restrictive elements of the LGPL seemed well-placed – the LGPL allows proprietary use, but modifications had to be passed on.

But, after much consideration and hard self-questioning in recent weeks I realised something important. Of all the people that have contributed to OGRE over the years, I can’t think of a single good code contribution that has come about because the license conditions encouraged it. All of the people who have made a significant positive contribution to OGRE have done so because they chose to do so. Either because they wanted to do it for fun, or because they saw that it was in their own interests as users, they sent patches in, created new add-ons, joined the team etc. None of these people required any coersion from a license to do what they did, and all the better for it – because they chose to do it, they tended to be more forthcoming in terms of adhering to standards, answering questions about their contribution, and generally participating in the community rather than just doing a minimal code-dump.

The other thing I considered was the impact of someone modifying OGRE and not publishing their changes. On the one hand, this is a potential for a lost contribution, but in practice the LGPL conditions are only to pass on the source to others, not to contribute back to the core project (which requires a contributor agreement anyway), and as mentioned we’ve already established that the best contributions are from willing sources anyway. Then comes the principle of whether it matters that the end user is not guaranteed to see the modified source of OGRE – free software principles say this is not right, but I have to say that in practice, most end users don’t care and in practice it’s of little consequence for OGRE. Obviously many people in the free software camp would disagree strongly with this. It’s more of an issue in enterprise apps where a customer who receives a significantly customised application from a vendor, and needs to keep maintenance in mind; IMO regardless of whether the software is based on open source the customer should be insisting their vendor delivers source anyway – that’s what contracts are for. But I digress.

So, after much thought I concluded that the most useful pay-backs to an open source project, and thus its community, from a user (in my opinion) were:

  1. Code & documentation contributions – which based on my experience come from voluntary sources
  2. Community participation – forum support, bug reports etc
  3. Publicity.

The ‘restrictive’ elements of the LGPL (and GPL), to which so much confusing license text is dedicated, didn’t seem to contribute to any of those except number 3, and then really just as a side-effect.

It was at this point that I realised that my previous opinions about permissive licenses not providing enough safeguards against exploitation for an open source project were off-base. In practice, open source projects don’t really need protection, because their best contributors are going to be there regardless (yes, I realise the GPL provides more protection to end users who want to get at the source code, that’s not what I’m considering here). ‘Freeloaders’ – people who use or modify the open source project for their own ends but give no code or community contribution back – are always going to exist; even under the GPL it’s easy to freeload, if you make your money from hosting services for example, and thus license choice has little impact on the scale (if not the nature) of the freeloading. Besides the annoyance of ‘that guy took my work and made some money out of it’ – which you have to accept as an inevitable outcome of going open source, so stick to making proprietary software if that bugs you – freeloaders have little negative effect on an open source project, and actually their use can contribute positively to item 3 (publicity). The key is to recognise that in practice you can really just ignore freeloaders, and instead concentrate on maximising the positive contributors in your community.

So, if we acknowledge that the people whose contributions we actually want are those who contribute voluntarily, regardless of license, we quickly come to the conclusion that all that really matters is the size of the community. It’s a fair assumption that for a given project there is a relatively stable percentage of users who will choose to contribute back (the percentage itself varies per project, but is fairly stable per project in my experience), therefore the easiest way to increase your contributors is to just increase your user base. Forget about trying to coerce people into being ‘good’ members of the community, just trust that the percentage will be there and will track your overall numbers.

One way in which to attract more users is to make the licensing simpler and more easier to understand. Programmers hate legalese, and a simple, clear license is bound to be more attractive than our LGPL (with static link exclusion), plus OUL option. It’s for this reason that from OGRE 1.7 we’re switching to the MIT License.

I’d like to thank Matt Asay for his post on the subject, which really jump-started my thought processes on this subject in the last few weeks. This whole process has been a reminder to me that it’s always good to re-examine your previous assumptions and opinions in the light of practical experience, and to be prepared to reach different conclusions than you did before. The whole open source landscape is constantly changing and maturing, why should those of us immersed in it be any different?

OGRE

Torchlight at PAX

Hell yes. It’s nice to come back from holiday to more eye-candy from leading OGRE-based projects, and this one is looking very nice indeed. Congrats to Travis and the rest of the team at Runic, on the PAX ’09 coverage and also the recent Gamasutra article which I read on my phone at breakfast one day while on holiday (much to my wife’s annoyance :? ).

hardware Linux OGRE Personal

News Mash-Up

I’m busy, again. A ton of things just bunched up towards the end of the month, and I’m on-site with a customer in Cambridge some of next week, so I’m keeping my head down a little right now. Here’s a news-blast though.

I love Ubuntu server

I’ve been setting up my new server. I’ve probably said this before, but for servers, Linux rocks. I’m ambivalent about Linux on the desktop, where I believe consistency and usability are more important (the Mac floats my boat the most there, and Windows if only because of MSVC++), but for a server Linux really brings great things to the table. Rock solid server apps, ridiculously good performance for the hardware (a mere Intel Atom 330, goes like a greased whippet), easy and most importantly infrequent maintenance. When it comes to distros, I loved Debian for its sensible defaults and great package management, but Ubuntu server takes that and makes it even better.  The added bonus of a LTS version that I know will be supported with security updates until at least 2013 is welcome too, because I like to set these things up and mostly forget about them.

I’m glad Ubuntu’s default mail/IMAP servers are Postfix and Dovecot respectively – they’re just ridiculously easy to set up. I’d been using Exim4 on my Debian box, which was the default at the time, and learned to dislike it because of the over-complex configuration (I’d been used to Postfix when I ran a Gentoo server before that). I’m also planning on trying out Bacula as a replacement for my manual backup scripts this time around.

PSUs hate me

One of my jobs this week was building a machine around some customer hardware which I was testing an abberation on. Having built it, I realised I didn’t have a spare PSU rated highly enough, so I ‘borrowed’ one out of another GPU test machine I had. It ran all day, then decided to die – this just 2 weeks since my server’s PSU died and needed to be replaced. It’s just bad luck – my decent APC UPS should be providing ample power regulation. So, I’ve ordered 2 new PSUs to make sure I have enough stocked in future!

Excitement is infectious

I was happy to show off some shots of my new & improved core terrain system for Ogre, which isn’t entirely done yet but was usable enough to get some nice shots out of. I knew I had to move on to some other work for a while but I was still pleased to be able to show off some initial eye candy (which BTW, is still very early – I haven’t finished yet by any means). I was glad to get some positive & constructive feedback, but of course now people are rushing off an including it in their projects, since all the code is public in svn. Despite my slapping a big red warning sticker on it saying ‘handle with care – volatile material’  and that they shouldn’t assume it works properly yet, people are hacking on it already, with some nice results I have to say (such as Ogitor integration) – but of course with many questions and issues. Such is the nature of open source – it’s a blessing that you get instant, voluminous feedback, and it’s a curse that you get instant, voluminous feedback ;) I hope to get more time to deal with the fallout from that if not next week (because of my travels), then the week after.

The OGRE Patch Mountain

Our community is always active, and it’s great to get patches. I do have a quite high validation standard for the core though, and processing patches can often take a fair bit of time. I try to spend a few hours per week doing this, but mostly that’s only just enough to keep the level static, rather than reducing the backlog, and it still spikes up sometimes (as it has this week) – that’s because even if I get an afternoon on it, to review and test things properly can eat that up very fast.

If there are any experienced members of the Ogre community who would like to assist me with keeping the patch mountain down to a small hillock in future, and are willing to adhere to our high standards of review, please contact me at sinbad AT ogre3d DOT org.

iPhone 3G / 3GS port coming soon

We’ve had a fledgeling GLES rendersystem around for a while, and obviously the iPhone / iPod touch are the highest-profile targets of that. I’d been intending to have a go at it later in the summer, but masterfalcon on the forums has beaten me to it and already has it running (with a few small issues remaining to be ironed out) on the 3G and 3GS. There should be a public release of that in the relatively near future.

3D Web Browsing With OGRE

I love this video. Nice work princeofcode (aka ajs15822)

That’ll do for now I think.

Development OGRE Open Source Tech

Circular dependencies

The 3D Material tab with specular map at the right. Seed image by <a href=I can’t remember who made the assertion / joke that if you looked through an infinitely powerful telescope you’d end up seeing the back of of your own head, but I was reminded of that by a certain event today. In the last couple of years I’ve often Googled for a particular subject and ended up with the top hits pointing me back at one of my own posts in the OGRE Forum or on my blog, in a weird self-citing manner. In the worst cases, these posts answer or clarify my own current question, because a thought process I’d had a few years before, and then forgotten about, can often be useful. It’s like having a stack of your old notebooks in the cloud! Or an archived clone of yourself pointing out how age is making you stupid.

The other weird experience is when you download or otherwise get hold of a piece of software, and unexpectedly find that it uses your own code. I’m sure this is common in open source circles, because users of open source don’t have to tell you when they use your code, but nevertheless it’s still an odd experience. It’s especially nice when you like that piece of software – this happened to me today with PixPlant 2.

As I mentioned yesterday, I was reviewing tools for normal/displacement/specular map generation from reference sources, and I’d been evaluating CrazyBump and ShaderMap Pro. Evak in the OGRE Forums suggested I try PixPlant2 because he liked it. So I did, and I was impressed – the texture generation seemed as good as CrazyBump, but it’s cheaper ($175 rather than $299), and it also includes tools for creating tileable textures from original sources, detecting repeating patterns, straightening things, and blending the edges for you.

So, I was already leaning towards this purchasing PixPlant2, but then as I was browsing for textures, I noticed that the PixPlant2 application folder had some familiar files in it – such as OgreMain.dll, and rather familiar material files in the media folders! Checking the docs, sure enough OGRE was credited as a dependency. The application I ended up gravitating towards included software that I wrote! :)

To cap it all off, they’ve been very nice and offered me a free copy, so my normal map generation needs are entirely satisfied, for far less than I was expecting to pay. It’s not often things work out quite so well!

Business OGRE Travel

Back from FMX/09

Yes, I got back from FMX/09 last night, after the usual pain-in-the-ass shuttling between London airports to make my connections and the inherent waiting around that entails. I’m constantly disgusted by the amount airports charge for internet access so I left writing this post until today.

I really enjoyed FMX – it was the first graphics conference in which I’d been officially on the speaker bill, so I’m not sure how well other conferences treat their speakers, but at FMX I thought they did a fantastic job; everything was really well organised and went very smoothly. I actually enjoyed FMX more than Siggraph to be honest; it’s smaller and I found it a bit more manageable, and people seemed to have more time to talk. The speakers dinners were great for meeting & talking with various random people – such as having a quick chat with Ken Perlin, creator of the ubiquitous Perlin noise, and who had already heard of Ogre, which was nice.

My presentation went well, I was fussing over and tweaking the content right up to the last minute – was there enough for the time, was there enough technical detail, or too much, and so on – but in the end the feedback I received suggested I got it right. There was theory and arm-waving, I dove into code for a few minutes to illustrate how you build up a simple demo, I showed screenshots of Torchlight and OgreSpeedTree, videos of Venetica, ZeroGear and Dangerous Australians, and ran a real copy of The Book Of Unwritten Tales (and in the presentation tradition, my machine choked on the DVD the first time). In the end the hour flew by and I had to speed things up a bit, leaving 5 minutes for questions, which was just enough, so not bad on a timing front.

The room was also packed, people were standing at the back and sides of the room due to lack of available seating – I had no idea what to expect in terms of interest levels so I was very pleased with the turnout in the end. I also collected quite a few business cards and contacts from people using Ogre or thinking of doing so, which is always good, especially for a free agent such as myself!

I also met up with the guys from Filmakademie (who run the conference) who are developing some really cool tech using Ogre, such as procedural facial animation systems and non-photorealistic rendering. The editing framework they’ve built for these kinds of projects to sit on top of is looking really slick (it reminds me a bit of Houdini), and the good news is that they’re going to be releasing it as open source (LGPL) very soon, so I’ll be sure to link that both here and on the OGRE site when it’s available, because I think a lot of people are going to like it. All in all it was great to meet them and we intend to stay in contact in the future.

I’d like to thank everyone at Filmakademie (Constanze, Volker, David, Stefan, Nils, Simon and Thomas) for inviting me, and making it such an enjoyable visit.

[edit]Oh, and please bear with me if you’re waiting for a reply to something – I did manage to keep up with email somewhat whilst away, but more significant things will have to wait for me to catch up with them in the coming days.

Games OGRE

Runic Games using Ogre for new game ‘Torchlight’

I’d been tipped off about this possibility a while ago, but couldn’t say anything until now – Runic Games are now OGRE users and have been beavering away on their new game ‘Torchlight’, announced this week:

In case you didn’t know already, Runic formed from the ashes of Flagship Studios, and includes members of the team that worked on Diablo and Diablo 2; games which I personally enjoyed but which my brother in law almost worshipped – he still plays the second one now. Torchlight is along the same kind of lines as I understand it, except that it will come in two forms – a single player game later this year, and an MMORPG in future years, and is being published by Chinese online publisher Perfect World.

Congrats to Runic on their reveal this week, and we wish them the best of luck with the game – it’s already looking great. We’re also very happy that such a veteran team is enjoying using OGRE, enough to put one in only their second public screenshot ;)

Games OGRE

Deck13′s Venetica – looking pretty sweet

venetica1Deck13 are one of the longest-running commercial users of Ogre in the game industry, having completed 3 full retail games using it now. They have 2 more in the works, and one is Venetica, an action-RPG; and it’s looking really nice. I uploaded a bunch of screenshots to our gallery recently which were passed on to me direct, but they have more on their website too, like the one shown here. It actually reminds me a little of Fable 2, which is praise indeed.

As you can see, they’ve made good use of HDR and post-processing effects (I particularly like the fluid simulation they used for the ‘spectral effects’), some nice dynamic texture shadows and their animation pipeline (skeletal and facial) which served them so well in previous games make a welcome return too. It’s worth watching the trailer on the game site to see what I mean there.

Venetica is one of the games I’ll be featuring in my talk at FMX/09 in May, where I’ll talk about a few of the technical details and show a longer video from their beta, which shows off the animation and effects even better.

Once again some great work from Deck13; these days they have a little more company at the upper end of the eye candy scale of OGRE game development (from people like Nimblebit and KING Art, who will also be featuring in my talk), but there’s one thing for sure, they never cease to impress.

OGRE Open Source

OGRE on the BBC web site

animationdecathlonThis is cool – last weekend OGRE was one of the technologies behind an interactive public event called Animation Decathlon, inspired by London 2012, which involved kids in London playing a kind of version of Track and Field via Arduino-controlled custom ‘thumping pads’ :) The images were projected onto the side of Kensington and Chelsea town hall, and the BBC has a page about it.

If you think the characters look like they were drawn by children, that’s because they were :) The characters in the game were drawn by kids from the borough and animated by the creators, Quadratura.

I love this because a) it’s in the UK, and open source adoption is much lower in the UK than in the US or Europe, and b) because I just love public events / art like this. In recent years it seems OGRE has become increasingly popular for this sort of work, resulting in OGRE-based applications appearing in public spaces all over the world, such as the Science Museum in London, the Calgary Stampede, the Australian Museum in Sydney, and the history museum in Nantes, among others.

As well as being happy to see OGRE in unique set-ups like this which are always interesting, it’s also gratifying because by nature systems of this sort need to be robust – they’re sitting there all day being tinkered with by loads of (untrained) people, so they require a certain level of resilience and stability :) Therefore I treat the fact that people are trusting OGRE to run them as a very positive thing. We’ll keep trying to be worthy of this trust!

Development OGRE Open Source

Google Summer of Code 2009

GoogleCodeAs I just announced on the OGRE site, I was really pleased to find out today that we’ll be participating in Google Summer of Code 2009. This will be the 4th year running for us, and it wasn’t at all a given that we’d be accepted again this year – even though I think we’ve been a good mentoring organisation for the past 3 years, there are always new organisations wanting to get onboard and there are a finite number of places, so I wouldn’t have gotten my panties in a bunch if we’d been passed over in favour of letting someone else have a go this year. As it happens though, we’re stepping up to the plate again, and everyone is really looking forward to it.

We have a bunch of great mentors lined up again this year- multi-year veteran Paul ‘tuan kuranes’ Cheyrou-Lagreze, core team member, 2008 mentor and 2007 student Brian ‘Praetor’ Johnstone, core team member and 2008 mentor Assaf Raman, new mentor Benjamin Chauviere from commercial OGRE users WestImages, and, well, me. :) Yes, I’m back mentoring again this year – I took a break in 2008 due to my workload and was just a backup mentor and organiser, but if 2008 taught me anything (with my back problems), it’s that work has to come second to the things you care about. I love the Summer of Code, I think it’s such a unique programme that I can hardly believe it’s running for a 5th year now (we missed the first year) – who would have thought that a company would pay students to work for open source organisations in their summer holidays, regardless of whether the subject matter was directly relevant to their own business?. So I’m glad to be reprising my role as a mentor again, as well as being the overall organisational shepherd :)

There’s a great vibe to the programme, a real enthusiasm that’s infectious. I’m sure that in years to come, all of us, mentors and students from all the organisations that took part, and the Google staff (particularly Leslie) who go well beyond the call of duty, will look back on this period of our lives and think “Hey, you know what? That was pretty darn cool what we did there.”. You can’t ask much more than that of life.