When the displays in a render setup are video projectors, the following problems need to be solved:
Both of these taken together is what we call Shaping.
High-end projectors often have hardware to do this, but sometimes this is insufficient or comes with an inefficient user interface.
One should avoid warping if possible. Any correction that can be done optically or by positioning the projectors better is superior, since warping (regardless of with hardware or with Ventuz) will slightly blur the image. Also, when doing warping, one should either only warp in hardware or in Ventuz, otherwise the image gets slightly blurred twice.
This is an overview about the capabilities of the shaping engine. A detailed description of all the features and the user interface follows.
After a Render Setup has been created that defines the placement of the outputs (projectors or displays in a video wall) and the overlap / bezel between them, the Shaping Editor can be used to set up warping and soft-edging. Both Render Setup and Shaping Editor are part of the Ventuz Configuration Editor
The shaping engine is part of the Ventuz Runtime/Presenter. The Shaping Editor can activate warping and soft-edging, and then edit all parameters and grids in real-time. Usually one would use a small laptop to run the Shaping Editor and connect over network to the Ventuz Presenter or cluster of Presenters. Most common operations while editing can be done with keyboard only, and a user interface overlay can be switched on in the Presenter. This lets you shape while looking at the projection, not the laptop's display.
Warping is done by defining a grid. By default, a 2x2, 3x3 and 5x5 grid are automatically created, called Layers. All layers together are called a Group. It is possible to add additional layers if more control is required, or to add new rows and columns to an existing layer.

The finest layer will be used to create a mesh that does the actual distortion. The coarser layers are used to modify the finer layers. It is possible to switch freely between the layers and do coarse corrections even after fine-tuning was done without losing work done on any other layers.
When rendering a mesh, the texture is linearly interpolated, while the control grid uses Bézier splines to interpolate. So it is not good enough to just use the finest layer as base for warping, within Ventuz adaptive tesselation is applied until the error is below a certain threshold.

Soft-Edging is done in the same way. In a simple 3 projector setup, the middle projector will have two groups, one for the left edge and one for the right edge. These groups have only one layer by default, and for simple setups it is rarely needed to edit the control points. But when projecting on irregular screens the ability to have multiple layers with a high number of control points comes in handy.

For each edge individually, the ramp can be controlled by gamma values and a spline when more control is required. Both gamma and spline are available as a combined value and separate red, green and blue values. All gammas and splines are combined and can be used simultaneously.
The ramps are internally calculated with 16 bit precision. Projectors of course don't support such quality, and in some conditions banding is visible in the ramps. Dithering can be enabled to re-gain some of the internal precision, which usually solves any notable banding.
For each output, a simple Color Correction with lift and gain is available. Gain will make the image brighter or darker, without changing the black level. This is done by multiplying the RGB values with the gain. Lift will change the black level. This is done by adding to the RGB values before applying gain.
A Test Pattern Generator can be used to generate various test patterns that can be useful while shaping. Additional images can be provided by the user. As the shaping is done with the presenter running, the actual Ventuz scene for the event can be loaded, or Ventuz can be used to construct additional test scenes.
So to summarize:
For each Warping and Soft-Edging, Groups can be defined to create meshes for warping and gradients for soft-edging. Each group can have multiple Layers, where the finest layer is used to create the mesh or texture and the other layers can be used to deform the finest layer.
Shaping is not for free, but should rarely be a problem.
Totally disabling shaping is of course the fastest.
The performance of warping depends on how fine the warping mesh is tesselated. This can be checked with the Show Wireframe option. On modern GPU's this will rarely be a problem.
Soft-edging will impact the speed of Ventuz only a little, and that impact is independent from the number of edges. Only while changing the edges with the editor, recreating the edge-texture might be noticable of course.
When running the Ventuz Designer instead of the Ventuz Presenter, shaping is only active when the Production Preview mode is enabled.
Here a general overview of the user interface:

Many operations have keyboard shortcuts, so most of the work can be done without looking at the user interface on your computer monitor, but at the outputs directly. These shortcuts will only work if the grid editor (8) has the keyboard focus. When it has the focus, an orange border is displayed around the grid editor.
The output navigation (3) displays a schematic view of the outputs. It will not try to faithfully represent the actual size and position of the displays, but indicates the general layout, like a subway map will not represent the actual distance between stations. For instance overlap is not shown here.

To change the current output, either click or click and drag in this area. When the grid editor has focus, use cursor + alt keys to change the current output.
The area marked with (4) can be used to switch between warping and soft-edging The output section contains color correction and other per-output settings.
The group and layer navigation allows to jump between groups and layers. Here are examples of two edging groups with one layer each, and a warping group with 3 layers.


With the keyboard, pressing 'W' or 'E' will cycle through the warp or soft-edge groups. Page up and down walk through the layers of the current group. The home key goes to the coarsest layer and the end key goes to the finest layer.

These buttons control various global settings.
These settings will effect the presenter / cluster even after the render setup has been left:
| Nr | Name | Description |
|---|---|---|
| 1 | Enable warping | If this is disabled, the whole warping engine is disabled |
| 2 | Enable soft-edging | Disable only soft-edging. Usually one would switch off the edging until warping is done. |
These settings are only effective while using the shaping section of the render setup:
| Nr | Name | Description |
|---|---|---|
| 3 | White background | Fill the unused pixels of an output with white instead of black. This shows how many pixels are wasted because of the warping. |
| 4 | Highlight overlap areas | Sometimes it is useful to highlight the areas where the outputs overlap because precise warping here is especially important. |
| 5 | Cut soft-edges | This will cut the soft-edges in a way that the output of the two sides directly touch but not overlap. This is useful to check how well the outputs match colors. This requires that the warping has been done already. |
| 6 | Darken rendering / test image | Sometimes the user interface overlay is hard to see over a bright rendering or test pattern. This button will darken the background to remedy this. |
| 7 | Solo Mode | Like in an audio mixer, this disables all other outputs. Useful when there is confusion which output contributes to what. Also the test pattern will center to the solo output. |
| 12 | Show keyboard shortcuts | Most users prefer to do as much as possible with keyboard alone. This option aids in memorizing the keys. |
| 13 | Screen GUI options | Control extent and size of the user interface HUD provided on the outputs. |
These test pattern related options are effective while in either part of render setup:
| Nr | Name | Description |
|---|---|---|
| 8 | Enable test pattern | Enable test pattern. In the editor, the test pattern is always shown. The presenter can show either test pattern or the Ventuz scene. |
| 9 | Multiply output color | Each output is assigned a color. This will multiply the test pattern foreground color with the output color. If good colors are assigned to the outputs, this helps to identify outputs and figure out which of two overlapping outputs needs warping and which is correct. |
| 10 | Select test pattern | There are many useful test patterns programmed already. If they are insufficient, user images can be used as test patterns. |
| 11 | Test pattern options | Most test patterns have a range of options to configure the width and distance of lines, or the colors. |
Most test patterns are self-explanatory, but some test patterns have options that need explaining.
Most test patterns offer a foreground and a background color. Also each output can be assigned a color. By pressing the Multiply output color icon in the global toolbar, the foreground color will be multiplied with the output color. For this to work it is best to choose a bright color as foreground color.
The various grids and lines can be animated with the Speed parameter. Using slow moving diagonal lines is good for finding subtle warping irregularities.
By default grid and checker test patterns will not perfectly fit, the last row and column will be cut off. By pressing Fit corners, this will be corrected, at the price that the aspect ratio is not guarantied to be 1:1.
The image test pattern allows you to specify a directory that contains any pictures you prefer as test patterns. It is important that all presenters in a cluster and the computer that runs the shaping editor have the images at the exact same path. Using a network share is the simplest way to ensure this. If the image could not be loaded, a dummy image with color gradients is generated.
By pressing '-' and shift '-' can be used to toggle certain options in other test patterns:
Warping and soft-edging both use grids of control points, creating a Bézier-surface.

The color of the control points has the following meaning:
To select points, left-click on them. Pressing shift while doing so will add to the selection. When clicking besides the points, a rectangle is drawn as the mouse moves, and the points in the rectangle are selected. Again, pressing shift while doing so will add to the selection.
Pressing A + control will select all points, D + control deselects all points except the control point where the cursor is. The cursor can not be hidden and the control point at the cursor is always selected.
In addition to the primary control points at the cross-sections of the grid, there are control handles for finer control over the mesh. These are only visible, and can only be clicked on, when the associated primary control point is selected.
When working with the keyboard, using the cursor keys will move the cursor, and the cursor is also selected. Pressing 'b' will enter box-selection mode, again use the cursor to change the box size. To move the cursor to a control handle, use cursor keys + control.
The control points can be moved with the mouse just as they are selected, that is
or
+ SHIFT. Holding CTRL while moving the mouse will limit the movement to either the x or y axis. This works by pressing CTRL before or after clicking
. To move the points with the keyboard, use the Cursor keys + SHIFT.
For a warping layer, there is a way to move a control point without warping the image. This allows to move a point to a feature of the projection screen, and warp from there. With the mouse, use
+ CTRL. With the keyboard, use Cursor + SHIFT + CTRL.
Here a summary:
| Mouse | Keyboard | Description |
|---|---|---|
| Cursor | select point | |
| SHIFT Cursor | move selected points | |
click on point | select only this point, then move | |
SHIFT click on point | add point to selection, then move | |
CTRL click | move only horizontally or vertically | |
click not on point | B, then Cursor | box selection |
CTRL click | CTRL Cursor | move without warping |
click | pan | |
wheel | zoom |
At the very left of the editor is a toolbar with buttons that help edit the grid.

| Nr. | Keyboard / Mouse | Descriptions |
|---|---|---|
| 1 | Insert row (right of cursor) | |
| 2 | Insert columns (below cursor) | |
| 3-7 | A U K L S | Handle Modes, see below |
| 8 | X | Reset selected points to default position |
| 9 | CTRL-Z | Undo |
| 10 | CTRL-SHIFT-Z or CTRL-Y | Redo |
| 11 | wheel up | Zoom in |
| 12 | R | Reset zoom and pan |
| 13 | wheel down | Zoom out |
The grid editor can be zoomed with the mouse wheel and panned by dragging around with the middle mouse button. There are also zoom buttons on the left toolbar. Press the R key to reset to default zoom & pan.
The color of the handles indicates how the handles behave and which constraints they enforce.
| Name | Color | Shortcut | Description |
|---|---|---|---|
| Linked | Green | A | Both sides have same direction and stretching |
| Straight | Yellow | U | Both sides have same direction, but can be stretched differently |
| Unlinked | Red | K | Both sides are completely independent, allowing for kinks and different stretching |
| Linear | Pink | L | Handles are automatically calculated for linear interpolation |
| Default | Brown | S | Handles are automatically calculated for maximum smoothness |
With most modes, the change of a handle is local and effects only the area of the surrounding 3x3 control points. In default mode, the change effects a 5x5 surrounding. This mode is useful for the 2x2 and 3x3 layers where this does not matter.
To change the mode, select a handle and press one of the handle mode buttons. Alternatively, use the keyboard shortcuts in the table above. In both cases, when selecting a primary control point, both horizontal and vertical handle mode are set.
In default mode, the handles are calculated automatically. When trying to move a handle in default mode, it automatically switches to linked mode to allow editing.
To insert a row or column in the finest layer, Select a primary control point and press the insert row or insert column button. The new row or column will be inserted to the below or to the right of the selected point. Therefore, the option is disabled if selected point is in the rightmost column or the bottommost row.
Please note that the handle modes are changed by this action: when inserting a single row into a 5x5 grid, the distances between the rows is different and the linked handle mode can not be used any more, it is automatically changed to straight where that is required.
The subdivide-feature explained below does not suffer from this as it inserts rows and columns everywhere, uniformly.
More buttons are at the lower-right part of the user interface:

The finest allowed layer is 33x33 points.
By pressing the '+' icon in the layer navigation, the finest layer can be subdivided in X, Y or both. This will insert a row and / or columns between every existing pair of rows / columns: a 5x5 point grid turns into a 9x9 point grid.
As 33x33 is the finest allowed layer, any layer with more than 17 points either horizontally or vertically can not be subdivided any more.
Subdivision is the most precise way to add more control points, as all other methods are worse at capturing detail in the new, finer layer.

One could consider a 5x5 point grid is a 4x4 square grid, and every square gets sliced in half horizontally and vertically, resulting in an 8x8 square grid, or a 9x9 point grid.
There are two modes for creating soft-edges. Automatic mode and manual mode. Automatic mode will be sufficient for projections on semi-planar surfaces. When doing 3d projection mapping, the soft edges might become very irregular, and manual mode might be required.
Automatic mode is enabled by default and can be disabled in the Edges section.
The ramps for soft-edging execute the following functions in this order:
This allows you to roughly adjust the gamma, and then use the spline editor to fiddle with the ramp until it is satisfactory.
Each ramp (or group) has its own set of gammas and splines.
This is the same for automatic and manual mode, even though the user interface differs.
Spline control points are inserted by clicking on the spline itself. They can be moved by clicking on them and dragging them. Moving a control point next to another control point removes it.

The buttons below switch between the splines for white, red, green and blue, and revert the spline to default.
In automatic mode, the shape of the edges can not be changed. If the warping is correct, this should not be required.
The output navigation will show the edges. By clicking on an edge, an editor window will open up and allow to edit gamma sliders and splines of both adjacent edges.

Here the geometry of the edges can be edited just like a warping layer. It is possible to add more control points to the grid. Remember that the edges are also warped, which can be a bit confusing when editing edge-layers on the projection screen.
In manual mode, only one edge can be edited at time.

Each point has an associated value, which is either 1 (white, image) or 0 (black). If more complex forms than simple edges are required, this value can be edited with a slider among the properties or by pressing the I and shift-I keys, setting the value to 0 or 1.
The spline editor for the ramps is started by pressing on the small splines next to the gamma sliders. This opens a bigger window.
The output category has the following properties:
| Name | Description |
|---|---|
| Gain | For color correction, a value that is used to multiply the rendering pixels |
| Lift | For color correction, a value that is added to the rendering pixels, before contrast is applied |
To change all 3 (red, green and blue) sliders at the same time, press the alt key while dragging with the mouse. This will change the color values while trying to preserve the ratios between the colors, so brown will always stay brown and not become more and more pale-white as values increase.

The Quality section mainly controls how fine the warping mesh is to be tesselated. The defaults are set for quite high quality, when using more precise values you should check for wasteful over-tesselation with the Show Wireframe option.
| Name | Description |
|---|---|
| Max Level | Maximum subdivision when creating the mesh from the finest layer |
| Position Error | Acceptable difference for the vertex positions between perfect Beziér interpolation and the actual mesh, in pixels |
| Mapping Error | Acceptable difference for the UV mapping between perfect Beziér interpolation and the actual mesh, in pixels |
| Ramp Error | Acceptable difference for ramp colors between perfect Beziér interpolation and the actual mesh, in color values ranging from 0 to 255 |
| Dither Mode | Enable dithering to improve ramp quality. Temporal dithering will change the dither pattern every frame, that usually gives better results but may result in undesirable artifacts. |
| Show Wireframe | Shows the wireframe of the warping mesh. Useful for checking if the level of subdivision is reasonable or insane. |