camera2d
The orthographic camera a flat scene is drawn from. pixels_per_unit scales it, ambient_color lights every 2D surface, and the last current camera wins.…
On this page
2d · render · 55 properties · 2D
The orthographic camera a flat scene is drawn from. pixels_per_unit scales it, ambient_color lights every 2D surface, and the last current camera wins. Only its node moves it.
In a scene, camera2d is the node key that applies it. A script reaches each property below as a field on node.camera2d: reading one asks the running component, and assigning one leaves the rest alone. The whole table is node.camera2d.get() and node.camera2d.set(table).
Properties
| property | type | default | description |
|---|---|---|---|
aberration_amount |
float | 0.004 |
How far aberration slides red from blue at the frame's edge, as a fraction of it At least 0. |
ambient_color |
color | [0,0,0,1] |
Light every 2D surface gets before any light2d; its alpha is ignored |
bloom_intensity |
float | 0.6 |
How much of the bloom is added back over the frame At least 0. |
bloom_knee |
float | 0.5 |
Width of the soft band around bloom_threshold a pixel starts to bloom in; 0 is a hard cut At least 0. |
bloom_mips |
int | 5 |
Levels in the bloom chain, each half the size of the last; more spreads the glow wider Range 1–12. |
bloom_threshold |
float | 1 |
Brightness a pixel has to pass to bloom At least 0. |
crt_aberration |
float | 0.004 |
How far crt splits the colours at the frame's edge, as a fraction of it At least 0. |
crt_curvature |
float | 0.12 |
How far the crt pass bends the frame like a tube's glass; 0 is flat At least 0. |
crt_scanline_count |
float | 480 |
How many scanlines crt draws down the frame At least 1. |
crt_scanline_intensity |
float | 0.25 |
How dark the crt pass draws its scanlines; 0 draws none Range 0–1. |
crt_vignette |
float | 0.35 |
How dark crt draws the corners Range 0–1. |
current |
bool | true |
Whether this camera drives the view; the last current one wins |
dof_aperture_f_stops |
float | 0.125 |
The lens aperture in f-stops; smaller blurs more At least 0.001. |
dof_focus_distance |
float | 10 |
Distance from the camera to the plane that stays sharp, in world units At least 0. |
dof_max_blur_pixels |
float | 64 |
The widest a blur circle grows, in pixels At least 0. |
dof_max_depth |
float | 1000000 |
Anything farther is blurred as if it were at this distance, in world units At least 0. |
dof_mode |
enum | bokeh |
How the dof pass blurs: a uniform disc with sharp highlights, or a soft gaussian falloff One of bokeh, gaussian. |
dof_sensor_height |
float | 0.01866 |
Sensor height in world units; with the field of view it fixes the focal length At least 0.000001. |
dof_taps |
int | 48 |
Samples the blur gathers per pixel; more is smoother and costs more At least 1. |
edges_threshold |
float | 4 |
How sharp a change in depth the edges pass outlines; lower outlines more At least 0. |
fxaa_edge_threshold |
float | 0.125 |
The fxaa pass smooths an edge whose contrast passes this fraction of the brightest pixel near it At least 0. |
fxaa_edge_threshold_min |
float | 0.0312 |
Contrast below this is left alone by fxaa, so dark noise is not smoothed At least 0. |
gi_cascade_count |
int | 5 |
Levels of radiance cascades; more reach farther light Range 1–8. |
gi_cascade_directions |
int | 16 |
Directions the first cascade gathers from, rounded to a square of a power of two; more sharpens shadow edges At least 4. |
gi_downscale |
int | 2 |
How many times smaller than the frame the gi light field is; larger is faster and softer At least 1. |
gi_max_distance |
float | 2000 |
The farthest a gi ray marches, in world units At least 0. |
gi_max_steps |
int | 32 |
Steps a gi ray takes before it gives up At least 1. |
gi_probe_spacing |
int | 2 |
Field pixels between the first cascade's probes, rounded up to a power of two; finer resolves sharper light Range 1–16. |
gi_rays |
int | 8 |
Rays the gi pass casts per pixel each frame; the temporal blend adds up the frames At least 1. |
gi_screen_occluders |
bool | false |
Bake the occluders into a distance field each frame, so their count costs nothing; an occluder off screen then casts no shadow |
gi_solver |
enum | ray_march |
A ray march per pixel, or radiance cascades: probe grids that gather farther light for less One of ray_march, cascades. |
gi_temporal_blend |
float | 0.85 |
How much of last frame's gi light is kept; higher is smoother and trails behind motion. The cascade solver ignores it Range 0–0.99. |
grain_amount |
float | 0.06 |
How much the grain pass lightens and darkens a pixel At least 0. |
hidpi |
bool | true |
Count pixels_per_unit in logical pixels, multiplied by the display's scale; off counts physical pixels, for pixel art that should land on the screen's own grid |
loupe_border_color |
color | [1,0.9,0.2,1] |
The colour of the loupe's frame and of the outline round what it magnifies; alpha is ignored |
loupe_corner |
enum | bottom_right |
The corner the loupe draws its inset in One of top_left, top_right, bottom_left, bottom_right. |
loupe_focus |
vec2 | [0.5,0.5] |
The point the loupe magnifies, [0, 0] at the frame's top-left and [1, 1] at its bottom-right |
loupe_size |
float | 0.4 |
The inset's side, as a fraction of the frame's shorter side Range 0.01–1. |
loupe_zoom |
float | 8 |
How many times the loupe pass magnifies At least 1. |
pixelate_size |
float | 4 |
The side of one block the pixelate pass reads the frame back in, in pixels At least 1. |
pixels_per_unit |
float | 60 |
Zoom in logical pixels per world unit At least 0.01. |
post |
list | [] |
The frame's passes, in order. bloom, ssao, ssr, dof, fxaa, sharpen, tonemap, vignette, aberration, grain, pixelate, crt, grayscale, waves, loupe, stereo, edges, gi name the engine's own -- ssao, ssr and dof are 3D only, gi is 2D only and lights the frame in place of the light2d light map, and where those and bloom run is fixed by the pipeline. Any other name is a material asset drawn over the whole frame. The rest run in the order given. tonemap is where the film becomes a picture: a pass before it works in linear light and is what blooms, one after it works on the finished frame, and a list that does not name it has it at the head |
sharpen_amount |
float | 0.5 |
How hard the sharpen pass sharpens Range 0–1. |
ssao_bias |
float | 0.025 |
How far in front of a surface a sample must be to occlude it. Too small and a glancing surface occludes itself into black At least 0. |
ssao_intensity |
float | 1.2 |
How strongly the ssao pass darkens At least 0. |
ssao_power |
float | 1.5 |
The contrast the occlusion is raised to At least 0.001. |
ssao_radius |
float | 0.5 |
How far the ssao pass looks for something occluding a point, in world units. Scale it with the scene At least 0.001. |
ssr_edge_fade |
float | 0.12 |
Width of the band at the frame's edge reflections fade over, as a fraction of the frame At least 0. |
ssr_intensity |
float | 1 |
Multiplier on every screen-space reflection At least 0. |
ssr_max_distance |
float | 60 |
The longest a reflection ray travels, in view-space units At least 0. |
ssr_max_steps |
int | 48 |
Steps the ssr pass marches a reflection ray before it gives up At least 1. |
ssr_roughness_cutoff |
float | 0.6 |
Surfaces rougher than this reflect nothing on screen, and fade out approaching it Range 0–1. |
ssr_thickness |
float | 0.5 |
How far behind a surface, in view-space units, the ray still counts as hitting it At least 0. |
vignette_amount |
float | 0.35 |
How dark the corners go under the vignette pass Range 0–1. |
vignette_roundness |
float | 1 |
1 darkens in a circle whatever shape the frame is; 0 follows the frame Range 0–1. |