opynsim
Unofficial C++ Documentation
Loading...
Searching...
No Matches
scene_renderer_params.h
Go to the documentation of this file.
1#pragma once
2
7
8#include <array>
9
10namespace osc
11{
12 // the parameters associated with a single call to `SceneRenderer::render`
14
15 static constexpr Color default_light_color()
16 {
17 return {248.0f / 255.0f, 247.0f / 255.0f, 247.0f / 255.0f};
18 }
19
21 {
22 return {0.89f, 0.89f, 0.89f};
23 }
24
26 {
27 return {0.0f, -0.001f, 0.0f};
28 }
29
30 private:
31 static constexpr size_t c_num_rim_groups = 2;
32 public:
33 static constexpr size_t num_rim_groups()
34 {
35 return c_num_rim_groups;
36 }
37
38 friend bool operator==(const SceneRendererParams&, const SceneRendererParams&) = default;
39
40 // output parameters
41 Vector2 dimensions = {1.0f, 1.0f}; // desired dimensions in device-independent pixels
42 float device_pixel_ratio = 1.0f;
44
45 // flags
46 bool draw_mesh_normals = false;
47 bool draw_rims = true;
48 bool draw_shadows = true;
49 bool draw_floor = true;
51
52 // camera parameters
53 float near_clipping_plane = 0.1f;
54 float far_clipping_plane = 100.0f;
57 Vector3 viewer_position = {0.0f, 0.0f, 0.0f};
58
59 // shading parameters
60 Vector3 light_direction = {-0.34f, -0.25f, 0.05f};
62 float ambient_strength = 0.01f;
63 float diffuse_strength = 0.55f;
64 float specular_strength = 0.7f;
65 float specular_shininess = 6.0f;
67 std::array<Color, c_num_rim_groups> rim_group_colors = std::to_array<Color>({
68 Color{0.95f, 0.4f, 0.0f, 1.0f},
69 Color{0.95f, 0.2f, 0.0f, 0.4f},
70 });
71 Vector2 rim_thickness = {1.0f, 1.0f}; // desired screen-space rim thickness in device-independent pixels.
72
73 // scene parameters
75 float fixup_scale_factor = 1.0f;
76 };
77}
Definition anti_aliasing_level.h:11
static constexpr AntiAliasingLevel none()
Definition anti_aliasing_level.h:18
Definition custom_decoration_generator.h:5
constexpr U to(T &&value)
Definition conversion.h:56
constexpr Matrix4x4 identity< Matrix4x4 >()
Definition matrix4x4.h:390
Definition scene_renderer_params.h:13
static constexpr Color default_light_color()
Definition scene_renderer_params.h:15
bool order_independent_transparency
Definition scene_renderer_params.h:50
float near_clipping_plane
Definition scene_renderer_params.h:53
float specular_strength
Definition scene_renderer_params.h:64
AntiAliasingLevel anti_aliasing_level
Definition scene_renderer_params.h:43
float ambient_strength
Definition scene_renderer_params.h:62
Vector3 viewer_position
Definition scene_renderer_params.h:57
Matrix4x4 projection_matrix
Definition scene_renderer_params.h:56
Color light_color
Definition scene_renderer_params.h:61
Color background_color
Definition scene_renderer_params.h:66
static constexpr Color default_background_color()
Definition scene_renderer_params.h:20
friend bool operator==(const SceneRendererParams &, const SceneRendererParams &)=default
float specular_shininess
Definition scene_renderer_params.h:65
static constexpr Vector3 default_floor_position()
Definition scene_renderer_params.h:25
float device_pixel_ratio
Definition scene_renderer_params.h:42
std::array< Color, c_num_rim_groups > rim_group_colors
Definition scene_renderer_params.h:67
float far_clipping_plane
Definition scene_renderer_params.h:54
float fixup_scale_factor
Definition scene_renderer_params.h:75
Vector3 light_direction
Definition scene_renderer_params.h:60
static constexpr size_t num_rim_groups()
Definition scene_renderer_params.h:33
Vector2 dimensions
Definition scene_renderer_params.h:41
Vector3 floor_position
Definition scene_renderer_params.h:74
bool draw_rims
Definition scene_renderer_params.h:47
bool draw_floor
Definition scene_renderer_params.h:49
float diffuse_strength
Definition scene_renderer_params.h:63
Vector2 rim_thickness
Definition scene_renderer_params.h:71
Matrix4x4 view_matrix
Definition scene_renderer_params.h:55
bool draw_shadows
Definition scene_renderer_params.h:48
bool draw_mesh_normals
Definition scene_renderer_params.h:46