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(const LightLensNode &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;
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);
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);
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);
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);
lens->set_view_vector(0, 0, 1, 0, -1, 0);
set_lens(4, lens);
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);
}
@ -100,25 +100,6 @@ PointLight(const PointLight &copy) :
LightLensNode(copy),
_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);
}
////////////////////////////////////////////////////////////////////