johnsto.co.uk david johnston: level designer

Blog Archives

« Coming soon to PC Gamer UK Source Modelling in Blender »


HL2 Panoramas (Apr 10, 2005)

Sunday is typically spent sleeping, eating, lounging, drinking, starting fights, enjoying the company of family and friends, shaving animals, more sleeping, and concluded with a pixie dancing contest. In an effort to add to the list, I attempted to create Quicktime VR (QTVR) panoramas from Half-Life 2 maps.

I finally figured it out (requires Quicktime or Quicktime Alternative)

Briefly: requires mat_envmaptgasize 512, envmap and GoCubic.

Like HL and Quake 2 (to an extent), HL2 contains a command which lets you create environment maps from within the game - while playing, type envmap into the console and it'll produce 6 32x32 TGA images for you in a directory called `cubemap_screenshots'. It's usually used for creating the reflection maps that make shiny things shine according to the environment.

32x32 images are no good for panoramas. They look like a bad prescription. So, the resolution can be upped using the mat_envmaptgasize command to the maximum (?) of 512x512 per image, which whilst not ideal, is 1,536 times better than 32x32. All you need to do is load up a map, turn cheats on, set the variable to 512, then run envmap to generate the images. Easy.

The generated images end up named `XX.tga', where XX is coded as ft (front), lf (left), rt (right), bk (back/behind), up (up) and dn (down). For example:

Output envmap images

The next step requires converting these images into the QTVR panorama. For this we require GoCubic, a free tool that will convert 6 rectilinear images (like the ones we have) into a bog-standard QTVR panorama.

GoCubic expects to be given 6 images named in sequence, i.e. `shot1.tga', `shot2.tga', `shot3.tga', `shot4.tga', `shot5.tga' and `shot6.tga'. These map to the front, right, back, left, up and down images - but naturally, HL2's naming differs. So, we need to rename the images we've already got to match, for example:

d1_trainstation_01rt.tga » d1_trainstation_1.tga
d1_trainstation_01ft.tga » d1_trainstation_2.tga
d1_trainstation_01lf.tga » d1_trainstation_3.tga
d1_trainstation_01bk.tga » d1_trainstation_4.tga
d1_trainstation_01up.tga » d1_trainstation_5.tga
d1_trainstation_01dn.tga » d1_trainstation_6.tga

All the files are now ready. Load up GoCubic and from the `Make Pano' menu, select `Make Pano Movie...'. Browse to the location where you renamed the files, and select the first one (e.g. `d1_trainstation_1.tga'), and hit Open. Another browser will pop up asking where you want to save the generated panorama, so specify a filename or accept the default `default.mov'.

It'll do a little crunching and within seconds you have your QTVR panorama. Simple.

« Coming soon to PC Gamer UK Source Modelling in Blender »


user comments

qgpr at 05:23 on Apr 15, 2005

Interesting, from now on I'm using that as map "screenshot"s.