Pārlūkot izejas kodu

Fix shadowed light copy constructor, fix point light lens orientations

rdb 10 gadi atpakaļ
vecāks
revīzija
c9434c5b85

+ 5 - 8
panda/src/pgraphnodes/lightLensNode.cxx

@@ -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)));
 }
 }
 
 
 ////////////////////////////////////////////////////////////////////
 ////////////////////////////////////////////////////////////////////

+ 5 - 24
panda/src/pgraphnodes/pointLight.cxx

@@ -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);
 }
 }
 
 
 ////////////////////////////////////////////////////////////////////
 ////////////////////////////////////////////////////////////////////