1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
#pragma once
#include "render_types.h"
const vec3 pointlight_positions[4] = {
{ 0.7, 0.2, 2.0 },
{ 2.3, -3.3, -4.0 },
{ -4.0, 2.0, -12.0 },
{ 0.0, 0.0, -3.0 },
};
static point_light point_lights[4];
static scene make_default_scene() {
directional_light dir_light = { .direction = (vec3){ -0.2, -1.0, -0.3 },
.ambient = (vec3){ 0.2, 0.2, 0.2 },
.diffuse = (vec3){ 0.5, 0.5, 0.5 },
.specular = (vec3){ 1.0, 1.0, 1.0 } };
for (int i = 0; i < 4; i++) {
point_lights[i].position = pointlight_positions[i];
point_lights[i].ambient = (vec3){ 0.05, 0.05, 0.05 };
point_lights[i].diffuse = (vec3){ 0.8, 0.8, 0.8 };
point_lights[i].specular = (vec3){ 1.0, 1.0, 1.0 };
point_lights[i].constant = 1.0;
point_lights[i].linear = 0.09;
point_lights[i].quadratic = 0.032;
}
scene our_scene = { .dir_light = dir_light, .n_point_lights = 4 };
memcpy(&our_scene.point_lights, &point_lights, sizeof(point_light[4]));
return our_scene;
}
|