diff options
author | Juan Linietsky <reduzio@gmail.com> | 2016-11-11 12:27:52 -0300 |
---|---|---|
committer | Juan Linietsky <reduzio@gmail.com> | 2016-11-11 12:27:52 -0300 |
commit | a7078a4be9f4c44a41e5c7e7a633169b53f78d48 (patch) | |
tree | 35db5242c153b8d3a9732fcd5654e7a5c9d2e4e6 /servers/visual | |
parent | cacf9ebb7fd8df8845daca9da2fe55456cc179aa (diff) |
Done with lights and shadows (wonder if i'm missing something..)
Diffstat (limited to 'servers/visual')
-rw-r--r-- | servers/visual/rasterizer.h | 7 | ||||
-rw-r--r-- | servers/visual/visual_server_raster.h | 4 | ||||
-rw-r--r-- | servers/visual/visual_server_scene.cpp | 2 | ||||
-rw-r--r-- | servers/visual/visual_server_scene.h | 2 |
4 files changed, 8 insertions, 7 deletions
diff --git a/servers/visual/rasterizer.h b/servers/visual/rasterizer.h index d87cc0fd8c..06509c6fd0 100644 --- a/servers/visual/rasterizer.h +++ b/servers/visual/rasterizer.h @@ -78,6 +78,7 @@ public: Transform transform; int depth_layer; + uint32_t layer_mask; //RID sampled_light; @@ -114,6 +115,7 @@ public: billboard=false; billboard_y=false; depth_layer=0; + layer_mask=1; } }; @@ -295,16 +297,17 @@ public: virtual void light_set_color(RID p_light,const Color& p_color)=0; virtual void light_set_param(RID p_light,VS::LightParam p_param,float p_value)=0; virtual void light_set_shadow(RID p_light,bool p_enabled)=0; + virtual void light_set_shadow_color(RID p_light,const Color& p_color)=0; virtual void light_set_projector(RID p_light,RID p_texture)=0; - virtual void light_set_attenuation_texure(RID p_light,RID p_texture)=0; virtual void light_set_negative(RID p_light,bool p_enable)=0; virtual void light_set_cull_mask(RID p_light,uint32_t p_mask)=0; - virtual void light_set_shader(RID p_light,RID p_shader)=0; virtual void light_omni_set_shadow_mode(RID p_light,VS::LightOmniShadowMode p_mode)=0; virtual void light_omni_set_shadow_detail(RID p_light,VS::LightOmniShadowDetail p_detail)=0; virtual void light_directional_set_shadow_mode(RID p_light,VS::LightDirectionalShadowMode p_mode)=0; + virtual void light_directional_set_blend_splits(RID p_light,bool p_enable)=0; + virtual bool light_directional_get_blend_splits(RID p_light) const=0; virtual VS::LightDirectionalShadowMode light_directional_get_shadow_mode(RID p_light)=0; virtual VS::LightOmniShadowMode light_omni_get_shadow_mode(RID p_light)=0; diff --git a/servers/visual/visual_server_raster.h b/servers/visual/visual_server_raster.h index 7810cc9018..4d8a46122c 100644 --- a/servers/visual/visual_server_raster.h +++ b/servers/visual/visual_server_raster.h @@ -757,16 +757,16 @@ public: BIND2(light_set_color,RID,const Color&) BIND3(light_set_param,RID ,LightParam ,float ) BIND2(light_set_shadow,RID ,bool ) + BIND2(light_set_shadow_color,RID ,const Color& ) BIND2(light_set_projector,RID,RID ) - BIND2(light_set_attenuation_texure,RID,RID ) BIND2(light_set_negative,RID,bool ) BIND2(light_set_cull_mask,RID ,uint32_t ) - BIND2(light_set_shader,RID ,RID ) BIND2(light_omni_set_shadow_mode,RID,LightOmniShadowMode) BIND2(light_omni_set_shadow_detail,RID,LightOmniShadowDetail) BIND2(light_directional_set_shadow_mode,RID,LightDirectionalShadowMode) + BIND2(light_directional_set_blend_splits,RID,bool) /* PROBE API */ diff --git a/servers/visual/visual_server_scene.cpp b/servers/visual/visual_server_scene.cpp index e36e31e191..e214374f4d 100644 --- a/servers/visual/visual_server_scene.cpp +++ b/servers/visual/visual_server_scene.cpp @@ -1165,7 +1165,7 @@ void VisualServerScene::_light_instance_update_shadow(Instance *p_instance,Camer float texture_size=VSG::scene_render->get_directional_light_shadow_size(light->instance); - bool overlap = false;//rasterizer->light_instance_get_pssm_shadow_overlap(p_light->light_info->instance); + bool overlap = VSG::storage->light_directional_get_blend_splits(p_instance->base); for (int i=0;i<splits;i++) { diff --git a/servers/visual/visual_server_scene.h b/servers/visual/visual_server_scene.h index 1b62583dcf..e4f06fee64 100644 --- a/servers/visual/visual_server_scene.h +++ b/servers/visual/visual_server_scene.h @@ -204,7 +204,6 @@ public: float extra_margin; uint32_t object_ID; bool visible; - uint32_t layer_mask; float lod_begin; float lod_end; @@ -253,7 +252,6 @@ public: object_ID=0; visible=true; - layer_mask=1; lod_begin=0; lod_end=0; |