Fix shadowed light copy constructor, fix point light lens orientations

This commit is contained in:
rdb 2015-09-10 15:30:24 +02:00
parent 57e5c8fb25
commit c9434c5b85
2 changed files with 10 additions and 32 deletions

View File

@ -62,15 +62,12 @@ LightLensNode::
LightLensNode:: LightLensNode::
LightLensNode(const LightLensNode &copy) : LightLensNode(const LightLensNode &copy) :
Light(copy), Light(copy),
Camera(copy) Camera(copy),
_shadow_caster(copy._shadow_caster),
_sb_xsize(copy._sb_xsize),
_sb_ysize(copy._sb_ysize),
_sb_sort(-10)
{ {
_shadow_caster = false;
_sb_xsize = 512;
_sb_ysize = 512;
_sb_sort = -10;
// Backface culling helps eliminating artifacts.
set_initial_state(RenderState::make(CullFaceAttrib::make_reverse(),
ColorWriteAttrib::make(ColorWriteAttrib::C_off)));
} }
//////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////

View File

@ -69,22 +69,22 @@ PointLight(const string &name) :
{ {
PT(Lens) lens; PT(Lens) lens;
lens = new PerspectiveLens(90, 90); lens = new PerspectiveLens(90, 90);
lens->set_view_vector(1, 0, 0, 0, 0, 1); lens->set_view_vector(1, 0, 0, 0, -1, 0);
set_lens(0, lens); set_lens(0, lens);
lens = new PerspectiveLens(90, 90); lens = new PerspectiveLens(90, 90);
lens->set_view_vector(-1, 0, 0, 0, 0, 1); lens->set_view_vector(-1, 0, 0, 0, -1, 0);
set_lens(1, lens); set_lens(1, lens);
lens = new PerspectiveLens(90, 90); lens = new PerspectiveLens(90, 90);
lens->set_view_vector(0, 1, 0, 0, 0, 1); lens->set_view_vector(0, 1, 0, 0, 0, 1);
set_lens(2, lens); set_lens(2, lens);
lens = new PerspectiveLens(90, 90); lens = new PerspectiveLens(90, 90);
lens->set_view_vector(0, -1, 0, 0, 0, 1); lens->set_view_vector(0, -1, 0, 0, 0, -1);
set_lens(3, lens); set_lens(3, lens);
lens = new PerspectiveLens(90, 90); lens = new PerspectiveLens(90, 90);
lens->set_view_vector(0, 0, 1, 0, 0, 1); lens->set_view_vector(0, 0, 1, 0, -1, 0);
set_lens(4, lens); set_lens(4, lens);
lens = new PerspectiveLens(90, 90); lens = new PerspectiveLens(90, 90);
lens->set_view_vector(0, 0, -1, 0, 0, 1); lens->set_view_vector(0, 0, -1, 0, -1, 0);
set_lens(5, lens); set_lens(5, lens);
} }
@ -100,25 +100,6 @@ PointLight(const PointLight &copy) :
LightLensNode(copy), LightLensNode(copy),
_cycler(copy._cycler) _cycler(copy._cycler)
{ {
PT(Lens) lens;
lens = new PerspectiveLens(90, 90);
lens->set_view_vector(1, 0, 0, 0, 0, 1);
set_lens(0, lens);
lens = new PerspectiveLens(90, 90);
lens->set_view_vector(-1, 0, 0, 0, 0, 1);
set_lens(1, lens);
lens = new PerspectiveLens(90, 90);
lens->set_view_vector(0, 1, 0, 0, 0, 1);
set_lens(2, lens);
lens = new PerspectiveLens(90, 90);
lens->set_view_vector(0, -1, 0, 0, 0, 1);
set_lens(3, lens);
lens = new PerspectiveLens(90, 90);
lens->set_view_vector(0, 0, 1, 0, 0, 1);
set_lens(4, lens);
lens = new PerspectiveLens(90, 90);
lens->set_view_vector(0, 0, -1, 0, 0, 1);
set_lens(5, lens);
} }
//////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////