3DS Max 9 SMD Exporter Update – 0.4BetaSun, February 25th, 2007 @ 20:06

Thanks to feedback from a number of users I’ve now managed to squash some more bugs and make another update.

Two big bugs from 0.2b have been fixed:

  • Fixed sum-materials of Sub/Multi-Object material types not being exported correctly.
  • Added trap for invalid face material ID’s.
  • Fixed bones that have been mirrroed (no right hand rule) being exported incorrectly.

To explain the fixes – there was an error (my own fault) with how Mult/Sub-Object materials were being exported. Due to an oversight in my part I was trying to grab a sub-material with an invalid ID number which was making Max fall over. I also discovered that it’s possible to assign a material ID to a face which doesn’t correspond to an ID in your material. I’ve added a trap for this.

Read the rest of this entry »

3DS Max 9 SMD Exporter NewsFri, February 23rd, 2007 @ 01:58

Quick update on the 3D Studio Max 9 exporter…

I’d planned to release another update this week but Xander pointed out a wierd bug which needed some investigation. After some rather complicated detective work it turns out that bone and helper objects that have been flipped with the mirror modifier get exported backwards if they dont have their transforms reset. The most obvious way to spot these is when importing an SMD because the bones appear inside-out.

Just a tip – it’s generally BAD to mirror something and not reset it’s transforms before export. It causes strange things to happen and not just in the SMD exporter. It’s also the reason why sometimes your meshes end up with their normals flipped. 3DXI auotmatically deals with mirrored mesh geometry but it doesn’t handle bones hence the bug Xander experienced.

That said, I don’t like fixing bugs like this because it makes my head hurt writing the following code:

// figure out of the parent node is mirrored.
Point3 a = pNode->GetNodeParent()->GetObjectTM(0).ExtractMatrix3().GetRow(0).Normalize();
Point3 b = pNode->GetNodeParent()->GetObjectTM(0).ExtractMatrix3().GetRow(1).Normalize();
Point3 c = pNode->GetNodeParent()->GetObjectTM(0).ExtractMatrix3().GetRow(2).Normalize();
Point3 d = CrossProd( a, b ).Normalize();
pExportNode->parentMirrored = DotProd( d, c ) < 0  ? true : false;

I also discovered a bug with Mult/Sub-Object materials where it’s crashing trying to retrieve invalide sub-materials and borks when has a material ID assigned but there is no matching ID in the actual material itself. This has been fixed.

Still some small fixes/enhancements to test and hopefully a updated download by the weekend.

Ooh! I want one of these!Thu, February 22nd, 2007 @ 11:34

I was mooching around Stockholm yesterday (after risking my life to take photos standing in the middle of a frozen lake) and happened to walk past a model shop so out of curiosity I thought I’d take a look. Wow, plastic kits have got bigger since I was a kid. Seriously, one of these things came in a box about 6 feet tall!

Anyway, one thing caught my eye – they actually had a plastic kit of an IX-B U-Boat exactly the type I just made a 3D model of. Was wierd seeing the model I’d spent a month making from drawings and photos in 3D and to spot all the details I’d missed. I kind of wish I’d had it to use as reference. Was more impressed by the fact this model came with a motor and was actually designed to float – I can’t think who’d spend all that time making and painting this kit then stick it in the bath…

I wish I’d had the 400 SEK ($30) this thing cost. Would look good stood on top of my monitor. :o)

Random thought…Thu, February 22nd, 2007 @ 11:24

You ever hear that quote about rats in New York?

“In New York city, you’re never more than six feet from a rat at any given time”

I dunno why but this popped into my head last night while sat at T-Centralen drinking coffee – How far are you from a can of Coke at any given time?

Think about it, just about every small shop or kiosksells it and what about homes and offices? I mean it’s got to be one of the most global brands out there and its pretty abundant.

So what you reckon? 75 feet?

3DS Max 9 SMD Exporter UpdateFri, February 16th, 2007 @ 17:12

Well that’ll teach me to release something on the 13th…

I’ve managed to nail a bunch of reported and un-reported bugs and update the 3DSMax 9 SMD exporter. So we’re now at version 0.2b! Bug fixes are as follows:

  • Fixed bug where floating point numbers were output in user’s regional locale format. (Thanks a bunch Microsoft for adding that “feature”…)
  • Fixed hidden bones and meshes being exported. Now, in normal “Export” mode only what is visible is exported. In “Export Selected” mode, what is selected is exported even if it is hidden.
  • Fixed bug where a bone who’s parent is not to be exported had its position and rotation misplaced.
  • Revised mesh output so that if a vertex’s weights include a bone that isn’t to be exported, all weights are collapsed and assigned to the meshes default bone. This stops invalid vertex weights.
  • Stopped exporter over-writing file with nothing if Cancel button pressed.

So, we’re still in beta so keep reporting those bugs. You should re-download the plug-in and replace the file in your Max plug-ins folder.