mirror of
https://github.com/MihailRis/voxelcore.git
synced 2026-10-04 18:41:51 +00:00
improve sky lighting
This commit is contained in:
parent
d9a7afad05
commit
3055621894
5 changed files with 14 additions and 7 deletions
|
|
@ -13,6 +13,8 @@ layout (location = 4) in vec4 v_normal;
|
|||
|
||||
out vec4 a_color;
|
||||
|
||||
uniform float u_dayTime;
|
||||
|
||||
void main() {
|
||||
a_modelpos = u_model * vec4(v_position, 1.0);
|
||||
vec3 pos3d = a_modelpos.xyz - u_cameraPos;
|
||||
|
|
@ -26,7 +28,7 @@ void main() {
|
|||
a_texCoord = v_texCoord;
|
||||
|
||||
a_dir = a_modelpos.xyz - u_cameraPos;
|
||||
vec3 skyLightColor = pick_sky_color(u_skybox);
|
||||
vec3 skyLightColor = pick_sky_color(u_skybox, u_dayTime);
|
||||
a_color.rgb = max(a_color.rgb, skyLightColor.rgb * v_light.a) * v_color;
|
||||
a_color.a = u_opacity;
|
||||
|
||||
|
|
|
|||
|
|
@ -8,8 +8,8 @@
|
|||
#define CURVATURE_FACTOR 0.002
|
||||
|
||||
// lighting
|
||||
#define SKY_LIGHT_MUL 2.9
|
||||
#define SKY_LIGHT_TINT (vec3(1.0, 0.95, 0.9) * 2.0)
|
||||
#define SKY_LIGHT_MUL 2.5
|
||||
#define SKY_LIGHT_TINT (vec3(1.0, 0.75, 0.6) * 2.0)
|
||||
#define MIN_SKY_LIGHT vec3(0.2, 0.25, 0.33)
|
||||
|
||||
// fog
|
||||
|
|
|
|||
|
|
@ -3,8 +3,9 @@
|
|||
|
||||
#include <constants>
|
||||
|
||||
vec3 pick_sky_color(samplerCube cubemap) {
|
||||
vec3 skyLightColor = texture(cubemap, vec3(0.4f, 0.05f, 0.4f)).rgb;
|
||||
vec3 pick_sky_color(samplerCube cubemap, float dayTime) {
|
||||
float elevation = sin(dayTime * PI2) * 0.2;
|
||||
vec3 skyLightColor = texture(cubemap, vec3(0.0f, elevation, -0.4f)).rgb;
|
||||
skyLightColor *= SKY_LIGHT_TINT;
|
||||
skyLightColor = min(vec3(1.0f), skyLightColor * SKY_LIGHT_MUL);
|
||||
skyLightColor = max(MIN_SKY_LIGHT, skyLightColor);
|
||||
|
|
|
|||
|
|
@ -10,6 +10,8 @@ layout (location = 3) in vec4 v_normal;
|
|||
#include <fog>
|
||||
#include <sky>
|
||||
|
||||
uniform float u_dayTime;
|
||||
|
||||
out vec4 a_torchLight;
|
||||
|
||||
void main() {
|
||||
|
|
@ -25,7 +27,7 @@ void main() {
|
|||
a_texCoord = v_texCoord;
|
||||
|
||||
a_dir = a_modelpos.xyz - u_cameraPos;
|
||||
vec3 skyLightColor = pick_sky_color(u_skybox);
|
||||
vec3 skyLightColor = pick_sky_color(u_skybox, u_dayTime);
|
||||
a_skyLight = skyLightColor.rgb*v_light.a;
|
||||
|
||||
mat4 viewmodel = u_view * u_model;
|
||||
|
|
|
|||
|
|
@ -12,6 +12,8 @@ layout (location = 3) in vec4 v_normal;
|
|||
|
||||
out vec4 a_torchLight;
|
||||
|
||||
uniform float u_dayTime;
|
||||
|
||||
void main() {
|
||||
a_modelpos = u_model * vec4(v_position, 1.0f);
|
||||
vec3 pos3d = a_modelpos.xyz - u_cameraPos;
|
||||
|
|
@ -25,7 +27,7 @@ void main() {
|
|||
a_texCoord = v_texCoord;
|
||||
|
||||
a_dir = a_modelpos.xyz - u_cameraPos;
|
||||
vec3 skyLightColor = pick_sky_color(u_skybox);
|
||||
vec3 skyLightColor = pick_sky_color(u_skybox, u_dayTime);
|
||||
a_skyLight = skyLightColor.rgb*v_light.a;
|
||||
|
||||
mat4 viewmodel = u_view * u_model;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue