Manta Interactive Ray Tracer Development Mailing List

Text archives Help


[MANTA] r1484 - trunk/Model/Lights


Chronological Thread 
  • From: boulos@sci.utah.edu
  • To: manta@sci.utah.edu
  • Subject: [MANTA] r1484 - trunk/Model/Lights
  • Date: Tue, 17 Jul 2007 14:56:33 -0600 (MDT)

Author: boulos
Date: Tue Jul 17 14:56:33 2007
New Revision: 1484

Modified:
   trunk/Model/Lights/AreaLight.cc
Log:

Model/Lights/AreaLight.cc
 Missed this file (I'm still learning to use psvn)


Modified: trunk/Model/Lights/AreaLight.cc
==============================================================================
--- trunk/Model/Lights/AreaLight.cc     (original)
+++ trunk/Model/Lights/AreaLight.cc     Tue Jul 17 14:56:33 2007
@@ -19,16 +19,18 @@
                              RayPacket& sourceRays) const
 {
   sourceRays.computeHitPositions();
+  Packet<Vector> positions;
+  Packet<Vector> normals;
+  Packet<Real> pdfs;
+  primitive->getRandomPoints(positions, normals, pdfs, context);
+  // TODO(boulos): SSE version
+
   for(int i = sourceRays.begin(); i < sourceRays.end(); i++) {
     // Generate a point on the light
-    Vector position;
-    Vector normal;
-    Real pdf;
-    primitive->getRandomPoint(position, normal, pdf, context);
-    Vector dir = position - sourceRays.getHitPosition(i);
+    Vector dir = positions.get(i) - sourceRays.getHitPosition(i);
     Real len = dir.normalize();
-    Real cosine = SCIRun::Max(-Dot(dir, normal), Real(0));
-    Real solid_pdf = pdf * (len * len / cosine);
+    Real cosine = SCIRun::Max(-Dot(dir, normals.get(i)), Real(0));
+    Real solid_pdf = pdfs.get(i) * (len * len / cosine);
     destRays.setDirection(i, dir);
     destRays.setColor(i, color / solid_pdf);
     destRays.overrideMinT(i, len);




  • [MANTA] r1484 - trunk/Model/Lights, boulos, 07/17/2007

Archive powered by MHonArc 2.6.16.

Top of page