SceneRenderLayer > SceneLayer: Remove light_override
This commit is contained in:
@@ -428,9 +428,6 @@ void BKE_library_foreach_ID_link(Main *bmain, ID *id, LibraryIDLinkCallback call
|
|||||||
if (srl->mat_override) {
|
if (srl->mat_override) {
|
||||||
CALLBACK_INVOKE(srl->mat_override, IDWALK_CB_USER);
|
CALLBACK_INVOKE(srl->mat_override, IDWALK_CB_USER);
|
||||||
}
|
}
|
||||||
if (srl->light_override) {
|
|
||||||
CALLBACK_INVOKE(srl->light_override, IDWALK_CB_USER);
|
|
||||||
}
|
|
||||||
for (fmc = srl->freestyleConfig.modules.first; fmc; fmc = fmc->next) {
|
for (fmc = srl->freestyleConfig.modules.first; fmc; fmc = fmc->next) {
|
||||||
if (fmc->script) {
|
if (fmc->script) {
|
||||||
CALLBACK_INVOKE(fmc->script, IDWALK_CB_NOP);
|
CALLBACK_INVOKE(fmc->script, IDWALK_CB_NOP);
|
||||||
|
@@ -5916,7 +5916,6 @@ static void lib_link_scene(FileData *fd, Main *main)
|
|||||||
|
|
||||||
for (SceneRenderLayer *srl = sce->r.layers.first; srl; srl = srl->next) {
|
for (SceneRenderLayer *srl = sce->r.layers.first; srl; srl = srl->next) {
|
||||||
srl->mat_override = newlibadr_us(fd, sce->id.lib, srl->mat_override);
|
srl->mat_override = newlibadr_us(fd, sce->id.lib, srl->mat_override);
|
||||||
srl->light_override = newlibadr_us(fd, sce->id.lib, srl->light_override);
|
|
||||||
for (FreestyleModuleConfig *fmc = srl->freestyleConfig.modules.first; fmc; fmc = fmc->next) {
|
for (FreestyleModuleConfig *fmc = srl->freestyleConfig.modules.first; fmc; fmc = fmc->next) {
|
||||||
fmc->script = newlibadr(fd, sce->id.lib, fmc->script);
|
fmc->script = newlibadr(fd, sce->id.lib, fmc->script);
|
||||||
}
|
}
|
||||||
@@ -9801,7 +9800,6 @@ static void expand_scene(FileData *fd, Main *mainvar, Scene *sce)
|
|||||||
|
|
||||||
for (srl = sce->r.layers.first; srl; srl = srl->next) {
|
for (srl = sce->r.layers.first; srl; srl = srl->next) {
|
||||||
expand_doit(fd, mainvar, srl->mat_override);
|
expand_doit(fd, mainvar, srl->mat_override);
|
||||||
expand_doit(fd, mainvar, srl->light_override);
|
|
||||||
for (module = srl->freestyleConfig.modules.first; module; module = module->next) {
|
for (module = srl->freestyleConfig.modules.first; module; module = module->next) {
|
||||||
if (module->script)
|
if (module->script)
|
||||||
expand_doit(fd, mainvar, module->script);
|
expand_doit(fd, mainvar, module->script);
|
||||||
|
@@ -310,11 +310,6 @@ void do_versions_after_linking_280(Main *main)
|
|||||||
BKE_collection_override_datablock_add((LayerCollection *)scene_layer->layer_collections.first, "material", (ID *)srl->mat_override);
|
BKE_collection_override_datablock_add((LayerCollection *)scene_layer->layer_collections.first, "material", (ID *)srl->mat_override);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (srl->light_override && BKE_scene_uses_blender_internal(scene)) {
|
|
||||||
/* not sure how we handle this, pending until we design the override system */
|
|
||||||
TODO_LAYER_OVERRIDE;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (srl->lay != scene->lay) {
|
if (srl->lay != scene->lay) {
|
||||||
/* unlink master collection */
|
/* unlink master collection */
|
||||||
BKE_collection_unlink(scene_layer, scene_layer->layer_collections.first);
|
BKE_collection_unlink(scene_layer, scene_layer->layer_collections.first);
|
||||||
|
@@ -369,8 +369,6 @@ static void outliner_add_scene_contents(SpaceOops *soops, ListBase *lb, Scene *s
|
|||||||
tenlay->name = srl->name;
|
tenlay->name = srl->name;
|
||||||
tenlay->directdata = &srl->layflag;
|
tenlay->directdata = &srl->layflag;
|
||||||
|
|
||||||
if (srl->light_override)
|
|
||||||
outliner_add_element(soops, &tenlay->subtree, srl->light_override, tenlay, TSE_LINKED_LAMP, 0);
|
|
||||||
if (srl->mat_override)
|
if (srl->mat_override)
|
||||||
outliner_add_element(soops, &tenlay->subtree, srl->mat_override, tenlay, TSE_LINKED_MAT, 0);
|
outliner_add_element(soops, &tenlay->subtree, srl->mat_override, tenlay, TSE_LINKED_MAT, 0);
|
||||||
|
|
||||||
|
@@ -1355,7 +1355,7 @@ static void gpu_render_lamp_update(Scene *scene, View3D *v3d,
|
|||||||
if (layers &&
|
if (layers &&
|
||||||
GPU_lamp_has_shadow_buffer(lamp) &&
|
GPU_lamp_has_shadow_buffer(lamp) &&
|
||||||
/* keep last, may do string lookup */
|
/* keep last, may do string lookup */
|
||||||
GPU_lamp_visible(lamp, srl, NULL))
|
GPU_lamp_visible(lamp, NULL))
|
||||||
{
|
{
|
||||||
View3DShadow *shadow = MEM_callocN(sizeof(View3DShadow), "View3DShadow");
|
View3DShadow *shadow = MEM_callocN(sizeof(View3DShadow), "View3DShadow");
|
||||||
shadow->lamp = lamp;
|
shadow->lamp = lamp;
|
||||||
|
@@ -54,7 +54,7 @@ GPULamp *GPU_lamp_from_blender(struct Scene *scene, struct Object *ob, struct Ob
|
|||||||
void GPU_lamp_free(struct Object *ob);
|
void GPU_lamp_free(struct Object *ob);
|
||||||
void GPU_lamp_engine_data_free(LampEngineData *led);
|
void GPU_lamp_engine_data_free(LampEngineData *led);
|
||||||
|
|
||||||
bool GPU_lamp_visible(GPULamp *lamp, struct SceneRenderLayer *srl, struct Material *ma);
|
bool GPU_lamp_visible(GPULamp *lamp, struct Material *ma);
|
||||||
bool GPU_lamp_has_shadow_buffer(GPULamp *lamp);
|
bool GPU_lamp_has_shadow_buffer(GPULamp *lamp);
|
||||||
void GPU_lamp_update_buffer_mats(GPULamp *lamp);
|
void GPU_lamp_update_buffer_mats(GPULamp *lamp);
|
||||||
void GPU_lamp_shadow_buffer_bind(GPULamp *lamp, float viewmat[4][4], int *winsize, float winmat[4][4]);
|
void GPU_lamp_shadow_buffer_bind(GPULamp *lamp, float viewmat[4][4], int *winsize, float winmat[4][4]);
|
||||||
|
@@ -52,12 +52,10 @@
|
|||||||
|
|
||||||
#include "gpu_lamp_private.h"
|
#include "gpu_lamp_private.h"
|
||||||
|
|
||||||
bool GPU_lamp_visible(GPULamp *lamp, SceneRenderLayer *srl, Material *ma)
|
bool GPU_lamp_visible(GPULamp *lamp, Material *ma)
|
||||||
{
|
{
|
||||||
if (lamp->hide)
|
if (lamp->hide)
|
||||||
return false;
|
return false;
|
||||||
else if (srl && srl->light_override)
|
|
||||||
return BKE_group_object_exists(srl->light_override, lamp->ob);
|
|
||||||
else if (ma && ma->group)
|
else if (ma && ma->group)
|
||||||
return BKE_group_object_exists(ma->group, lamp->ob);
|
return BKE_group_object_exists(ma->group, lamp->ob);
|
||||||
else
|
else
|
||||||
|
@@ -310,7 +310,7 @@ void GPU_material_bind(
|
|||||||
GPULamp *lamp = nlink->data;
|
GPULamp *lamp = nlink->data;
|
||||||
|
|
||||||
if ((lamp->lay & viewlay) && (!(lamp->mode & LA_LAYER) || (lamp->lay & oblay)) &&
|
if ((lamp->lay & viewlay) && (!(lamp->mode & LA_LAYER) || (lamp->lay & oblay)) &&
|
||||||
GPU_lamp_visible(lamp, srl, material->ma))
|
GPU_lamp_visible(lamp, material->ma))
|
||||||
{
|
{
|
||||||
lamp->dynenergy = lamp->energy;
|
lamp->dynenergy = lamp->energy;
|
||||||
copy_v3_v3(lamp->dyncol, lamp->col);
|
copy_v3_v3(lamp->dyncol, lamp->col);
|
||||||
|
@@ -175,7 +175,6 @@ typedef struct SceneRenderLayer {
|
|||||||
char name[64]; /* MAX_NAME */
|
char name[64]; /* MAX_NAME */
|
||||||
|
|
||||||
struct Material *mat_override;
|
struct Material *mat_override;
|
||||||
struct Group *light_override;
|
|
||||||
|
|
||||||
unsigned int lay; /* scene->lay itself has priority over this */
|
unsigned int lay; /* scene->lay itself has priority over this */
|
||||||
unsigned int lay_zmask; /* has to be after lay, this is for Z-masking */
|
unsigned int lay_zmask; /* has to be after lay, this is for Z-masking */
|
||||||
|
@@ -3290,14 +3290,6 @@ void rna_def_render_layer_common(StructRNA *srna, int scene)
|
|||||||
if (scene) RNA_def_property_update(prop, NC_SCENE | ND_RENDER_OPTIONS, "rna_SceneRenderLayer_pass_update");
|
if (scene) RNA_def_property_update(prop, NC_SCENE | ND_RENDER_OPTIONS, "rna_SceneRenderLayer_pass_update");
|
||||||
else RNA_def_property_clear_flag(prop, PROP_EDITABLE);
|
else RNA_def_property_clear_flag(prop, PROP_EDITABLE);
|
||||||
|
|
||||||
prop = RNA_def_property(srna, "light_override", PROP_POINTER, PROP_NONE);
|
|
||||||
RNA_def_property_pointer_sdna(prop, NULL, "light_override");
|
|
||||||
RNA_def_property_struct_type(prop, "Group");
|
|
||||||
RNA_def_property_flag(prop, PROP_EDITABLE);
|
|
||||||
RNA_def_property_ui_text(prop, "Light Override", "Group to override all other lights in this render layer");
|
|
||||||
if (scene) RNA_def_property_update(prop, NC_SCENE | ND_RENDER_OPTIONS, "rna_SceneRenderLayer_pass_update");
|
|
||||||
else RNA_def_property_clear_flag(prop, PROP_EDITABLE);
|
|
||||||
|
|
||||||
/* layers */
|
/* layers */
|
||||||
prop = RNA_def_property(srna, "layers", PROP_BOOLEAN, PROP_LAYER_MEMBER);
|
prop = RNA_def_property(srna, "layers", PROP_BOOLEAN, PROP_LAYER_MEMBER);
|
||||||
RNA_def_property_boolean_sdna(prop, NULL, "lay", 1);
|
RNA_def_property_boolean_sdna(prop, NULL, "lay", 1);
|
||||||
|
@@ -112,7 +112,6 @@ typedef struct RenderLayer {
|
|||||||
int layflag, passflag, pass_xor;
|
int layflag, passflag, pass_xor;
|
||||||
|
|
||||||
struct Material *mat_override;
|
struct Material *mat_override;
|
||||||
struct Group *light_override;
|
|
||||||
|
|
||||||
/* MULTIVIEW_TODO: acolrect and scolrect are not supported by multiview at the moment.
|
/* MULTIVIEW_TODO: acolrect and scolrect are not supported by multiview at the moment.
|
||||||
* If they are really required they should be in RenderView instead */
|
* If they are really required they should be in RenderView instead */
|
||||||
|
@@ -179,7 +179,6 @@ typedef struct ShadeInput {
|
|||||||
unsigned int lay;
|
unsigned int lay;
|
||||||
int layflag, passflag, combinedflag;
|
int layflag, passflag, combinedflag;
|
||||||
short object_pass_index;
|
short object_pass_index;
|
||||||
struct Group *light_override;
|
|
||||||
struct Material *mat_override;
|
struct Material *mat_override;
|
||||||
|
|
||||||
#ifdef RE_RAYCOUNTER
|
#ifdef RE_RAYCOUNTER
|
||||||
|
@@ -4030,16 +4030,6 @@ static void set_material_lightgroups(Render *re)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void set_renderlayer_lightgroups(Render *re, Scene *sce)
|
|
||||||
{
|
|
||||||
SceneRenderLayer *srl;
|
|
||||||
|
|
||||||
for (srl= sce->r.layers.first; srl; srl= srl->next) {
|
|
||||||
if (srl->light_override)
|
|
||||||
add_lightgroup(re, srl->light_override, 0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ------------------------------------------------------------------------- */
|
/* ------------------------------------------------------------------------- */
|
||||||
/* World */
|
/* World */
|
||||||
/* ------------------------------------------------------------------------- */
|
/* ------------------------------------------------------------------------- */
|
||||||
@@ -5184,7 +5174,6 @@ static void database_init_objects(Render *re, unsigned int UNUSED(renderlay), in
|
|||||||
/* used to be 'rotate scene' */
|
/* used to be 'rotate scene' */
|
||||||
void RE_Database_FromScene(Render *re, Main *bmain, Scene *scene, unsigned int lay, int use_camera_view)
|
void RE_Database_FromScene(Render *re, Main *bmain, Scene *scene, unsigned int lay, int use_camera_view)
|
||||||
{
|
{
|
||||||
Scene *sce;
|
|
||||||
Object *camera;
|
Object *camera;
|
||||||
float mat[4][4];
|
float mat[4][4];
|
||||||
float amb[3];
|
float amb[3];
|
||||||
@@ -5261,8 +5250,6 @@ void RE_Database_FromScene(Render *re, Main *bmain, Scene *scene, unsigned int l
|
|||||||
|
|
||||||
if (!re->test_break(re->tbh)) {
|
if (!re->test_break(re->tbh)) {
|
||||||
set_material_lightgroups(re);
|
set_material_lightgroups(re);
|
||||||
for (sce= re->scene; sce; sce= sce->set)
|
|
||||||
set_renderlayer_lightgroups(re, sce);
|
|
||||||
|
|
||||||
/* for now some clumsy copying still */
|
/* for now some clumsy copying still */
|
||||||
re->i.totvert= re->totvert;
|
re->i.totvert= re->totvert;
|
||||||
|
@@ -742,7 +742,6 @@ static void traceray(ShadeInput *origshi, ShadeResult *origshr, short depth, con
|
|||||||
shi.passflag= SCE_PASS_COMBINED; /* result of tracing needs no pass info */
|
shi.passflag= SCE_PASS_COMBINED; /* result of tracing needs no pass info */
|
||||||
shi.combinedflag= 0xFFFFFF; /* ray trace does all options */
|
shi.combinedflag= 0xFFFFFF; /* ray trace does all options */
|
||||||
//shi.do_preview = false; // memset above, so don't need this
|
//shi.do_preview = false; // memset above, so don't need this
|
||||||
shi.light_override= origshi->light_override;
|
|
||||||
shi.mat_override= origshi->mat_override;
|
shi.mat_override= origshi->mat_override;
|
||||||
|
|
||||||
shade_ray(&isec, &shi, &shr);
|
shade_ray(&isec, &shi, &shr);
|
||||||
|
@@ -318,7 +318,6 @@ RenderResult *render_result_new(Render *re, rcti *partrct, int crop, int savebuf
|
|||||||
rl->layflag = srl->layflag;
|
rl->layflag = srl->layflag;
|
||||||
rl->passflag = srl->passflag; /* for debugging: srl->passflag | SCE_PASS_RAYHITS; */
|
rl->passflag = srl->passflag; /* for debugging: srl->passflag | SCE_PASS_RAYHITS; */
|
||||||
rl->pass_xor = srl->pass_xor;
|
rl->pass_xor = srl->pass_xor;
|
||||||
rl->light_override = srl->light_override;
|
|
||||||
rl->mat_override = srl->mat_override;
|
rl->mat_override = srl->mat_override;
|
||||||
rl->rectx = rectx;
|
rl->rectx = rectx;
|
||||||
rl->recty = recty;
|
rl->recty = recty;
|
||||||
|
@@ -1661,7 +1661,6 @@ void zbufshade_sss_tile(RenderPart *pa)
|
|||||||
ssamp.shi[0].passflag |= SCE_PASS_RGBA|SCE_PASS_COMBINED;
|
ssamp.shi[0].passflag |= SCE_PASS_RGBA|SCE_PASS_COMBINED;
|
||||||
ssamp.shi[0].combinedflag &= ~(SCE_PASS_SPEC);
|
ssamp.shi[0].combinedflag &= ~(SCE_PASS_SPEC);
|
||||||
ssamp.shi[0].mat_override= NULL;
|
ssamp.shi[0].mat_override= NULL;
|
||||||
ssamp.shi[0].light_override= NULL;
|
|
||||||
lay= ssamp.shi[0].lay;
|
lay= ssamp.shi[0].lay;
|
||||||
|
|
||||||
/* create the pixelstrs to be used later */
|
/* create the pixelstrs to be used later */
|
||||||
|
@@ -1305,7 +1305,6 @@ void shade_input_initialize(ShadeInput *shi, RenderPart *pa, RenderLayer *rl, in
|
|||||||
shi->passflag = rl->passflag;
|
shi->passflag = rl->passflag;
|
||||||
shi->combinedflag = ~rl->pass_xor;
|
shi->combinedflag = ~rl->pass_xor;
|
||||||
shi->mat_override = rl->mat_override;
|
shi->mat_override = rl->mat_override;
|
||||||
shi->light_override = rl->light_override;
|
|
||||||
// shi->rl= rl;
|
// shi->rl= rl;
|
||||||
/* note shi.depth==0 means first hit, not raytracing */
|
/* note shi.depth==0 means first hit, not raytracing */
|
||||||
|
|
||||||
|
@@ -73,8 +73,6 @@ ListBase *get_lights(ShadeInput *shi)
|
|||||||
|
|
||||||
if (R.r.scemode & R_BUTS_PREVIEW)
|
if (R.r.scemode & R_BUTS_PREVIEW)
|
||||||
return &R.lights;
|
return &R.lights;
|
||||||
if (shi->light_override)
|
|
||||||
return &shi->light_override->gobject;
|
|
||||||
if (shi->mat && shi->mat->group)
|
if (shi->mat && shi->mat->group)
|
||||||
return &shi->mat->group->gobject;
|
return &shi->mat->group->gobject;
|
||||||
|
|
||||||
@@ -2090,13 +2088,6 @@ float RE_lamp_get_data(ShadeInput *shi, Object *lamp_obj, float col[4], float lv
|
|||||||
return 0.0f;
|
return 0.0f;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (shi->light_override) {
|
|
||||||
for (go = shi->light_override->gobject.first; go; go = go->next) {
|
|
||||||
if (go->ob == lamp_obj)
|
|
||||||
return lamp_get_data_internal(shi, go, col, lv, dist, shadow);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (shi->mat && shi->mat->group) {
|
if (shi->mat && shi->mat->group) {
|
||||||
for (go = shi->mat->group->gobject.first; go; go = go->next) {
|
for (go = shi->mat->group->gobject.first; go; go = go->next) {
|
||||||
if (go->ob == lamp_obj)
|
if (go->ob == lamp_obj)
|
||||||
|
@@ -172,7 +172,6 @@ static void shade_intersection(ShadeInput *shi, float col_r[4], Isect *is)
|
|||||||
shi_new.lay = shi->lay;
|
shi_new.lay = shi->lay;
|
||||||
shi_new.passflag = SCE_PASS_COMBINED; /* result of tracing needs no pass info */
|
shi_new.passflag = SCE_PASS_COMBINED; /* result of tracing needs no pass info */
|
||||||
shi_new.combinedflag = 0xFFFFFF; /* ray trace does all options */
|
shi_new.combinedflag = 0xFFFFFF; /* ray trace does all options */
|
||||||
shi_new.light_override = shi->light_override;
|
|
||||||
shi_new.mat_override = shi->mat_override;
|
shi_new.mat_override = shi->mat_override;
|
||||||
|
|
||||||
copy_v3_v3(shi_new.camera_co, is->start);
|
copy_v3_v3(shi_new.camera_co, is->start);
|
||||||
|
Reference in New Issue
Block a user