May 16th, 2009
Last week I introduced our prelminary decal editor for Overgrowth. At that point, the decal editor worked very much like the object editor, with 3D bounding boxes for each decal. This presentation style was quite messy. Decal editing has many of the same requirements as object editing, but it also has its own special conditions and constraints. Unlike objects, decals live on 2D surfaces, they are projected, and they will often be layered on top of one another. This week I worked on making decal editing more custom tailored to the nature of decals themselves. I think a video shows it best:
Click here to watch it in HD!
There are now two modes for interacting with decals: surface mode and projector box mode.
By default you start in surface mode. This mode is meant to be an easy way to quickly arrange smallish decals. All controls and graphics for each decal are projected onto the world in the same way as the decal itself is. With this mode, you get to work directly on the surface you are editing, sliding decals all about in a physcially intuitive way.
However, sometimes more powerful control is required. Our decal system works by projecting 2D images onto the ground. Thus, each decal is internally represented a 3D projector box, which shoots a decal texture from its front face to its back face, wrapping the texture across anything hit in between. In surface mode, the projector is automatically aligned to project head on with the surfaces it hits. This minimizes the distortion of the decals. But at times, we may want stretched and distorted decals, such as for elongated shadows and splattered liquids. We also may need to fine tune the projection direction in tricky situations, such when projecting onto a bumpy surface for which no single direction can, exactly, be called "head on."
This is where the projector box mode comes in. This mode allows full rotational control over the projection direction. In addition, the projector box mode allows the user to scale the third dimension of the projector: its maximum projection distance. Having a maximum projection distance is important. Otherwise, if, say, you are covering a tree in slime mold decals, you may find that some parts of the decals miss the trunk, fly across the map, and splatter all over your charming rabbit village.
What do you guys think of these two decal editing modes? There's still a lot of embellishment I want to add (for example, scrolling to navigate through layered decals). Do you guys have any suggestions for more functionality specifically tailored to decals?