project SpaceX Falcon 9 and Dragon 2 3D model ~2 minute read

This is a 3D model of the SpaceX Falcon 9 rocket along with the Dragon 2 capsule. The Falcon 9 is in its landed configuration (but with the soot mysteriously washed off) and the Dragon 2 is in launch configuration (except for, you know, the “being on the rocket” part.)

Technical details

The scene uses PBR techniques. The Falcon 9 textures were made with Blender (in a separate model file); I do this to get clean normal maps (along with albedo, metalness, and roughness maps.) My method is to use Blender Internal; I enable a few render passes:

  • AO (for the AO pass, obviously)
  • Color (for albedo)
  • Spec (for roughness)
  • Normal (for the normal map)
  • Material Index (for metalness; yeah, this is really hacky; no, I haven’t found a better solution yet. Turns out Blender wasn’t really built for rendering PBR maps…)

However, the normal map still needs a bit of extra processing, since Blender bakes it with the wrong coordinate system (you can tell from the black up-facing areas and the red/green edges.) To fix this, I remap the range from -1..1 to 0..1 with a color multiply and then a color mix node; then, I invert it (since the normal is actually backwards.) Note that your colorspace must be set to linear (“Display Device: None”) or gamma will be applied to the normal map, which will totally screw it up.

I then manually switch the output around and export all the files. (I could write a script for this, but manually exporting the textures isn’t that much of a time-waster yet.) Then, all I have to do is reopen the actual model file and the new textures are all there!

This technique has some downsides, though: notably, I’m rather limited in how many outputs I can repurpose for my evil means. I’m already using Material index for metalness; I suppose I could use UV coordinates instead if I had to, but I’d rather have something I can set per material instead of per mesh.