Light Baker!

-=-=-=-=-=-=

-Support for lightmap baker, have fun figuring out how it works before tutorial is published.
This commit is contained in:
Juan Linietsky
2014-06-11 10:41:03 -03:00
parent 6f0b4678e2
commit 9b8696d3dd
61 changed files with 4252 additions and 1430 deletions

View File

@ -576,6 +576,23 @@ public:
virtual float portal_get_connect_range(RID p_portal) const =0;
/* BAKED LIGHT API */
virtual RID baked_light_create()=0;
enum BakedLightMode {
BAKED_LIGHT_OCTREE,
BAKED_LIGHT_LIGHTMAPS
};
virtual void baked_light_set_mode(RID p_baked_light,BakedLightMode p_mode)=0;
virtual BakedLightMode baked_light_get_mode(RID p_baked_light) const=0;
virtual void baked_light_set_octree(RID p_baked_light,const DVector<uint8_t> p_octree)=0;
virtual DVector<uint8_t> baked_light_get_octree(RID p_baked_light) const=0;
virtual void baked_light_add_lightmap(RID p_baked_light,const RID p_texture,int p_id)=0;
virtual void baked_light_clear_lightmaps(RID p_baked_light)=0;
/* CAMERA API */
@ -792,6 +809,7 @@ public:
INSTANCE_LIGHT,
INSTANCE_ROOM,
INSTANCE_PORTAL,
INSTANCE_BAKED_LIGHT,
INSTANCE_GEOMETRY_MASK=(1<<INSTANCE_MESH)|(1<<INSTANCE_MULTIMESH)|(1<<INSTANCE_IMMEDIATE)|(1<<INSTANCE_PARTICLES)
};
@ -849,7 +867,7 @@ public:
INSTANCE_FLAG_RECEIVE_SHADOWS,
INSTANCE_FLAG_DEPH_SCALE,
INSTANCE_FLAG_VISIBLE_IN_ALL_ROOMS,
INSTANCE_FLAG_USE_BAKED_LIGHT_VOLUME,
INSTANCE_FLAG_USE_BAKED_LIGHT,
INSTANCE_FLAG_MAX
};
@ -863,6 +881,14 @@ public:
virtual float instance_geometry_get_draw_range_max(RID p_instance) const=0;
virtual float instance_geometry_get_draw_range_min(RID p_instance) const=0;
virtual void instance_geometry_set_baked_light(RID p_instance,RID p_baked_light)=0;
virtual RID instance_geometry_get_baked_light(RID p_instance) const=0;
virtual void instance_geometry_set_baked_light_texture_index(RID p_instance,int p_tex_id)=0;
virtual int instance_geometry_get_baked_light_texture_index(RID p_instance) const=0;
virtual void instance_light_set_enabled(RID p_instance,bool p_enabled)=0;
virtual bool instance_light_is_enabled(RID p_instance) const=0;
/* CANVAS (2D) */
@ -923,6 +949,7 @@ public:
virtual void black_bars_set_margins(int p_left, int p_top, int p_right, int p_bottom)=0;
virtual void black_bars_set_images(RID p_left, RID p_top, RID p_right, RID p_bottom)=0;
/* FREE */