Skip to content

Virtual Raster ​

Synthetic image ​

Virtual Resolution creates a coarser working image for CRT or LCD treatment. Beamline calls this synthetic image the Virtual Raster. The game’s rendering resolution, window size and output resolution stay unchanged.

Grid modes and synthetic images ​

ChoiceWhat it supplies
ScreenOutput-sized treatment geometry
AutoA saved detected grid when applicable, or output-sized geometry otherwise
ManualTreatment dimensions chosen by the player
Virtual RasterA synthetic image made of lower-resolution cells

Screen, Auto and Manual place the treatment pattern over presentation color. A grid need not correspond to an image resource. Virtual Raster creates that image: each cell gets an averaged color that neighboring-cell reconstruction can read.

Geometry alone places treatment over continuously sampled presentation color; Virtual Raster constructs synthetic cell colors before CRT or LCD treatment.Geometry alone places treatment over continuously sampled presentation color; Virtual Raster constructs synthetic cell colors before CRT or LCD treatment.

Manual 960×540 and Virtual Resolution 540p use the same nominal grid dimensions at 3840×2160 output. Manual changes the treatment geometry; Virtual Raster constructs a 960×540 image for the downstream treatment.

Hollow Knight
Hollow Knight at the Dirtmouth bench, with CRT Core Flat using Screen geometry.
Screen reference
The same bench crop with CRT Core Flat sampling the synthetic 960×540 Virtual Raster.The Knight sitting on the Dirtmouth bench with CRT Core Flat and Manual 960×540 treatment geometry.
Same 960×540 treatment grid; Virtual changes the sampled image.

How a synthetic cell is built ​

The selected target raster divides the active content into cells. Beamline finds the cell containing each content coordinate, clamping its index at the raster edges.

Beamline reads four positions around the center: a quarter of a cell left or right, combined with a quarter of a cell above or below. In cell-local coordinates these are (¼, ¼), (¾, ¼), (¼, ¾) and (¾, ¾). Their equally weighted average becomes that cell's image color:

text
synthetic color = (top-left + top-right + bottom-left + bottom-right) / 4
One synthetic cell with four quarter-offset sample positions; their equal average supplies the cell color.One synthetic cell with four quarter-offset sample positions; their equal average supplies the cell color.

The four-tap average approximates a box integral. It differs from a nearest-neighbor center read, but still misses some cell detail.

The lattice stays fixed while its four reads use each new presented image. Colors can change as the scene moves through a cell, before a feature crosses its boundary.

Height selection and derived width ​

The selectable heights are 360p, 400p, 480p, 540p, 600p, 720p, 800p and 1080p. The width follows the active content rectangle's aspect ratio, rounded to the nearest integer:

text
virtual width = floor((content width × virtual height
                      + floor(content height / 2)) / content height)

For 1920 × 1080 content, 480p gives 853 × 480 cells: the ideal width is 853⅓, rounded to 853. For 2560 × 1600 content, 720p gives exactly 1152 × 720. The active content rectangle may occupy only part of the presentation surface. These calculations use that rectangle, without inferring a crop from black pixels.

Treatment scale is then recomputed on each axis as content size / synthetic raster size. The first example has about 2.251 output pixels per cell horizontally and 2.25 vertically; the second has about 2.222 on both axes. Integer width rounding can make the two scales slightly different.

When Virtual Raster can activate ​

Virtual Raster works with CRT Core, CRT Studio and LCD. The raster must be smaller than the active content on both axes.

Virtual Raster can replace a grid based on output resolution. This includes a game image that Beamline has verified is being presented, provided both the image and its logical grid match the output dimensions.

An active configured or detected grid takes precedence, even if one dimension matches the output. So does a verified source image smaller than the output.

Auto and Manual turn Virtual Raster off. Choosing Virtual Resolution changes the mode; a saved calibration can remain stored without controlling the active treatment.

If the target is not smaller, the existing geometry stays in use. Beamline does not choose a smaller height automatically: 1080p cannot activate for 1920 × 1080 content.

CRT and LCD use it differently ​

CRT runs a virtual-raster pass before reconstruction, including in Studio and reflection graphs. A presentation-sized intermediate stores the synthetic image. Reconstruction and optics read those cells directly; their dimensions and scale drive row spacing and material behavior.

LCD constructs cells with the same four reads during source sampling, without another graph pass. Neighboring cells supply their own colors, while aperture placement and coverage follow the LCD geometry.

Low-scale sampling ​

A smaller raster gives coarser cells and more output samples per logical row at a fixed output size. Raising the virtual height makes those cells finer and reduces that sampling headroom. At 1080 output lines, 360p supplies 3× vertically and 540p supplies 2×, provided activation is otherwise eligible.

At these scales, CRT uses low-scale filtering to reduce unresolved row structure.