Difference between revisions of "Landscape LOD Tutorial"

From the Oblivion ConstructionSet Wiki
Jump to navigation Jump to search
imported>Kienjakenobi
imported>Kienjakenobi
Line 51: Line 51:
Also see the [[Visible When Distant Tutorial]].
Also see the [[Visible When Distant Tutorial]].


==Testing it==
==Testing==
At this point you should be able to save everything and test it out in the game.  
You should now be able to save your mod and test it in the game.
An unresolved issue is conflict with other mods. At this time it is recommended to only load oblivion.esm and your mod - loading other mods interferes with the LOD terrain, and it will not be visible. This probably has to do with the hashcode for the textures not matching the hashcode for the mod, that seems to be dependent on mod name and mod load order. Currently no fix for this problem is known.


Anyway, Load up your mod, load or start a game, and move to your world by bringing down the console (~) and type COW MyWorldSpace 0,0 (or some other cell coordinate you want to visit. "MyWolrdSpace" of course should be replaced by the ID of the Worldspace you created).  
For testing purposes, it is probably best to only load oblivion.esm and your mod.  Loading other mods interferes with the LOD terrain and might make your terrain not visible.  This probably has to do with the hashcode for the textures not matching the hashcode for the mod, which seems to be dependent on mod name and mod load order. Currently no direct fix for this is known; however, there is a work-around which you can read about in the "Additional Notes" section below.
Jump around the map with coe x,y to visit different cells.


Enjoy your beautiful LOD terrain!
A quick way to get to your landscape once you have loaded the game:
 
Open the console (~)
Type: COW MyWorldSpace 0,0
Replace 0,0 with whatever cell location you want to visit.
Replace MyWorldSpace with the ID of your WorldSpace.


==Additional Notes==
==Additional Notes==

Revision as of 11:00, 1 July 2008

This tutorial will summarize the steps necessary to create LOD terrain - the land you see in the distance in Obivion (if you have the far land option turned on). We will also discuss common problems and possible solutions.

Getting Started

If you want LOD terrain, you are probably working on a new worldspace. For information about creating a new worldspace, and using the heightmap editor, see these tutorials:

So go ahead and work on your heightmap. When you are happy with your landscape, save it in the heightmap editor but don't save the esp file yet.

Fixing Mesh Errors

This section is for those who just now created a new landscape and have not yet saved it even for the first time. If you have a well established mod that has been saved and re-opened successfully in the Construction Set at least once, then you can skip this section.

Here's where the going gets a bit rough. The lanscape you just created probably has some errors. These errors show up as "rips" in the landscape mesh which wouldn't be all that dramatic, but when the CS saves your esp, it can not save cells with such errors in them. Which means, when you reload a plugin with such a faulty cell, those cells will be gone, they will be gaping holes dropping down to 0 elevation. Therefore we need to fix these rips before we save our plugin. These rips occur most frequently around cell 0,0 and other corners where four quads meet, if you have more than four.

Quads
quadrants, 32x32 cells. If you have created a map by painting one whole viewable area in the heightmap editor, you have four quads (visible as divided by the green lines in the overview if you have created one), they meet in the lower lefthand corner of cell 0,0

Switch to the render window and enable the cell grid (press B ) and wireframe (W). Go to cell 0,0 and check the four corners of the cell, one of them (lower left most times) will have a rip. You will need to flatten or smooth that vertex using the landscape editing tool. If your landmass is larger than four quads you need to go to all quad intersections (every 32 cells) and check for the same type of error.

Once you have fixed all of those save the esp. If you still get errors about cells that are missing data, make a note of which cells they are (do not hit "yes to all"), fix them as described, and then save again. Repeat this process until you get no errors.

Creating the LOD Meshes

In the Heightmap Editor window, go to File --> Generate LOD. There are two LOD generation options. Quick Prototype is less accurate but takes less time to generate while Full is more accurate and slower. Depending on the speed of your computer, generating the LOD meshes can take a long time. On my AMD 4400+ dual core it took me about 20 minutes to generate the meshes for my worldspace. Be patient, your computer has most likely NOT frozen although it may look like that!

This step created the actual models for the distant terrain, which is stored as a .nif file in \Data\Meshes\Landscape\LOD. It also generated the normal maps for the terrain. These are saved as .DDS format files with an _FN suffix in the file name and are saved in \Data\Textures\landscapelod\Generated\.

Creating the LOD Diffuse Maps (Color Textures)

Before this step you may want to clean out \data\textures\landscapelod\generated to avoid conflicts and make it easier to find your newly generated files. I usually create a folder in the landscapelod folder titled "Ding" and just move all the existing files into that folder before proceeding with this step.

This step creates the color images, or textures, of your worldspace, which includes every object you place in the exterior of your world. Therefore, you should do this step very last, after you have placed everything in your world and completed all of your landscape and texture editing.

Once you are ready, go to the render window in the Construction Set. Go to 0,0 by double clicking it in the Cell View window. The Construction set creates the textures based on exactly what you would see in the render window. Therefore, you probably want to turn off the pruple water (Shift + w), which would look terrible in the game. Also turn off cell grids (B) and bright lighting (Button in the taskbar). Now right-click in the render window and select Generate LOD Textures --> This LOD Quad. Now the texture generation process will load all cells and take snapshots of them (It actually generates a 64x64 pixel texture from every 2x2 cells). These snapshots are stored in \data\textures\landscapelod\generated\partial\. The time it takes to generate these textures depends completely on how populated your worldspace is.

At the end of this process the partial textures are stitched together into one large 1024x1024 texture which is stored in \data\textures\landscapelod\generated\. The files in the \partial folder are not used by the game. They are only used by the Construction Set to stitch into the final, single texture in the \generated folder. Therefore, you can delete the partial textures as soon as you have tested everything in-game.

You just generated a single LOD texture for the quad you were inside in the Render Window. Now you need to move into each quad and create an LOD texture for each quad. Unless your worldspace is nothing more than a hold in the ground (Very small), you are going to need to generate at least four of these. Go to cells (0,-1), (-1, -1), and (-1,1) and repeat the process for each quad. If nothing happens, it means that partial textures for this quad already exist. If you need to update the LOD textures, you have to delete the old partial files first.

The Naming Bug

There is a small bug in the Construction Set that incorrectly names the textures that are created in \data\textures\landscapelod\generated\. If you'd load your mod now, you will likely see purple landscapes everywhere because of this bug.

To fix this, simply go to the textures in \data\textures\landscapelod\generated\ and rename any textures that have a single 0 in it. A bunch of the new textures will have a "0" instead of a "00" in the part of the name that indicates cell coordinates. You need to rename the files, replacing all instances of 0 with 00. For example, the texture titled "11607696.0.-32.32.dds" should be renamed "11607696.00.-32.32.dds"

The Black Texture Bug

If you find some of your textures have black areas, this is due to a bug in the Construction Set. The partial textures were not assembled correctly. This seems to be hardware or system related because some people get it while others do not. There is no known fix to the Construction Set at this time, but there is a workaround. I have created a python script that can assemble the textures correctly.

Updating LOD information

If you have buildings or trees in your world you also want to update LOD information for those.

Go to the world->world testing->update distant LOD menu, make sure the right boxes are checked and find your new world space in the lefthand side of the window. Select your world space and then click on the "export for this world space only" button. Depending on the number of objects, this process can again take a long time but with no objects in the world space the process you take a couple of seconds at most, even for a large world. I am not yet sure how the landscape update exactly works - you won't need it if you followed the steps above, but I usually let the update run anyway. Also see the Visible When Distant Tutorial.

Testing

You should now be able to save your mod and test it in the game.

For testing purposes, it is probably best to only load oblivion.esm and your mod. Loading other mods interferes with the LOD terrain and might make your terrain not visible. This probably has to do with the hashcode for the textures not matching the hashcode for the mod, which seems to be dependent on mod name and mod load order. Currently no direct fix for this is known; however, there is a work-around which you can read about in the "Additional Notes" section below.

A quick way to get to your landscape once you have loaded the game:

Open the console (~) Type: COW MyWorldSpace 0,0 Replace 0,0 with whatever cell location you want to visit. Replace MyWorldSpace with the ID of your WorldSpace.

Additional Notes

If your distant LOD land does not show up, it is recommended that you download Tes4Gecko. This will let you move your World Space to the master index and allow your land to show up regardless of the plugin's load order.