Text archives Help
- 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.