speed up gfx, colored lighting is out for now
This commit is contained in:
parent
3c3e961995
commit
01e6059dd1
17 changed files with 1055 additions and 250 deletions
|
|
@ -34,50 +34,15 @@ void pxl8_lights_destroy(pxl8_lights* lights) {
|
|||
}
|
||||
|
||||
void pxl8_lights_add(pxl8_lights* lights, f32 x, f32 y, f32 z, u8 r, u8 g, u8 b, u8 intensity, f32 radius) {
|
||||
(void)r; (void)g; (void)b;
|
||||
if (!lights || lights->count >= lights->capacity) return;
|
||||
|
||||
f32 radius_sq = radius * radius;
|
||||
pxl8_light* l = &lights->data[lights->count++];
|
||||
l->position.x = x;
|
||||
l->position.y = y;
|
||||
l->position.z = z;
|
||||
l->r = r;
|
||||
l->g = g;
|
||||
l->b = b;
|
||||
l->intensity = intensity;
|
||||
l->radius = radius;
|
||||
l->position = (pxl8_vec3){{x, y, z}};
|
||||
l->radius_sq = radius_sq;
|
||||
l->inv_radius_sq = radius_sq > 0.0f ? 1.0f / radius_sq : 0.0f;
|
||||
|
||||
l->constant = 1.0f;
|
||||
if (radius <= 7.0f) {
|
||||
l->linear = 0.7f;
|
||||
l->quadratic = 1.8f;
|
||||
} else if (radius <= 13.0f) {
|
||||
l->linear = 0.35f;
|
||||
l->quadratic = 0.44f;
|
||||
} else if (radius <= 20.0f) {
|
||||
l->linear = 0.22f;
|
||||
l->quadratic = 0.20f;
|
||||
} else if (radius <= 32.0f) {
|
||||
l->linear = 0.14f;
|
||||
l->quadratic = 0.07f;
|
||||
} else if (radius <= 50.0f) {
|
||||
l->linear = 0.09f;
|
||||
l->quadratic = 0.032f;
|
||||
} else if (radius <= 65.0f) {
|
||||
l->linear = 0.07f;
|
||||
l->quadratic = 0.017f;
|
||||
} else if (radius <= 100.0f) {
|
||||
l->linear = 0.045f;
|
||||
l->quadratic = 0.0075f;
|
||||
} else if (radius <= 160.0f) {
|
||||
l->linear = 0.027f;
|
||||
l->quadratic = 0.0028f;
|
||||
} else {
|
||||
l->linear = 0.022f;
|
||||
l->quadratic = 0.0019f;
|
||||
}
|
||||
l->intensity = (f32)intensity / 255.0f;
|
||||
}
|
||||
|
||||
void pxl8_lights_clear(pxl8_lights* lights) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue