World editor
The World Editor (previously called Radiant in prior idTech engines) is where all the game assets are brought together to create a fully functioning game world. You will create new environments and add lighting, complete with a full radiosity preview. Next you can use this editor to implement game-play sequences with placement of triggers, targets, and enemies. When you are finished with the map, you will use the build wizard to finalize your package and load it in the engine.
Feature Overview
The main purpose of the World Editor is to serve as a level construction tool. Complex meshes modeled in other 3D editing packages, such as Modo, are placed in the map as static entities. Entities that require no meshes, or simple representations such as Lights and Cameras, are placed and modified directly through the editor. Invisible objects are also placed in the level to change the default behavior of various engine systems, to direct the various compilers, or to define game-play (such as triggers and targets). These operations are performed in conjunction with the other id Studio tools, which are used for things like visualization (WorldCamera), modification of object properties (EntityDefEditor), or reporting (ConsoleWindow).
The World Editor serves as a *Starting Point* for
some of the
other tools in idStudio. Loading a map in the World Editor makes all
the entities stored in that map available for editing. Source
declarations, or decls, can be edited without loading a map. The World
Editor also allows the map to be visualized and manipulated through the
WorldCamera, and is often used to select objects for use in other tools.
Interface
The primary interface elements of the World Editor are the 2D and Camera views of the level. It is in these views that you will select primitives (Shift + Left Mouse Button) and manipulate them. There are also a number of other browsers, tools, and other editor windows that aid in the creation of the map.
Editing Primitives
- Brush - A brush is basically an arbitrary convex polytope. Dragging the mouse across the 2D window with nothing selected will create a new brush. In previous idTech engines, the brush was the main building block for the levels. In idTech 5, it is used mainly for invisible collision surfaces (clipping) and game play volumes / triggers.
- Entities - An entity is anything that is placed in the map. Right-clicking in the 2D window will pop-up a menu allowing you to choose an entity for placement. For example, static world geometry created as an LWO in an external modeling package is placed as a 'func/static' entity. Enemy and NPC characters, lights, triggers, and game play elements are added as entities. You can then place them and then edit their properties with the Entity Inspector.
- Patch - A patch is a multi-purpose curved surface. Usage has dropped significantly in idTech 5 as most geometry is created in external modeling packages.
- Spline - A spline path can be placed and edited. There are most often used to describe the movement of an object through space, or animate the camera in special situations.
Lighting
Virtual textures make it possible to build uniquely textured static worlds with high quality per texel pre-computed global illumination stored directly in the texture data. This does not only allow high resolution, high quality off-line calculated global illumination to be stored efficiently, this can also improve the rendering performance by eliminating the rendering passes and GPU state changes that would otherwise be needed for lighting and shadowing.
idTech 5 uses pre-calculated global illumination for the lighting and shadowing of all static geometry in an environment. Because the lighting is pre-calculated off-line, a much more expensive global illumination algorithm can be employed to achieve very high quality lighting and shadowing without affecting the run-time performance. Not only the light, which comes directly from a light source, is taken into account (direct illumination), but also light rays that are reflected by other surfaces in the scene, whether reflective or not (indirect illumination). idTech 5 also does not store low resolution light maps that are blended on top of repeating or tiling textures like used in other game engines (like, for instance, idTech3). Per texel global illumination is baked directly in the megatexture(s) that are used to uniquely texture the environment.
While the lighting of the static world geometry is baked into the megatexture(s) for a level, the lighting of dynamic models cannot be stored in the texture data and has to be calculated in real time. To allow dynamic models to be rendered without additional rendering passes for lighting, an approximation is used for the dynamic lighting of these models. This lighting approximation is used for all dynamic models, such as characters, vehicles, doors, moveable barrels etc.
For dynamic lighting effects, so called "blend
lights" can be
used to either dynamically add light to, or subtract light from the
environment. For instance, blend lights are commonly used to display
subtly changing light from a candle or torch. Blend lights affect both
the static world geometry and dynamic models. However, the light is not
occluded by any geometry and objects in the blend light do not cast
shadows. Any surface fragment inside the blend light volume may be
affected by the blend light. However, a "light texture" or "falloff
texture" can be specified per blend light that determines to what
extent surface fragments inside a blend light volume are affected by
the blend light.
Editor Commands
The WorldEditor is the idStudio tool with the most extensive feature set, so it has a large number of available MenuBar and ToolBar options.