tweak spotlight border calcs
This commit is contained in:
parent
3b3655bff4
commit
5eaefb6a9c
@ -3045,12 +3045,13 @@ int calcshadowinfo(const extentity &e, vec &origin, float &radius, vec &spotloc,
|
|||||||
|
|
||||||
origin = e.o;
|
origin = e.o;
|
||||||
radius = e.attr1 > 0 ? e.attr1 : 2*worldsize;
|
radius = e.attr1 > 0 ? e.attr1 : 2*worldsize;
|
||||||
int type, w;
|
int type, w, border;
|
||||||
float lod;
|
float lod;
|
||||||
if(e.attached && e.attached->type == ET_SPOTLIGHT)
|
if(e.attached && e.attached->type == ET_SPOTLIGHT)
|
||||||
{
|
{
|
||||||
type = SM_SPOT;
|
type = SM_SPOT;
|
||||||
w = 1;
|
w = 1;
|
||||||
|
border = 0;
|
||||||
lod = smspotprec;
|
lod = smspotprec;
|
||||||
spotloc = e.attached->o;
|
spotloc = e.attached->o;
|
||||||
spotangle = clamp(int(e.attached->attr1), 1, 89);
|
spotangle = clamp(int(e.attached->attr1), 1, 89);
|
||||||
@ -3069,13 +3070,13 @@ int calcshadowinfo(const extentity &e, vec &origin, float &radius, vec &spotloc,
|
|||||||
w = 3;
|
w = 3;
|
||||||
lod = smcubeprec;
|
lod = smcubeprec;
|
||||||
}
|
}
|
||||||
|
border = smfilter > 2 ? smborder2 : smborder;
|
||||||
spotloc = e.o;
|
spotloc = e.o;
|
||||||
spotangle = 0;
|
spotangle = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
lod *= smminsize;
|
lod *= smminsize;
|
||||||
int size = clamp(int(ceil((lod * shadowatlaspacker.w) / SHADOWATLAS_SIZE)), 1, shadowatlaspacker.w / w),
|
int size = clamp(int(ceil((lod * shadowatlaspacker.w) / SHADOWATLAS_SIZE)), 1, shadowatlaspacker.w / w);
|
||||||
border = smfilter > 2 ? smborder2 : smborder;
|
|
||||||
bias = border / float(size - border);
|
bias = border / float(size - border);
|
||||||
|
|
||||||
return type;
|
return type;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user