Projection Examples - Pixel-perfect mapping
Pixel-perfect mapping is suitable for projection surfaces bending across one axis, for example a wall constructed from multiple angled surfaces.
How the UV map is generated
A spline can be extruded to recreate the surface with the UV map automatically generated. Because the UV coordinates are generated by the extrusion, the UV map will have a perfectly even distribution of UV coordinates.
Step 1 - Generating the UV map (3ds Max)
- Draw a spline that traces the surface’s bottom edge.
- Apply an Extrude modifier to extrude the spline to match the surface’s height.
- Ensure you have the box called generate mapping coordinates checked when extruding the spline. Doing so will enable the extrusion to automatically generate a normalised UV map.
- Select the Unwrap UVW modifier.
- Open the Edit UVWs window to view the UV map.
- Check the UV coordinates are correctly flipped by comparing the positions of the surface’s vertices to the UV map’s texture coordinates. Before performing the check, ensure the surface is orientated and viewed in a south-north (front-back) direction. The image below shows the surface’s top-left vertice corresponds to the UV map’s top-left texture coordinate. This is correct. If the UV coordinates were incorrectly flipped, in , the video content would be mirrored across the screen when Direct mapped, for example a Radar layer would scan the screen in the opposite direction.
The image below shows a uniform checker pattern rendered to the surface, which indicates the UV map has an even distribution of UV coordinates.If the checker pattern appeared non-uniform, i.e. the checkers were differently sized, this would indicate the UV map had an uneven distribution of UV coordinates.
A pixel-perfect UV mapped surface in 3ds Max.
Step 2 - Rendering UV maps to content templates
The image below shows the content template, which was rendered from the UV map. The template’s resolution was calculated by:
-
Knowing precisely how many pixels produced by the projector will hit the projection surface, across either the horizontal or vertical axis.
-
Dividing this value by the projection surface’s dimension across the chosen axis, to calculate a pixel density.
-
Multiplying the pixel density by the remaining axis’ dimension, to calculate its resolution.
UV map rendered to a content template
It is important to measure the projection surface’s dimensions based on the UV map. In this case, the total length of the extruded spline should be measured, because the extrusion automatically generated the normalised UV map
By calculating both the template’s horizontal and vertical resolutions from a single pixel density value, the content should enable square pixels. This is important because if the resolution is calculated incorrectly the content may appear stretched across the projection surface. The template’s resolution is 3698x1080 pixels. This was calculated by:
-
Knowing approximately 1080 pixels will hit the projection surface vertically.
-
1080 pixels / 5 meters (the projection surface’s height) = 216 pixels per meter (hitting the projection surface vertically).
-
216 pixels x 17.12 meters (the projection surface’s length) = 3698 pixels (the horizontal resolution).
As a result, the aspect of the template’s resolution should match that of the surface’s dimensions. This can be checked by:
-
Dividing the template’s horizontal resolution by the vertical resolution.
-
Dividing the surface’s length by the physical height (remember to base the measurements on the UV map, explained earlier).
In this case:
-
3698 / 1080 = 3.424
-
17.2 / 5 = 3.424
Both values are matching, which indicates the template’s resolution is correct. To double-check this, a uniform square and circle should be drawn on the template in an image editing application, for example Adobe Illustrator, before the template is exported to . If the square and circle appear uniform across the screen in the template’s resolution is correct.
Step 3 - Mapping content to screens
The image below shows the content template directly mapped to the screen in Disguise, which was exported as an .obj
file from 3ds Max. n Designer three HD virtual projectors have been configured to sample content from the screen. Each virtual projector samples a different part of the screen, and in realtime the sampled content is outputted to the physical projectors by three unique feeds.
Remember to set the resolution of the screen in to match the content template by opening the Screen editor.
Template re-applied on the screen in Disguise.
Step 4 - Outputting content to projectors
The image below shows the three unique feeds to be outputted to the physical projectors. If a virtual projector changes position its corresponding output will automatically update in realtime to show the virtual projector’s updated point of view. Therefore, if a virtual projector’s position changes onsite, content does not require re-rendering, because the outputs are independent of the content. To read more about Disguise’s projector simulation toolkit see the Projector simulation chapter, which explains how to perform quick calibration, warp, and blend projectors using Disguise.
The automatically generated outputs from the three virtual projectors.