Manta Interactive Ray Tracer Development Mailing List

Text archives Help


[MANTA] r790 - in branches/vertical: Interface Model Model/Cameras Model/Materials Model/Primitives Model/TexCoordMappers Model/Textures


Chronological Thread 
  • From: sparker@sci.utah.edu
  • To: manta@sci.utah.edu
  • Subject: [MANTA] r790 - in branches/vertical: Interface Model Model/Cameras Model/Materials Model/Primitives Model/TexCoordMappers Model/Textures
  • Date: Thu, 15 Dec 2005 00:04:18 -0700 (MST)

Author: sparker
Date: Thu Dec 15 00:04:13 2005
New Revision: 790

Modified:
   branches/vertical/Interface/RayPacket.h
   branches/vertical/Model/CMakeLists.txt
   branches/vertical/Model/Cameras/PinholeCamera.cc
   branches/vertical/Model/Materials/Checker.cc
   branches/vertical/Model/Materials/Phong.cc
   branches/vertical/Model/Primitives/CMakeLists.txt
   branches/vertical/Model/Primitives/Parallelogram.cc
   branches/vertical/Model/Primitives/Plane.cc
   branches/vertical/Model/TexCoordMappers/CMakeLists.txt
   branches/vertical/Model/TexCoordMappers/UniformMapper.cc
   branches/vertical/Model/Textures/CMakeLists.txt
   branches/vertical/Model/Textures/CheckerTexture.h
Log:
More progress toward a vertical raypacket prototype


Modified: branches/vertical/Interface/RayPacket.h
==============================================================================
--- branches/vertical/Interface/RayPacket.h     (original)
+++ branches/vertical/Interface/RayPacket.h     Thu Dec 15 00:04:13 2005
@@ -4,6 +4,7 @@
 
 #include <Core/Color/Color.h>
 #include <Core/Geometry/Ray.h>
+#include <Core/Math/Expon.h>
 #include <Interface/HitInfo.h>
 #include <Interface/Primitive.h>
 #include <Interface/TexCoordMapper.h>
@@ -36,9 +37,11 @@
     Real normal[3][Size];
     Real hitPosition[3][Size];
     Real minT[Size];
+    Real texCoords[3][Size];
 
     // Color-based arrays
     Real color[Color::NumComponents][Size];
+    Real importance[Color::NumComponents][Size];
 
     // Int-based arrays
     int whichEye[Size];
@@ -49,13 +52,6 @@
 
 #if 0
     struct Element {
-      Color  color;
-      Real    imageX;
-      Real    imageY;
-      Ray     ray;
-      HitInfo hitInfo;
-      Vector  normal;
-      Point   hitPosition;
       Point   texCoords;
       Vector  inverseDirection;
       int     sign[3];      // Mask describing ray direction, 1==negative 
0==positive,zero
@@ -158,12 +154,104 @@
       for(int i=0;i<Color::NumComponents;i++)
         data->color[i][which] = color[i];
     }
+    void setImportance(int which, const Color& importance)
+    {
+      for(int i=0;i<Color::NumComponents;i++)
+        data->importance[i][which] = importance[i];
+    }
+
+    Real getImageCoordinates(int which, int dim)
+    {
+      return data->image[dim][which];
+    }
+    int getWhichEye(int which) const
+    {
+      return data->whichEye[which];
+    }
 
+    void setRay(int which, const Point& origin, const Vector& direction)
+    {
+      for(int i=0;i<3;i++)
+        data->origin[i][which] = origin[i];
+      for(int i=0;i<3;i++)
+        data->direction[i][which] = direction[i];
+    }
+    void setTexCoords(int which, const Point& tc)
+    {
+      for(int i=0;i<3;i++)
+        data->texCoords[i][which] - tc[i];
+    }
+
+    Point getTexCoords(int which) const
+    {
+      return Point(data->texCoords[0][which], data->texCoords[1][which], 
data->texCoords[2][which]);
+    }
+
+    void setNormal(int which, const Vector& normal)
+    {
+      for(int i=0;i<3;i++)
+        data->normal[i][which] = normal[i];
+    }
+
+    Point getOrigin(int which) const
+    {
+      return Point(data->origin[0][which], data->origin[1][which], 
data->origin[2][which]);
+    }
+    Vector getDirection(int which) const
+    {
+      return Vector(data->direction[0][which], data->direction[1][which], 
data->direction[2][which]);
+    }
+    Real getMinT(int which) const
+    {
+      return data->minT[which];
+    }
+    Vector getNormal(int which) const
+    {
+      return Vector(data->normal[0][which], data->normal[1][which], 
data->normal[2][which]);
+    }
+    Point getHitPosition(int which) const
+    {
+      return Point(data->hitPosition[0][which], data->hitPosition[1][which], 
data->hitPosition[2][which]);
+    }
+
+    bool hit(int which, Real t, const Material* matl, const Primitive* prim,
+             const TexCoordMapper* tex) {
+      if(t < (Real)T_EPSILON)
+        return false;
+      if(t < data->minT[which]){
+        data->minT[which] = t;
+        data->hitMatl[which] = matl;
+        data->hitPrim[which] = prim;
+        data->hitTex[which] = tex;
+        return true;
+      } else {
+        return false;
+      }
+    }    
+
+    // Scratchpad isn't quite "vertical" yet...
+    template<class T> T& scratchpad(int which) {
+
+      // This pragma relates to the following expression being
+      // constant (which it is).  Since sizeof(T) is evaluated after
+      // the preprocessor, we can't get around not doing it here like
+      // this.
+
+#     if defined(__sgi) && !defined(__GNUC__)
+#       pragma set woff 1209
+      ASSERT(sizeof(T) <= RayPacketData::MaxScratchpadSize);
+#       pragma set woff 1209
+#     else
+      ASSERT(sizeof(T) <= RayPacketData::MaxScratchpadSize);
+#     endif
+      return *(T*)data->scratchpad_data[which];
+    }
 #if 0
     Color getResult(int which) const
     {
       return data[which].color;
     }
+#endif
 
     void normalizeDirections()
     {
@@ -172,12 +260,25 @@
 
       if(flags & HaveHitRecords){
         for(int i=0;i<size;i++){
-          Real length = data[i].ray.normalizeDirection();
-          data[i].hitInfo.scaleT(length);
+          Real sum = 0;
+          for(int j=0;j<3;j++)
+            sum += data->direction[j][i] * data->direction[j][i];
+          Real length = SCIRun::Sqrt(sum);
+          if(data->hitMatl[i] != 0)
+            data->minT[i] *= length;
+          Real scale = 1/length;
+          for(int j=0;j<3;j++)
+            data->direction[j][i] *= scale;
         }
       } else {
-        for(int i=0;i<size;i++)
-          data[i].ray.normalizeDirection();
+        for(int i=0;i<size;i++){
+          Real sum = 0;
+          for(int j=0;j<3;j++)
+            sum += data->direction[j][i] * data->direction[j][i];
+          Real scale = 1/SCIRun::Sqrt(sum);
+          for(int j=0;j<3;j++)
+            data->direction[j][i] *= scale;
+        }
       }
       flags |= NormalizedDirections;
       flags &= ~HaveInverseDirections;
@@ -187,11 +288,12 @@
       if(flags & HaveHitPositions)
         return;
       for(int i=0;i<size;i++) {
-        data[i].hitPosition = data[i].ray.origin() +
-          data[i].ray.direction() * data[i].hitInfo.minT();
+        for(int j=0;j<3;j++)
+          data->hitPosition[j][i] = data->origin[j][i] + 
data->direction[j][i] * data->minT[i];
       }
       flags |= HaveHitPositions;
     }
+#if 0
     void computeInverseDirections()
     {
       if(flags & HaveInverseDirections)
@@ -222,11 +324,16 @@
               return;
       flags |= ConstantSigns;
     }
+#endif
 
+    void computeTextureCoordinates2(const RenderContext& context);
+    void computeTextureCoordinates3(const RenderContext& context);
+#if 0
     void computeTextureCoordinates2(const RenderContext& context)
     {
       if(flags & (HaveTexture2|HaveTexture3))
         return;
+      not right - shouldnt we make sure it is consecutive
       Element& e0 = data[0];
       const TexCoordMapper* tex = e0.hitInfo.hitTexCoordMapper();
       tex->computeTexCoords2(context, *this);
@@ -241,6 +348,7 @@
       tex->computeTexCoords3(context, *this);
       flags |= HaveTexture2|HaveTexture3;
     }
+#endif
 #if 0
     void computeFrame(const RenderContext& context)
     {
@@ -260,10 +368,9 @@
       
       // Compute normals
       for(int i=0;i<size;){
-        RayPacket::Element& e = data[i];
-        const Primitive* prim = e.hitInfo.hitPrimitive();
+        const Primitive* prim = data->hitPrim[i];
         int end = i+1;
-        while(end < size && data[end].hitInfo.hitPrimitive() == prim)
+        while(end < size && data->hitPrim[end] == prim)
           end++;
         RayPacket subPacket(*this, i, end);
         prim->computeNormal(context, subPacket);
@@ -272,6 +379,7 @@
       
       flags |= HaveNormals;
     }
+#if 0
     void normalizeNormals()
     {
       ASSERT(flags & HaveNormals);
@@ -281,11 +389,13 @@
         data[i].normal.normalize();
       flags |= HaveUnitNormals;
     }
+#endif
 
     int getDepth() const {
       return depth;
     }
 
+#if 0
     void initializeImportance()
     {
       for(int i=0;i<size;i++)

Modified: branches/vertical/Model/CMakeLists.txt
==============================================================================
--- branches/vertical/Model/CMakeLists.txt      (original)
+++ branches/vertical/Model/CMakeLists.txt      Thu Dec 15 00:04:13 2005
@@ -7,9 +7,9 @@
 INCLUDE (Materials/CMakeLists.txt)
 INCLUDE (Primitives/CMakeLists.txt)
 INCLUDE (TexCoordMappers/CMakeLists.txt)
-INCLUDE (Instances/CMakeLists.txt)
-INCLUDE (MiscObjects/CMakeLists.txt)
-INCLUDE (Readers/CMakeLists.txt)
+#INCLUDE (Instances/CMakeLists.txt)
+#INCLUDE (MiscObjects/CMakeLists.txt)
+#INCLUDE (Readers/CMakeLists.txt)
 INCLUDE (Intersections/CMakeLists.txt)
 INCLUDE (Textures/CMakeLists.txt)
 

Modified: branches/vertical/Model/Cameras/PinholeCamera.cc
==============================================================================
--- branches/vertical/Model/Cameras/PinholeCamera.cc    (original)
+++ branches/vertical/Model/Cameras/PinholeCamera.cc    Thu Dec 15 00:04:13 
2005
@@ -138,7 +138,7 @@
     for(int i=0;i<rays.getSize();i++){
       Vector raydir(v*rays.getImageCoordinates(i, 
0)+u*rays.getImageCoordinates(i, 1)+direction);
       raydir.normalize();
-      rays.setRay(i, stereo_eye[e.whichEye], raydir);
+      rays.setRay(i, stereo_eye[rays.getWhichEye(i)], raydir);
     }
     rays.setFlag(RayPacket::NormalizedDirections);
 
@@ -146,7 +146,7 @@
   } else {
     for(int i=0;i<rays.getSize();i++){
       Vector raydir(v*rays.getImageCoordinates(i, 
0)+u*rays.getImageCoordinates(i, 1)+direction);
-      rays.setRay(i, stereo_eye[e.whichEye], raydir);
+      rays.setRay(i, stereo_eye[rays.getWhichEye(i)], raydir);
     }
   }
 }

Modified: branches/vertical/Model/Materials/Checker.cc
==============================================================================
--- branches/vertical/Model/Materials/Checker.cc        (original)
+++ branches/vertical/Model/Materials/Checker.cc        Thu Dec 15 00:04:13 
2005
@@ -30,9 +30,8 @@
     rays.computeTextureCoordinates3(context);
   else
     rays.computeTextureCoordinates2(context);
-  RayPacket::Element& e0 = rays.get(0);
-  Real vv1 = Dot(e0.texCoords, v1);
-  Real vv2 = Dot(e0.texCoords, v2);
+  Real vv1 = Dot(rays.getTexCoords(0), v1);
+  Real vv2 = Dot(rays.getTexCoords(0), v2);
   if(vv1<0)
     vv1=-vv1+1;
   if(vv2<0)
@@ -48,9 +47,8 @@
     // changed.  - James Bigler
     int which = which0;
     while(stop < rays.getSize()){
-      RayPacket::Element& e = rays.get(stop);
-      Real vv1 = Dot(e.texCoords, v1);
-      Real vv2 = Dot(e.texCoords, v2);
+      Real vv1 = Dot(rays.getTexCoords(stop), v1);
+      Real vv2 = Dot(rays.getTexCoords(stop), v2);
       if(vv1<0)
         vv1=-vv1+1;
       if(vv2<0)

Modified: branches/vertical/Model/Materials/Phong.cc
==============================================================================
--- branches/vertical/Model/Materials/Phong.cc  (original)
+++ branches/vertical/Model/Materials/Phong.cc  Thu Dec 15 00:04:13 2005
@@ -79,7 +79,6 @@
     shadowRays.normalizeDirections();
 
     for(int i=start;i<end;i++){
-      RayPacket::Element& e = rays.get(i);
       // Initialize with the ambient contribution.
       Color totalDiffuse(e.ambientLight);
       Color totalSpecular = Color::black();
@@ -112,19 +111,14 @@
     RayPacket refl_rays(rdata, rays.getSize(), rays.getDepth()+1,
                         RayPacket::NormalizedDirections);
     for(int i=0;i<rays.getSize();i++){
-      RayPacket::Element& e = rays.get(i);
-      Vector refl_dir = (e.ray.direction() -
-                         e.normal*(2*Dot(e.normal, e.ray.direction() )));
-      RayPacket::Element& r = refl_rays.get(i);
-      r.ray.set(e.hitPosition,  refl_dir);
-      r.importance = e.importance * refl[i];
+      Vector refl_dir = (rays.getDirection(i) -
+                         rays.getNormal(i)*(2*Dot(rays.getNormal(i), 
rays.getDirection(i) )));
+      refl_rays.setRay(i, rays.getHitPosition(i), refl_dir);
+      refl_rays.setImportance(i, rays.getImportance(i) * refl[i]);
     }
     refl_rays.resetHit();
     context.renderer->traceRays(context, refl_rays);
-    for(int i=0;i<rays.getSize();i++){
-      RayPacket::Element& e = rays.get(i);
-      RayPacket::Element& r = refl_rays.get(i);
-      e.color += r.color * refl[i];
-    }
+    for(int i=0;i<rays.getSize();i++)
+      rays.setResult(i, rays.getColor(i) + refl_rays.getColor(i) * refl[i]);
   }
 }

Modified: branches/vertical/Model/Primitives/CMakeLists.txt
==============================================================================
--- branches/vertical/Model/Primitives/CMakeLists.txt   (original)
+++ branches/vertical/Model/Primitives/CMakeLists.txt   Thu Dec 15 00:04:13 
2005
@@ -1,38 +1,38 @@
 
 SET (Manta_Primitives_SRCS
-     Primitives/BvhTriangleMesh.cc
-     Primitives/BvhTriangleMesh.h
-     Primitives/Cone.cc
-     Primitives/Cone.h
-     Primitives/Cube.cc
-     Primitives/Cube.h
-     Primitives/Disk.cc
-     Primitives/Disk.h
-     Primitives/HeavyTriangle.cc
-     Primitives/HeavyTriangle.h
-     Primitives/Heightfield.cc
-     Primitives/Heightfield.h
-     Primitives/Hemisphere.cc
-     Primitives/Hemisphere.h
+     #Primitives/BvhTriangleMesh.cc
+     #Primitives/BvhTriangleMesh.h
+     #Primitives/Cone.cc
+     #Primitives/Cone.h
+     #Primitives/Cube.cc
+     #Primitives/Cube.h
+     #Primitives/Disk.cc
+     #Primitives/Disk.h
+     #Primitives/HeavyTriangle.cc
+     #Primitives/HeavyTriangle.h
+     #Primitives/Heightfield.cc
+     #Primitives/Heightfield.h
+     #Primitives/Hemisphere.cc
+     #Primitives/Hemisphere.h
      Primitives/Parallelogram.cc
      Primitives/Parallelogram.h
-     Primitives/ParticleBVH.cc
-     Primitives/ParticleBVH.h
+     #Primitives/ParticleBVH.cc
+     #Primitives/ParticleBVH.h
      Primitives/Plane.cc
      Primitives/Plane.h
      Primitives/PrimitiveCommon.cc
      Primitives/PrimitiveCommon.h
-     Primitives/Ring.cc
-     Primitives/Ring.h
+     #Primitives/Ring.cc
+     #Primitives/Ring.h
      Primitives/Sphere.cc
      Primitives/Sphere.h
-     Primitives/SuperEllipsoid.cc
-     Primitives/SuperEllipsoid.h
-     Primitives/TexTriangle.cc
-     Primitives/TexTriangle.h
-     Primitives/Triangle.cc
-     Primitives/Triangle.h
-     Primitives/VertexColoredTriangle.cc
-     Primitives/VertexColoredTriangle.h
+     #Primitives/SuperEllipsoid.cc
+     #Primitives/SuperEllipsoid.h
+     #Primitives/TexTriangle.cc
+     #Primitives/TexTriangle.h
+     #Primitives/Triangle.cc
+     #Primitives/Triangle.h
+     #Primitives/VertexColoredTriangle.cc
+     #Primitives/VertexColoredTriangle.h
 )
 

Modified: branches/vertical/Model/Primitives/Parallelogram.cc
==============================================================================
--- branches/vertical/Model/Primitives/Parallelogram.cc (original)
+++ branches/vertical/Model/Primitives/Parallelogram.cc Thu Dec 15 00:04:13 
2005
@@ -37,7 +37,7 @@
 void Parallelogram::computeNormal(const RenderContext&, RayPacket& rays) 
const
 {
   for(int i=0;i<rays.getSize();i++)
-    rays.get(i).normal = normal;
+    rays.setNormal(i, normal);
 }
 
 void Parallelogram::intersect(const RenderContext&, RayPacket& rays) const
@@ -48,20 +48,18 @@
   // normalized vectors anyway.
   rays.normalizeDirections();
   if(rays.getAllFlags() & RayPacket::ConstantOrigin && rays.getSize()>1){
-    RayPacket::Element& e0 = rays.get(0);
-    Real num = d-Dot(normal, e0.ray.origin());
-    Point a(e0.ray.origin()-anchor);
+    Real num = d-Dot(normal, rays.getOrigin(0));
+    Point a(rays.getOrigin(0)-anchor);
     Real o1 = Dot(a, v1);
     Real o2 = Dot(a, v2);
     for(int i=0;i<rays.getSize();i++){
-      RayPacket::Element& e = rays.get(i);
-      Real dt=Dot(e.ray.direction(), normal);
+      Real dt=Dot(rays.getDirection(i), normal);
       if(Abs(dt) < (Real)1.e-6)
         continue;
       Real t=num/dt;
-      if(t>e.hitInfo.minT())
+      if(t>rays.getMinT(i))
         continue;
-      Vector vi(e.ray.direction()*t);
+      Vector vi(rays.getDirection(i)*t);
       Real a1 = Dot(v1, vi)+o1;
       if (a1 < 0 || a1 > 1)
         continue;
@@ -69,19 +67,18 @@
       if (a2 < 0 || a2 > 1)
         continue;
 
-      if(e.hitInfo.hit(t, getMaterial(), this, getTexCoordMapper()))
-        e.hitInfo.scratchpad<Point>() = Point(a1, a2, 0);
+      if(rays.hit(i, t, getMaterial(), this, getTexCoordMapper()))
+        rays.scratchpad<Point>(i) = Point(a1, a2, 0);
     }
   } else {
     for(int i=0;i<rays.getSize();i++){
-      RayPacket::Element& e = rays.get(i);
-      Real dt=Dot(e.ray.direction(), normal);
+      Real dt=Dot(rays.getDirection(i), normal);
       if(Abs(dt) < (Real)1.e-6)
         continue;
-      Real t=(d-Dot(normal, e.ray.origin()))/dt;
-      if(t>e.hitInfo.minT())
+      Real t=(d-Dot(normal, rays.getOrigin(i)))/dt;
+      if(t>rays.getMinT(i))
         continue;
-      Point p(e.ray.origin()+e.ray.direction()*t);
+      Point p(rays.getOrigin(i)+rays.getDirection(i)*t);
       Vector vi(p-anchor);
       Real a1 = Dot(v1, vi);
       if (a1 < 0 || a1 > 1)
@@ -90,8 +87,8 @@
       if (a2 < 0 || a2 > 1)
         continue;
 
-      if(e.hitInfo.hit(t, getMaterial(), this, getTexCoordMapper()))
-        e.hitInfo.scratchpad<Point>() = Point(a1, a2, 0);
+      if(rays.hit(i, t, getMaterial(), this, getTexCoordMapper()))
+        rays.scratchpad<Point>(i) = Point(a1, a2, 0);
     }
   }
 }
@@ -100,8 +97,7 @@
                                      RayPacket& rays) const
 {
   for(int i=0;i<rays.getSize();i++){
-    RayPacket::Element& e = rays.get(i);
-    e.texCoords = e.hitInfo.scratchpad<Point>();
+    rays.setTexCoords(i, rays.scratchpad<Point>(i));
   }
   rays.setFlag(RayPacket::HaveTexture2|RayPacket::HaveTexture3);
 }
@@ -110,8 +106,7 @@
                                      RayPacket& rays) const
 {
   for(int i=0;i<rays.getSize();i++){
-    RayPacket::Element& e = rays.get(i);
-    e.texCoords = e.hitInfo.scratchpad<Point>();
+    rays.setTexCoords(i, rays.scratchpad<Point>(i));
   }
   rays.setFlag(RayPacket::HaveTexture2|RayPacket::HaveTexture3);
 }

Modified: branches/vertical/Model/Primitives/Plane.cc
==============================================================================
--- branches/vertical/Model/Primitives/Plane.cc (original)
+++ branches/vertical/Model/Primitives/Plane.cc Thu Dec 15 00:04:13 2005
@@ -63,13 +63,12 @@
   // optimizations in the future.
   rays.normalizeDirections();
   for(int i = 0;i<rays.getSize();i++){
-    RayPacket::Element& e = rays.get(i);
-    Real dn = Dot( e.ray.direction(), normal );
+    Real dn = Dot( rays.getDirection(i), normal );
     if (dn != 0) {
       // Ray isn't parallel to the plane.
-      Real ao = Dot( (center-e.ray.origin()), normal );
+      Real ao = Dot( (center-rays.getOrigin(i)), normal );
       Real t = ao/dn;
-      e.hitInfo.hit(t, getMaterial(), this, getTexCoordMapper());
+      rays.hit(i, t, getMaterial(), this, getTexCoordMapper());
     }
   }
 }
@@ -80,8 +79,7 @@
   // We don't need to do anything except stuff the normal in the the
   // RayPacket.
   for(int i = 0;i<rays.getSize();i++){
-    RayPacket::Element& e = rays.get(i);
-    e.normal = normal;
+    rays.setNormal(i, normal);
   }
   rays.setFlag(RayPacket::HaveUnitNormals);
 }

Modified: branches/vertical/Model/TexCoordMappers/CMakeLists.txt
==============================================================================
--- branches/vertical/Model/TexCoordMappers/CMakeLists.txt      (original)
+++ branches/vertical/Model/TexCoordMappers/CMakeLists.txt      Thu Dec 15 
00:04:13 2005
@@ -2,8 +2,8 @@
 SET (Manta_TexCoordMappers_SRCS
      TexCoordMappers/UniformMapper.h
      TexCoordMappers/UniformMapper.cc
-     TexCoordMappers/SphericalMapper.h
-     TexCoordMappers/SphericalMapper.cc
-     TexCoordMappers/LinearMapper.h
-     TexCoordMappers/LinearMapper.cc
+     #TexCoordMappers/SphericalMapper.h
+     #TexCoordMappers/SphericalMapper.cc
+     #TexCoordMappers/LinearMapper.h
+     #TexCoordMappers/LinearMapper.cc
 )

Modified: branches/vertical/Model/TexCoordMappers/UniformMapper.cc
==============================================================================
--- branches/vertical/Model/TexCoordMappers/UniformMapper.cc    (original)
+++ branches/vertical/Model/TexCoordMappers/UniformMapper.cc    Thu Dec 15 
00:04:13 2005
@@ -17,8 +17,7 @@
 {
   rays.computeHitPositions();
   for(int i=0;i<rays.getSize();i++){
-    RayPacket::Element& e = rays.get(i);
-    e.texCoords = e.hitPosition;
+    rays.setTexCoords(i, rays.getHitPosition(i));
   }
   rays.setFlag(RayPacket::HaveTexture2|RayPacket::HaveTexture3);
 }
@@ -28,8 +27,7 @@
 {
   rays.computeHitPositions();
   for(int i=0;i<rays.getSize();i++){
-    RayPacket::Element& e = rays.get(i);
-    e.texCoords = e.hitPosition;
+    rays.setTexCoords(i, rays.getHitPosition(i));
   }
   rays.setFlag(RayPacket::HaveTexture2|RayPacket::HaveTexture3);
 }

Modified: branches/vertical/Model/Textures/CMakeLists.txt
==============================================================================
--- branches/vertical/Model/Textures/CMakeLists.txt     (original)
+++ branches/vertical/Model/Textures/CMakeLists.txt     Thu Dec 15 00:04:13 
2005
@@ -5,18 +5,18 @@
      Textures/CheckerTexture.h
      Textures/Constant.cc
      Textures/Constant.h
-     Textures/ImageTexture.cc
-     Textures/ImageTexture.h
-     Textures/MarbleTexture.cc
-     Textures/MarbleTexture.h
-     Textures/OakTexture.cc
-     Textures/OakTexture.h
-     Textures/TexCoordTexture.cc
-     Textures/TexCoordTexture.h
-     Textures/TriVerTexture.cc
-     Textures/TriVerTexture.h
-     Textures/WoodTexture.cc
-     Textures/WoodTexture.h
+     #Textures/ImageTexture.cc
+     #Textures/ImageTexture.h
+     #Textures/MarbleTexture.cc
+     #Textures/MarbleTexture.h
+     #Textures/OakTexture.cc
+     #Textures/OakTexture.h
+     #Textures/TexCoordTexture.cc
+     #Textures/TexCoordTexture.h
+     #Textures/TriVerTexture.cc
+     #Textures/TriVerTexture.h
+     #Textures/WoodTexture.cc
+     #Textures/WoodTexture.h
      )
 
 

Modified: branches/vertical/Model/Textures/CheckerTexture.h
==============================================================================
--- branches/vertical/Model/Textures/CheckerTexture.h   (original)
+++ branches/vertical/Model/Textures/CheckerTexture.h   Thu Dec 15 00:04:13 
2005
@@ -59,9 +59,8 @@
     else
       rays.computeTextureCoordinates2(context);
     for(int i=0;i<rays.getSize();i++){
-      RayPacket::Element& e = rays.get(i);
-      Real vv1 = Dot(e.texCoords, v1);
-      Real vv2 = Dot(e.texCoords, v2);
+      Real vv1 = Dot(rays.getTexCoords(i), v1);
+      Real vv2 = Dot(rays.getTexCoords(i), v2);
       if(vv1<0)
         vv1=-vv1+1;
       if(vv2<0)




  • [MANTA] r790 - in branches/vertical: Interface Model Model/Cameras Model/Materials Model/Primitives Model/TexCoordMappers Model/Textures, sparker, 12/15/2005

Archive powered by MHonArc 2.6.16.

Top of page