Orrery
A GPU-accelerated N-body gravitational simulator
Loading...
Searching...
No Matches
orrery::viz::RenderSettings Struct Reference

Everything about how the picture looks that is not the camera. More...

#include <orrery/viz/point_renderer.hpp>

Public Attributes

ToneMapping tone_mapping
float point_size = 40
 The diameter in pixels a particle would have one length unit from the camera, shrinking with distance as anything else does.
float minimum_point_size = 1.5F
 The smallest a particle is allowed to become.
float brightness = 1
 The light one particle contributes at the centre of its sprite.
Colour cool {0.55F, 0.70F, 1.0F}
 The two ends of the colour ramp the per-particle tint selects between.
Colour warm {1.0F, 0.78F, 0.50F}

Detailed Description

Everything about how the picture looks that is not the camera.

Member Data Documentation

◆ point_size

float orrery::viz::RenderSettings::point_size = 40

The diameter in pixels a particle would have one length unit from the camera, shrinking with distance as anything else does.

Sprites rather than single pixels because a single pixel is invisible on a modern display and aliases badly when it moves. A sprite a few pixels across, with a soft edge, is what makes a moving point cloud read as a continuous structure rather than as a swarm of flickering dots.

◆ minimum_point_size

float orrery::viz::RenderSettings::minimum_point_size = 1.5F

The smallest a particle is allowed to become.

Below about one pixel a sprite starts to disappear between the samples of the rasteriser, and a distant part of the system fades out for a reason that has nothing to do with how much light is there. Holding a floor and letting the brightness carry the distance instead is the standard remedy.

◆ brightness

float orrery::viz::RenderSettings::brightness = 1

The light one particle contributes at the centre of its sprite.

Multiplied by the tone mapping's exposure in the end, so the two are redundant as a pair of numbers. They are separate because they are adjusted for different reasons: this follows the particle count, since twice as many particles for the same mass means each carries half the light, and the exposure follows what the viewer wants to see.

◆ cool

Colour orrery::viz::RenderSettings::cool {0.55F, 0.70F, 1.0F}

The two ends of the colour ramp the per-particle tint selects between.

The default is the one a star field wants: a cool blue-white for the young population of a disc and a warm yellow for an older one. In the collision the tint separates the two galaxies, which is what makes it possible to see which material in the merged remnant came from where.


The documentation for this struct was generated from the following file: