Manta Interactive Ray Tracer Development Mailing List

Text archives Help


[Manta] r1861 - trunk/Model/Materials


Chronological Thread 
  • From: arobison@sci.utah.edu
  • To: manta@sci.utah.edu
  • Subject: [Manta] r1861 - trunk/Model/Materials
  • Date: Tue, 20 Nov 2007 18:05:33 -0700 (MST)

Author: arobison
Date: Tue Nov 20 18:05:33 2007
New Revision: 1861

Modified:
   trunk/Model/Materials/Lambertian.cc
Log:
Fixing BSDF integration coefficient and ONB generation.


Modified: trunk/Model/Materials/Lambertian.cc
==============================================================================
--- trunk/Model/Materials/Lambertian.cc (original)
+++ trunk/Model/Materials/Lambertian.cc Tue Nov 20 18:05:33 2007
@@ -249,7 +249,6 @@
   Packet<Real> r2;
   context.sample_generator->nextSeeds(context, r2, rays);
   rays.computeFFNormals(context);
-  rays.computeSurfaceDerivatives(context);
   for(int i=rays.begin();i<rays.end();i++){
     Real sintheta2 = r1.get(i);
     Real sintheta=Sqrt(sintheta2);
@@ -258,12 +257,20 @@
     Real cosphi=Cos(phi)*sintheta;
     Real sinphi=Sin(phi)*sintheta;
     Vector normal = rays.getFFNormal(i);
-    Vector v1 = rays.getSurfaceDerivativeU(i);
-    Vector v2 = rays.getSurfaceDerivativeV(i);
+    Vector v1 = normal.findPerpendicular();
+    Vector v2 = Cross(v1, normal);
     rays.setDirection(i, normal * costheta + v1 * cosphi + v2 * sinphi);
     rays.setOrigin(i, rays.getHitPosition(i));
   }
+
   colortex->mapValues(reflectance, context, rays);
+  
+  // Integration normalization correction
+  for(int i = rays.begin(); i != rays.end(); ++i) {
+    for(int j = 0; j < 3; ++j) {
+      reflectance.colordata[j][i] *= 2.0*M_PI;
+    }
+  }
 }
 
 




  • [Manta] r1861 - trunk/Model/Materials, arobison, 11/20/2007

Archive powered by MHonArc 2.6.16.

Top of page