Skybox (2D) with Terragen

category:tutorialscategory:Third Party Toolscategory:Material System
 is a freeware scenery generator which can be used to create 2D skyboxes. The freeware version has a limitation that effectively limits the texture dimensions of the skybox to 960, so it can only really be used for skies at 512x512. If Terragen is registered for $99 (US), the size limitation is removed, so skies at 1024x1024 could potentially be rendered.
This tutorial will explain how to use a scene in Terragen to create a 2D skybox that can be used in Hammer.
==Creating the Scene==
Terragen can be downloaded here.
Terragen takes a little bit of practice to get the hang of. There are many websites that can teach you the basics. Here are some good ones:
*The official guide
*Terragen tutorial by E. DeGiuli
*Terragen tutorial by C. Brooksbank - Recommended
Create your scene and save it. The camera position doesn't matter for now. Terragen can render realistic land if you're very skilled. In source engine games making terrain is not recommended for a 2D skybox, since Source has 3D skyboxes; however, it can often be a good idea to use the tool to create a downwards facing texture to use on a displacement map in your skybox, like de_inferno in CSS. Removing FOV distortion can be a pain, but its not entirely necessary.
==Set up the Script==
The skybox requires six images to be rendered. This script will automate the creation of all six so you do not have to repeatedly come back to your computer and readjust the camera after each render.
Use Notepad to save the following script as skyboxscript.tgs. It can be saved anywhere.
initanim "C:\output\sky_testft", 1
;_ft
Zoom 1.0
CamH 0
CamP 0
CamB 0
frend
initanim "C:\output\sky_testlf", 1
;_lf
Zoom 1.0
CamH 90
CamP 0
CamB 0
frend
initanim "C:\output\sky_testup", 1
;_up
Zoom 1.0
CamH 270
CamP 90
CamB 0
frend
initanim "C:\output\sky_testbk", 1
;_bk
Zoom 1.0
CamH 180
CamP 0
CamB 0
frend
initanim "C:\output\sky_testrt", 1
;_rt
Zoom 1.0
CamH 270
CamP 0
CamB 0
frend
initanim "C:\output\sky_testdn", 1
;_dn
Zoom 1.0
CamH 270
CamP -90
CamB 0
frend
==Render the Skybox==
1. Now, in Terragen, uncheck both of the Fixed Height Above Surface boxes in the Rendering Control window. Place your Terragen camera where you want the viewpoint of the skybox to be. What's important here is the Camera Position. The Camera Orientation doesn't matter. Note that changing the height can affect the appearance of the clouds even though the horizon is always in the same location.
2. Set the detail all the way up in the Rendering Control window. Set the width and height both to 512. This is the best you can do with the freeware version. If you have registered Terragen, set them both to 1024.
3. You should double check that you did the first two steps right so you don't waste a lot of time. Now, choose Execute Script... from the Terragen menu, and choose the file skyboxscript.tgs that you created earlier. Now the rendering will commence. It may take a couple of hours or more. Call someone you love.
4. When the rendering is complete, a dialog will pop up saying the script is complete. Quit Terragen.
==Get the Textures Ready==
Now, if you open up the C: drive, you'll see six new BMP files. Rename them as follows, where xxxx is whatever you want to name your sky:
Original filename	Change to
skyrender0001.bmp	xxxxft.bmp
skyrender0002.bmp	xxxxlf.bmp
skyrender0003.bmp	xxxxup.bmp
skyrender0004.bmp	xxxxbk.bmp
skyrender0005.bmp	xxxxrt.bmp
skyrender0006.bmp	xxxxdn.bmp
Use Photoshop or PaintShopPro to save them as TGA files into ...sourcesdk_content/materialsrc/skybox. Create the folder if you have to. Then drag the six TGAs onto Vtex to create your VTFs.
==Create the VMTs==
Head over to your new VTFs. They'll be in ...materials/skybox for whichever game you're editing. Now create six VMTs with the same names as the VTFs using this format:
"UnlitGeneric"
{
 "$basetexture" "skybox/xxxxbk"
 "$nofog" 1
 "$ignorez" 1
}
Where xxxx represents the name of your sky. For each of the six VMTs, change that bk to the appropriate suffix to match its filename.
==Completion==
The skybox is complete. To use it in Hammer, go to Map properties... in the Map menu and change the skybox entry to xxxx, where xxxx represents the name you chose for your sky.